LibMPSSE.dll - volání SPI_ReadWrite znemožní dlaší čtení SPI – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

LibMPSSE.dll - volání SPI_ReadWrite znemožní dlaší čtení SPI – .NET – Fórum – Programujte.comLibMPSSE.dll - volání SPI_ReadWrite znemožní dlaší čtení SPI – .NET – Fórum – Programujte.com

 

7. 3. 2022   #1
-
0
-

   

[DllImport("libMPSSE.dll", CallingConvention = CallingConvention.Cdecl)]
protected static extern FTDI.FT_STATUS SPI_Read(IntPtr handle, byte[] buffer, uint sizeToTransfer, ref uint sizeTransferred, uint transferOption);

[DllImport("libMPSSE.dll", CallingConvention = CallingConvention.Cdecl)]
protected static extern FTDI.FT_STATUS SPI_ReadWrite(IntPtr handle, byte[] inBuffer, byte[] outBuffer, uint sizeToTransfer, ref uint sizeTransferred, uint transferOption);

//použití v metodě
public FTDI.FT_STATUS WriteRead(byte[] writeBuffer, ref byte[] readBuffer, uint sizeToTransfer, ref uint transfered)
{
   if (!IsOpen)
   {
      return FTDI.FT_STATUS.FT_DEVICE_NOT_OPENED;
   }
   if (ftHandle == IntPtr.Zero)
   {
      return FTDI.FT_STATUS.FT_INVALID_HANDLE;
   }

   return SPI_ReadWrite(ftHandle, readBuffer, writeBuffer, sizeToTransfer, ref transfered, 0x06);
}

public FTDI.FT_STATUS Read(ref byte[] readBuffer, uint sizeToRead, ref uint readed)
{
   if (!IsOpen)
   {
      return FTDI.FT_STATUS.FT_DEVICE_NOT_OPENED;
   }
   if (ftHandle == IntPtr.Zero)
   {
      return FTDI.FT_STATUS.FT_INVALID_HANDLE;
   }

   return SPI_Read(ftHandle, readBuffer, sizeToRead, ref readed, 0x06);
}

Používám MS VS 2022 Community edition. Nenahlásí žádnou chybu při kompilaci, za běhu nenastane vyjímka. SPI monitoruji logickým analyzátorem. Volání metody Read probíhá bez problémů, z připojeného SPI Slave přečte korektně. Při volání metody WriteRead přečte nahodilá data navzdory tomu, že SPI Slave "odpoví" správně. Poté ani metoda Read nepracuje správně, nepřečte nic ačkoliv na SPI komunikace probíhá správně.

Problémy mám jen s importem fukce SPI_ReadWrite, u ostatních jsem se s potížemi nesetkal. Jak na správný import LibMPSSE.dll, zejména SPI_ReadWrite? Chybu samotné dll nepředpokládám.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
Nahlásit jako SPAM
IP: 195.178.67.–
7. 3. 2022   #3
-
0
-

Chybu samotné dll nepředpokládám.

Zcela mylný předpoklad. Funkce nepracuje správně ani v C konzolovce.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
BDS+3
Věrný člen
7. 3. 2022   #4
-
0
-

#1 hlucheucho
nevím jestli to může být tento případ, ale kdysi se mi stalo že dll funkce měla problémy s byte[], opravil jsem to tak, že jsem nastavil projekt s povolením unsafe a buťto jsem předával ukazatel na první prvek nebo možná stačilo předat pole přes Marshal.UnsafeAddrOfPinnedArrayElement už si to přesně nepamatuju. Můžeš to zkusit.

(Ale pokud to nefunguje ani v C, tak bude problém jinde.)

Nahlásit jako SPAM
IP: 185.69.68.–
W11 :)
Jerry
~ Anonymní uživatel
512 příspěvků
8. 3. 2022   #5
-
0
-

tady píšou že v tý knihovně DLL je prej chyba

https://in.mathworks.com/matlabcentral/answers/518039-ftdi-libmpsse-0-6-spi_readwrite-weird-behaviour-loadlibrary-calllib

Nahlásit jako SPAM
IP: 2a00:1028:83bc:e52a:64cf:ba65:73a8:3cc3...–
8. 3. 2022   #6
-
0
-

#5 Jerry
Jak jsi to našel?

hu

Nahlásit jako SPAM
IP: 2001:af0:ffe4:85f4:b150:6fb2:215e:f31d...–
Jerry
~ Anonymní uživatel
512 příspěvků
8. 3. 2022   #7
-
0
-

neni duležity jak sem to našel ale co teď s tim když je tam chyba

tady sou asi možná zdrojáky tak tam mužeš zjistit parametry ale oprava asi bude dost pracná

https://github.com/bithium/ftdi-mpsse

Nahlásit jako SPAM
IP: 2a00:1028:83bc:e52a:64cf:ba65:73a8:3cc3...–
8. 3. 2022   #8
-
0
-

Naštěstí dělám SW i pro slave, takže to můžu obejít pomocí jednotlivých volání Write a Read. Opravit knihovnu představuje hodně práce do které se mi nechce.

hu

Nahlásit jako SPAM
IP: 185.58.42.–
14. 3. 2022   #9
-
0
-

Ještě jsem kontaktoval tech. podporu FTDI a dostal jsem beta verzi opravené knihovny. Zatím to vypadá, že je v pohodě.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
Jerry
~ Anonymní uživatel
512 příspěvků
14. 3. 2022   #10
-
0
-

to je od tebe moc hezké, že máš opravenou verzi :)

tak ji někam dej abysme si ji taky mohli stáhnout :)

Nahlásit jako SPAM
IP: 2a00:1028:83bc:e52a:546f:e7d5:cacf:f7d9...–
15. 3. 2022   #11
-
0
-

#10 Jerry
Je to beta verze, není oficiálně vydaná. "Tak ji někam dej" by mohlo být protiprávní. Takže jedině technická podpora FTDI. Až ji vydají, bude dostupná na jejich stránkách.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 50 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý