Hi, kann ich einen Arduino Due USART irgendwie dazu überreden, was längeres als 8 Bit zu übertragen? Ich denke da an so 20 Bits ohne Start/Stoppbit etc. Oder brauche ich für solche Hacks unbedingt einen SPI? Danke!
> kann ich einen Arduino Due USART irgendwie dazu überreden, was längeres > als 8 Bit zu übertragen? Ich denke da an so 20 Bits ohne Start/Stoppbit > etc. Es gibt Controller, bei denen man Start-/Stopbits weglassen kann, der AVR gehört soweit ich weiss nicht dazu. Unterstützte Framelängen eines UARTs sind 5-8 Datenbits, 20 Datenbits geht somit schon gar nicht. Das liegt einfach daran, dass für die früheren Anwendungen der UART-Schnittstelle nicht mehr gebraucht wurden. > Oder brauche ich für solche Hacks unbedingt einen SPI? Entweder das, oder wenn die Übertragungsrate nicht übertrieben hoch ist, dann einen Timer-Interrupt und Bitbanging. Je nachdem geht's beispielsweise auch mit PCA, aber ohne genau zu wissen was du vorhast wird's schwierig eine Empfehlung zu geben. Ralf
Ralf schrieb: > Entweder das, oder wenn die Übertragungsrate nicht übertrieben hoch ist, > dann einen Timer-Interrupt und Bitbanging. Je nachdem geht's > beispielsweise auch mit PCA, aber ohne genau zu wissen was du vorhast > wird's schwierig eine Empfehlung zu geben. Hm, das wären 1 Bit je 500 nsec bzw. die 20 Bit im 100 kHz-Takt - also eher arg schnell...und zu schnell für den Arduino Due. Danke für das Feedback!
Varsegod schrieb: > zu schnell für den Arduino Due. Ein 2MHz-UART-Signal in Software auf einem 84MHz ARM zu generieren soll nicht möglich sein, während man ein 1.5 MHz V-USB Signal in Software auf einem 12 MHZ AVR generieren kann? Klingt unplausibel.
2 MHz für die Bits plus 4 MHz Takt (ein Puls pro Bit) plus ein Sync am Frameanfang, das ganze mal drei (weil drei Ausgänge benötigt werden) plus der restliche Krimskrams an Datenverwaltung (USB-Stack, Daten Senden/Empfangen) - ich glaube schon, dass das knapp werden könnte...
Man kann mehrere Pins gleichzeitig schalten sofern sie in einem Port liegen, mit ein bisschen manuellem loop-unrolling und assembler-codieren kriegt man das vermutlich locker hin. Von einem USB-Stack war bisher nicht die Rede. Ralf's Post ist übrigens hinfällig da das kein AVR ist. Dir bleibt wohl nichts übrig als ins Datenblatt des Controllers zu schauen und nachzusehen was der UART kann.
> Ralf's Post ist übrigens hinfällig da das kein AVR ist. Sorry, ich assoziiere 'Arduino' immer mit einem AVR, mein Fehler. Ralf
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.