ftdi_write() i bitbang -- skąd wiadomo

Feb 04, 2018 4 Replies

Hej,



Staram się ogarnąć FT232RL w trybie asynchronicznego bit-bang przy pomocy libftdi (Linux) i jedno mi się nie zgadza.



Wysyłamy dane do chipa przez ftdi_write(). Chip te dane od nas przyjmuje (natychmiast) i wypuszcza na swoje GPIO zgodnie z ustawionym baudrate.



Skąd możemy się dowiedzieć, że dane już zostały przez chip wysłane? Drivery D2XX mają FT_GetStatus() ale nie widzę nic takiego w libftdi.



Chciałbym przeczytać stan innego pinu (przez ftdi_read_pins()) ale dopiero wtedy, kiedy będę wiedział, że moje dane wyszły na GPIO.


W dniu poniedziałek, 5 lutego 2018 00:06:51 UTC+1 użytkownik Adam Wysocki napisał:

Proponuję używać d2xx. Funkcja FT_Write zwraca Ci wartość typu FT_STATUS. Jeżeli jest to FT_OK, to znaczy że wszystko poszło jak trzeba. Inna wartość, to kod błędu. Ja co prawda korzystam z trybu FT245 Synchro FIFO(FT2232H), ale w bitbangu najprawdopodobniej jest tak samo od strony softu.

Am 07.02.2018 um 02:06 schrieb snipped-for-privacy@gmail.com:

konkretnie trzeba najpierw odinstalować moduł ftdi_sio z jaja. Dopiero wtedy możesz użyć d2xx.

Waldek

Chyba tak się skończy, bo na liście developerów libftdi nikt nie odpowiedział...

ftdi_write() też zwraca status, to nie o to chodzi.

Zakładam że po powrocie z funkcji (czy to ftdi_write() z libftdi, czy FT_Write() z D2XX) dane zostały wysłane do chipa, a nie, że chip już je wypuścił na GPIO.

Czytałem, że do sprawdzenia tego drugiego służy FT_Status() z D2XX, ale nie widzę podobnej funkcji w libftdi...

Bez tego w ogóle nie uda się otworzyć urządzenia, czy uda, ale będą różne jaja (typu nieprawidłowe odczytywane wartości)? Zastanawiam się, czy to nie może przekłamywać mi wartości, które czytam z libftdi (a będę mógł sprawdzić dopiero wieczorem).

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required