Suche Attiny Soft-Uart

OP #1931134
Lesenswert?

Hi

Ich suche jetzt schon länger an einer Lösung für Soft-Uart an einem 
Attiny84.
Die bestaussehende Lösung musste ich jetzt leider wegwerfen, da der 
Attiny84 kein TICIE1 hat (Timer 1 Input Capture Interrupt Enable). Code 
ist hier: http://www.rn-wissen.de/index.php/Software-UART_mit_avr-gcc
Sachen mit T0 funktionieren nicht, da ich die Platine schon habe. Ich 
suche ein Uart für 2 Stinknormale Portpins. Gibt es keine Lösung wie ich 
sie mal bei einem USB2RS323 Attiny gesehen habe: Einfach die Uartpins 
angeben und es läuft? Der Uart darf entweder den 8 oder 16bit Timer 
nehmen (mehr braucht er ja nicht) und mit sonstigen Interrupts arbeiten, 
aber auf keinem Fall mit delay!

Ich hoffe da gibt es etwas.
Danke im Vorraus.
OP #1931175
Lesenswert?

Huch schrieb:
> Evtl. passt das hier
>
> Beitrag "Software UART mit FIFO"

Schau ich mir nochmal an. Das gefiel mir nicht wegen dem FIFO. Der ist 
in meinem Fall völlig unnötig. Es werden nur Steuerbefehle gesendet. Die 
wenigen Daten belaufen sich auf vielleicht 20Byte/s und das nur ab und 
zu.

Huch schrieb:
> Oder das hier:
> Beitrag "Software UART"

Da steht man braucht den T0 pin. Irgendwie wird das eher als INT0 
beschrieben. T0 und T1 ist doch der Analog Comperator. Wenn man dafür 
auch den PCINTx Interrupt nehmen kann geht das auch.
#1933538
Lesenswert?

Samuel K. schrieb:
> Die Übertragung über das hier
> http://www.recursion.jp/avrcdc/cdc-232.html#usage finktioniert aber
> nicht. Liegt das daran, dass das kein echter UART ist (von beiden
> Seiten)?

Nen paar Infos hättest du schon noch geben können, um eine Diagnose 
unsererseits möglich zu machen.

Stimmt F_CPU mit dem tatsächlichen Takt überein?

Funktionierts denn über nem MAX232 an ner richtigen serielle 
Schnittstelle?

Funktionert dein CDC-232 überhaupt?




N

Gruß Skriptkiddy
OP #1933554
Lesenswert?

Skript Kiddy schrieb:
> Stimmt F_CPU mit dem tatsächlichen Takt überein?

Standard Quarz 1Mhz. Div8 Fuse ist ausgeschaltet. Ich werd trotzdem mal 
eine LED im 1s Takt blinken lassen

> Funktionierts denn über nem MAX232 an ner richtigen serielle
> Schnittstelle?

Das wollte ich noch ausprobieren.

> Funktionert dein CDC-232 überhaupt?

Ich hab mit einem 2 Chip die Signale gemessen, die aus TxD rauskommen, 
wenn man etwas mit dem Terminal sendet. Da sieht man eindeutig, dass da 
Daten laufen.
Sobald CDC-232 erkannt wird, sollte es eigentlich funktionieren. Ich 
habe es allerdings auf dem Save MOde laufen. Da ist 9600Baud das 
höchste.
#1933560
Lesenswert?

Samuel K. schrieb:
> Sobald CDC-232 erkannt wird.....
Das heißt lediglich, dass die USB-Seite funktioniert. Es kann immer noch 
Murks auf der UART-Seite sein (hardwaremäßig). Das ist aber eher 
unwahrscheinlich.
Also hast du mit deinem CDC-232 schon erfolgreich Daten 
versenden/empfangen können? Das ist für die Fehlersuche von erhebicher 
Bedeutung. Dann dann kann man es als mögliche Fehlerquelle wirklich 
ausschießen.

Gruß Skriptkiddy
OP #1933577
Lesenswert?

Skript Kiddy schrieb:
> Also hast du mit deinem CDC-232 schon erfolgreich Daten
> versenden/empfangen können? Das ist für die Fehlersuche von erhebicher
> Bedeutung. Dann dann kann man es als mögliche Fehlerquelle wirklich
> ausschießen.

Empfangen halt. Aber nicht ausgewertet. Ich hab die Sende Leitung des 
CDC-232 mit 2kHz abgetastet und gesehen, dass sich beim senden was tut.

Ich habe jetzt die Softuart ausgänge vom Attiny an das Pollin Board 
gesteckt, so dass sie zum RS232 Wandler führen. Das Ergebnis erst 
nichts, da das GND Kabel kaputt war und einen Widerstand von ein paar 
kOhm hatte. Danach kommen viele Fragezeichen an. Also wird das Protokoll 
gestört. Oder die Baudraten stimmen nicht. Ich mach jetzt mal das mit 
dem LED toggeln.

EDIT: Da fällt mir ein, CDC-232 funktioniert doch. Ich hab vor ein paar 
Tagen mal den RxD und den TxD Pin verbunden und die Daten kamen zurück.

EDIT2: Wird das Ding mit 8Mhz ausgeliefert? Es blinkt wird 
schätzungsweise 8mal in der Sekunde getoggelt.
OP #1933610
Lesenswert?

Wird das Ding mit 8Mhz ausgeliefert? Es blinkt wird
> schätzungsweise 8mal in der Sekunde getoggelt.
blinkt hätte ich weglassen sollen.

Der war wirklich auf 8MHz getaktet. Jetzt toggelt die LED nur noch 1mal 
pro Sekunde.
Bei 9600Baud kommen jetzt diese Zeichen ` mit dem ASCII Wert 96. 
Eigentlich sollte "Hallo" gesendet werden. Den Code hab ich mal 
angehängt.
Angehängte Dateien:

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