Op 17 november 2018 20:21:03 schreef Arco:
Bij beide (serieel/parallel) converters ben je afhankelijk van hoe goed de usb interfacechip omzet in serieel met de juiste timing.
Ik denk dat het er weinig mee te maken heeft.
Het probleem is: Sommige programmers werden aangesloten op de seriele poort maar waren niet serieel: Die gebruikten de seriele (of parallelle) poort gewoon als "GPIO" poort. Vroeger kon je dan met een enkel "schrijf naar een register" een pinnetje hoog of laag maken. En als dat 100000 x moet, dan is het nog in 1 sec gebeurd. Niets aan het handje.
Krijg je besturingsystemen die het niet leuk meer vinden dat je aan de hardware zit, ga je datzelfde doen met system calls die uiteindelijk in hetzelfde register porren. Wat extra overhead, maar computers zijn toch sneller geworden. Niets aan het handje.
Maar ga je nu een USB_serial ding inzetten, dan kan het gewoon werken als de calls netjes ge-emuleerd worden. Maar USB heeft zo z'n beperkingen. Als je het gebruikt voor dingen waar het niet voor bedoeld is dan kan eea langzamer gaan dan je zou willen. In ieder geval: Als de USB chip even "niets te melden" heeft, dan is ie pas 1ms later weer aan de beurt. Dat 1 µs later de pin hoog wordt kan ie niet doorgeven. Dat kan voor het eerst 1 ms later. /Dat/ is de reden dat het via USB niet goed werkt.
USB kan prima waar het voor bedoeld is: keyboards en muizen. USB kan prima seriele dongles aansturen. Maar dan moet je ze wel voor "serieel" gebruiken en niet als "gpio poort".
Ik heb een bordje ontworpen met een FTDI chip er op. De bedoeling was om de FTDI als GPIO port te gebruiken en daarmee AVR chips te kunnen programmeren. Ik heb een driver voor AVRDUDE geschreven en: Ontzettend traag wegens dat steeds 1ms moeten wachten. Nu kan het beter, door een "streaming" mode te gebruiken, maar dan moest eea in AVRDUDE op de schop. Nooit aan toegekomen. Een een of andere japanner heeft het uiteindelijk gedaan en nu gebruik ik m'n eigen programmer weer. Echt in een paar seconden is ie klaar. (met mijn driver duurde het iets van drie kwartier).
DUS: als je de boel puur als GPIO gebruikt, en je software is er niet speciaal op voorbereid, dan wordt de boel ontzettend traag (of werkt niet). Pas je de boel wel aan op de "nukken" van USB dan kan het prima snel werken.