mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS232 dezimal immer +9?


Autor: Sam .. (sam1994)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Als ich heute meine SoftR232-SERIAL2USB-PC testete kam folgendes heraus:
001 002 003 012 013 014 015 016 017 018 019 028 029 030 031 032 033 034 
035 044 045 046 047 048 049 050 051 060 061 062 063 064 065 066 067 076 
077 078 079 080 081 082 083 092 093 094 095 096 097 098 099 108 109 110 
111 112 113 114 115 124 125 126 127 128 129 130 131 140 141 142 143 144 
145 146 147 156 157 158 159 160 161 162 163 172 173 174 175 176 177 178 
179 188 189 190 191 192 193 194 195 204 205 206 207 208 209 210 211 220 
221 222 223 224 225 226 227 236 237 238 239 240 241 242 243 252 253 254 
255 000 001 002 003 012 013 014 015 016 017 018 019 028 029 030 031 032 
033 034 035 044 045 046 047 048 049 050 051 060 061 062 063 064 065 066 
067 076 077 078 079 080 081 082 083 092 093 094 095 096 097 098 099 108 
109 110 111 112 113 114 115 124 125 126 127 128 129 130 131 140 141 142 
143 144 145 146 147 156 157 158 159 160 161 162 163 172 173 174 175 176 
177 178

bei folgendem Code:
    uint8_t i = 0;
    uart_init();
    DDRA |= (1 << 1);
    sei();
    while(1)
    {
        uart_putc(i++);
        _delay_ms(500);
        PORTA ^= (1 << 1);
    }

Softuart hab ich von hier: 
http://www.rn-wissen.de/index.php/Software-UART_mit_avr-gcc

Der SERIAL2USB Wandler ist dieser 
http://www.recursion.jp/avrcdc/cdc-232.html#usage

Den Tiny84 über MAx232 an den PC und es klappt wunderbar.

Weiß jemand was da nicht stimmen könnte?

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Sieht nach falscher Baudrate aus.

MfG Spess

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim Überfliegen in den Kommentaren entdeckt:
Hast du bedacht, dass die UART-Geschichte für Atmega8 geschrieben wurde 
und für andere Derivate eventuell angepasst werden muss?

Autor: Sam .. (sam1994)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mist warum bricht jetzt gerade das Kabel zum akku ab!

Michael schrieb:
> Beim Überfliegen in den Kommentaren entdeckt:
> Hast du bedacht, dass die UART-Geschichte für Atmega8 geschrieben wurde
> und für andere Derivate eventuell angepasst werden muss?

Die Register hab ich alle geändert. Direkt über Max232 funzt es ja.

Vielleicht war ich wirklich zu dumm die Baudrate einzustellen. Bei dem 
CDC232 muss man ja doppelt und dreifach die baudrate definieren. Mal 
schauen.

Habs nochmal probiert: 1200Baud 8Data 1Stop NoParity
und... Trommelwirbel ...dasselbe wie vorher.

Ich werds nochmal mit 9600Baud probieren.

Autor: Sam .. (sam1994)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit 9600 Baud sieht nicht beser aus.
Cool ein bisschen rumprobiert und jetzt ist es nur noch +5.
Könnte das am Internen RC liegen. Ich hab keinen Quarz genutzt.

Autor: Sam .. (sam1994)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Scheint wohl wirklich der CDC232 kaputt zu sein. Weiß auch nicht warum.
Wenn ich den TxD und RxD von diesem Brücke kommen bei manchen Werten 
ganz andere raus.

Ab Dec 63 kommt x + 129 raus. Das geht bis inklusiv 191.

Autor: Sam .. (sam1994)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So heute mach ich nichts mehr. Ich hab den CDC232 Controller 
neugeproggt. Nichts.

Wäre es möglich, dass die Rechenlogik in einem Bit kaputt geht? Ne eher 
nicht, oder?

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Samuel K. schrieb:
> Mit 9600 Baud sieht nicht beser aus.
> Cool ein bisschen rumprobiert und jetzt ist es nur noch +5.
> Könnte das am Internen RC liegen. Ich hab keinen Quarz genutzt.

Der interne Oszilator ist a.) nicht sehr genau und b.) ganz schön 
temperaturabhängig. Verwende mal einen Quarz und schau mal ob es dann 
funktioniert.

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was soll das Sparen ? Ein Quarz kostet um die 20 Cents. Dafuer passt die 
Baudrate.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A...aha Soooo. schrieb:
> Was soll das Sparen ?

Aufwand. Wenn ich nix so zeitkritisches habe verwende ich auch immer den 
internen Oszilator, spart Quarz, Kondensatoren und ein wenig Lötaufwand. 
Es mag nicht viel sein aber wie heißt es so schön: Kleinvieh macht auch 
Mist.

Autor: Entwickler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Kleinvieh macht auch Mist.

Den Mist braucht man in diesem Fall zum Düngen der Baudrate; die ist 
immer zeitkritisch.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich wollte damit auch sagen, dass man bei zeitkritischen Sachen, wie 
z.B. UART, nicht auf den Quarz verzichten sollte aber wenn man nix 
zeitkritisches hat man sich durchaus 20 Cent sparen kann (plus Bauraum 
und Co) und den internen Oszilator nutzen kann ;)

Autor: Skua (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Setze deine gesendeten und empfangenen Werte mal binär gegenüber.
Mir ist aufgefallen das immer 8er Gruppen entstanden sind.

Und was Sparst du an Zeit wenn es auch nur einmal wegen des nicht 
verbautem Quarzes nicht geht.

Autor: Sam .. (sam1994)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A...aha Soooo. schrieb:
> Was soll das Sparen ? Ein Quarz kostet um die 20 Cents. Dafuer passt die
> Baudrate.

Naja ich musste einen Attiny84 Programmer bauen. Auf den jetzt noch ein 
Qaurz zu quetschenn ist ein bisschen blöd.  Auf dem eigentlichen 
Testboard ist ja ein Quarz, allerdings hatte ich da kein Platz für einen 
ISP-Anschluss.

Ich werds mal mit probieren. Allerdings ist der Quarz ein 3.278.600 
damit die Uhr einfacher zu proggen ist. Für RS232 nicht so effektiv. Ich 
hatte damit ja noch nie Probleme, deswegen war ich hier ein bisschen 
leichtsinnig.

Skua schrieb:
> Setze deine gesendeten und empfangenen Werte mal binär gegenüber.
> Mir ist aufgefallen das immer 8er Gruppen entstanden sind.

Stimmt. ISt mir gar nicht aufgefallen. Außerdem hab ich noch bemerkt, 
dass die Hälfte der Signale verschwinden. Nach immer 128 Signalen kommt 
wieder 0.

Halt da fällt mir an: Am Quarz kann es nicht liegen: Dann würden meine 
gesendeten und empfangenen Werte funktionieren. Es muss am CDC232 
liegen.

Ich werde mal aus Verzweiflung einen neuen Chip reinsetzen. Was besseres 
fällt mir grad nicht ein.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Samuel K. schrieb:
> Allerdings ist der Quarz ein 3.278.600
> damit die Uhr einfacher zu proggen ist. Für RS232 nicht so effektiv.

Wieso? Ist doch nur eine Rechenfrage.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.