Tiny85 Uart RX ohne INT0 ?

OP #3358152
Lesenswert?

Hi,

bevor ich lange rumprobiere dachte ich mir ich mach mich erstmal schlau, 
habe natürlich schon viel im Wiki gelesen und einiges versucht.

Es geht um einen Tiny85 mit V-USB das ja schon den einzigen Interrupt 
des Tinys nutzt. Wäre nicht schlecht wenn ich jetzt einen Software-Uart 
RX Eingang dazu implementieren könnte, habe allerdings gelesen das das 
halt diesen 1 Interrupt benötigt.

Ich weiß, eigentlich würde ich auch einen Hardware Uart bevorzugen aber 
nun hab ich leider alles dafür da :/

Gruß,
Phil
Gast #3358588
Lesenswert?

Philipp K. schrieb:

> Es geht um einen Tiny85 mit V-USB das ja schon den einzigen Interrupt
> des Tinys nutzt.

Das ist nicht der einzige. JEDER Pin des Tiny85 kann einen Interrupt 
erzeugen.

Das hilft dir nur kaum. Das Problem ist, daß V-USB (gezungenermaßen) 
eine komplette LowSpeed-USB-Transaktion in einer ISR abarbeitet, anders 
könnte V-USB das dafür nötige Timing nicht sicherstellen.

Durch derart lange Phasen exclusiver Codeausführung unterbrochen, kann 
ein Software-UART allerdings nur noch bei sehr geringen Bitraten 
funktionieren. Größenordnung 600Bit/s.

Willst du mehr, mußt du den UART-Code mit dem USB-Code quasi 
"verschachteln". Das geht allerdings nur, wenn überhaupt noch freie 
Taktzyklen zum Verschachteln vorhanden sind. Bei 12MHz ist das also 
ziemlich hoffnunglos. Und natürlich geht es ganz sicher nicht, indem du 
irgendwo zusammengesuchten C-Code irgendwie zusammenleimst.

Wenn du also keine Lust oder Zeit hast, wirklich zu programmieren, 
solltest du dringend in Erwägung ziehen, auf ein Teil mit Hardware-UART 
zu wechseln, denn das entspannt die Sachlage ganz erheblich, nämlich bei 
8N1 knapp um den Faktor 20. Die gute Hälfte davon dadurch, daß halt über 
10 UART-Bitzeiten hinweg alles ohne MCU geht, den Rest dadurch, daß das 
eingebaute Double Buffering das Abholen eines empfangenen Worts durch 
die MCU nochmal um fast eine Wortzeit verzögert ermöglicht.
OP #3359842
Lesenswert?

Danke für Deine Antwort, ich habe es mir fast gedacht bzw das mit den 
sehr engen Zyklen war im Code nicht zu übersehen..

Dann kann ich quasie gleich auf einen m32u4 oder m32u2 zugreifen, da hab 
ich dann ein Sorglospaket.

Ich werde mal selbst suchen, gibt es einen Tiny mit HW-Uart und min 8kb 
Flash? Befürchte der m8 ist schon fast das gleiche, der tiny168 sollte 
auch okay sein.

Gruß,
Philipp

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren