Hi, Ich bin auf der Suche nach einem USB to synchronous-serial converter IC. Diverse von FTDI oder SiLabs habe ich mir schon angeschaut, scheinen aber synchronous serial (mit 1 start, 8 daten, 1 stop bit) nicht direkt zu unterstützen. MIt Bit-Banging wäre es wohl möglich. Bis jetzt wäre mir sonst noch nur ein uC mit USB und USART eingefallen wie der ATMega8U2 und co. Das schöne an den fertigen ICs ist, dass man Treiber & Libraries gleich mitgeliefert bekommt. Danke, Stefan
Stefan S. schrieb: > synchronous serial (mit 1 start, 8 daten, 1 stop bit) Bist Du Dir sicher? Wozu braucht eine synchrone serielle Übertragung Start- und Stopbits? Was ist das Gegenstück, das diese Vorgaben macht?
Stefan S. schrieb: > MIt Bit-Banging wäre es wohl möglich. Nein, jedenfalls nicht sinnvoll - dann müsste man ja TxD statt vom Schieberegister mit einem Befehl für jedes Bit zeitsynchron setzen. Im Windows-API für serielle Schnittstellen ist auch keine synchrone Übertragung spezifiziert, die Schnittstelle kann also nicht als COMx angesprochen werden, also auch nicht von Standard-Treibern. Ausserdem sind synchrone Übertragungen wie HDLC oder SDLC lange ausgestorben, wahrscheinlich macht sich niemand die Mühe, vorhandene DOS-Software umzuschreiben. Ich habe zwar in einem Prozessorsystem noch einen Zilog-Chip, der alles für Synchron beherrscht (Clock Regeneration, Protokolle, Manchester-Encoding usw.), aber ich bestücke ihn garnicht mehr, er wurde auch immer nur asynchron benutzt. Gruss Reinhard
Das ist bizarr. Letztlich ist das eine 10-Bit-SPI-Übertragung, bei der das oberste und unterste Bit dazugereimt/nach Empfang verworfen werden müssen. Da bietet sich ein separater µC an, der das per Bitbanging erledigt, und entweder als CDC per V-USB oder über eine separate USB-Seriell-Bridge mit dem Host-PC verbunden wird (und in beiden Fällen nur die normalen Nutzdaten überträgt, so wie es eine normale asynchrone serielle Schnittstelle auch tut).
Der TSL3301CL hat tatsächlich eine 10-bit-SPI Schnittstelle (Start-8xDaten-Stop auf der positiven Flanke). Geeignet wäre z.B. einer der zahllosen USB-µCs, z.B. CY7C68013A, da gibt es fertige Eval-Boards für wenig Geld http://dx.com/p/d1201-ez-usb-fx2lp-cy7c68013a-usb-development-board-blue-179473
Rufus Τ. Firefly schrieb: > Da bietet sich ein separater µC an, der das per Bitbanging erledigt Bei 10 MHz SClk hat der aber ganz schön zu tun. Das schaffen ja nicht mal die verfügbaren Spezial-ICs, und einen optischen Sensor kann man auch nicht sinnvollerweise viel langsamer auslesen. Wenn man wirklich die 10 MHz braucht, dann läuft das wohl auf eine eigene USART-ähnliche Implementierung in FPGA hinaus. Viel Spass dabei. BTW DMA sollte man auch benutzen. Gruss Reinhard
O.k. dann sage ich mal Danke für die Anregungen. Ich denke dann bleibe ich für einen ersten Test bei einem AVR mit USB (ATMega8U2 ,16U2, 32U2). Deren USART (man beachte das S) kann synchron zumindest bis ca. 1MBPS. Über USB kann ich dann ja per CDC oder HDI die Kommunikation machen. Danke
Da wird der Cypress zu langsam. Microchip hat da einige USB-Kandidaten, auch in der 16-bit-Reihe, die wären wohl schnell genug http://www.microchip.com/pagehandler/en-us/technology/usb/products/devicemcus.html
Stefan S. schrieb: > Deren USART (man beachte das S) kann synchron > zumindest bis ca. 1MBPS. Ja, das ist dann SPI. Aber ohne Start- und Stopbits, sondern mit nur 8 Datenbits.
@Rufus: Lese ich das Datenblatt falsch? Ich sehe da man kann die USART synchron, asynchron oder im SPI Modus betreiben. Im synchronen Modus wird der XCK Pin als Clock verwendet und man kann die möglichen Kombinationen für Start/Stop/Partity usw wie bei normaler UART verwenden.
Da kannst du auch einen der FTDI Chips mit der MPSSE nehmen, die können SPI mit beliebiger Bit-Länge. Hab ich letztens selber erst programmiert, mit LibMPSSE und einem FT2232H das OM5610 Radio-Modul beschreiben, das hat nämlich eine 25 Bit SPI. Achnee, 3-Wire, damals gabs ja noch den Philips-Motorola Glaubenskrieg. Also FTDI Chip mit MPSSE nehmen und am einfachsten über LibMPSSE programmieren.
Stefan S. schrieb: > Im synchronen Modus > wird der XCK Pin als Clock verwendet und man kann die möglichen > Kombinationen für Start/Stop/Partity usw wie bei normaler UART > verwenden. Wenn das möglich ist, dann hast Du da kein Problem. Ich nutze AVRs selber nicht, hatte aber bislang den deutlichen Eindruck, daß die Dinger nur eine reine 8-Bit-SPI-Unterstützung hätten. Eindrücke dürfen auch täuschen ... Aber der Vorschlag von Christian mit der Nutzung der MPSSE dürfte deutlich eleganter sein.
Ich würde auch den FT232H mit "Multi-Protocol Synchronous Serial Engine" empfehlen. Oder wenn's etwas aufwendiger sein soll, einen der Vinculum Controller (gibt's z.b dort: http://teske-electronics.de/index.php?cPath=18_19).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.