Forum: Mikrocontroller und Digitale Elektronik ATMEL/Arduino-USART und exotische Framelängen


von Varsegod (Gast)


Lesenswert?

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!

von Ralf (Gast)


Lesenswert?

> 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

von Varsegod (Gast)


Lesenswert?

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!

von Dr. Sommer (Gast)


Lesenswert?

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.

von Varsegod (Gast)


Lesenswert?

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...

von Dr. Sommer (Gast)


Lesenswert?

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.

von Ralf (Gast)


Lesenswert?

> 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
Noch kein Account? Hier anmelden.