Forum: Mikrocontroller und Digitale Elektronik Problem mit Soft UART


von Michael M. (eos400dman)


Lesenswert?

Hallo,

ich versuche gerade Software UART auf einem Atmega 32 zum laufen zu 
bekommen.
Ich verwende den Code zur Appnote 305 von Atmel.
Dann rufe ich das ganze so auf:
1
loop:
2
ldi  Txbyte,01  ;Clear terminal
3
    rcall  putchar
4
ldi  Txbyte,0xAA  ;Clear terminal
5
          rcall  putchar
6
ldi  Txbyte,'T'  ;Clear terminal
7
    rcall  putchar
8
ldi  Txbyte,'E'  ;Clear terminal
9
    rcall  putchar
10
ldi  Txbyte,'S'  ;Clear terminal
11
    rcall  putchar
12
ldi  Txbyte,'T'  ;Clear terminal
13
    rcall  putchar
14
; ============================= 
15
;   Warteschleifen-Generator 
16
;     8000000 Zyklen:
17
; ----------------------------- 
18
; warte 7999992 Zyklen:
19
          ldi  R17, $48
20
WGLOOP000:  ldi  R18, $BC
21
WGLOOP100:  ldi  R19, $C4
22
WGLOOP200:  dec  R19
23
          brne WGLOOP200
24
          dec  R18
25
          brne WGLOOP100
26
          dec  R17
27
          brne WGLOOP000
28
; ----------------------------- 
29
; warte 6 Zyklen:
30
          ldi  R17, $02
31
WGLOOP300:  dec  R17
32
          brne WGLOOP300
33
; ----------------------------- 
34
; warte 2 Zyklen:
35
          nop
36
          nop
37
; ============================= 
38
rjmp loop

Ich habe den b Wert des UART Codes auf 66 gestellt. Laut Appnote passt 
das für 4 MHz und Baud 9600.

Allerdings wird so nur 6 mal Test gesendet. Jedoch sollte doch immer 
weiter gesendet werden, oder? Wo liegt denn der Fehler?

Gruß Michael
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Michael Mayer schrieb:
> Wo liegt denn der Fehler?
Nicht in dem geposteten Code.

> Allerdings wird so nur 6 mal Test gesendet.
Wie stellst du das fest?
Was passiert danach?
von Michael M. (eos400dman)


Angehängte Dateien:

Lesenswert?

Lothar Miller schrieb:
> Wie stellst du das fest?
> Was passiert danach?

Danach kommen keine Daten mehr im Terminal am PC an und auch das Oszi 
zeigt auf der Datenleitung keine Veränderung mehr.

Lothar Miller schrieb:
> Nicht in dem geposteten Code.
Im Anhang mal der Code vom Soft UART.

Gruß Michael
von Michael M. (eos400dman)


Lesenswert?

Wenn ich keinen Empfänger anschließe und nur mit dem Oszi messe 
funktioniert die Übertragung. Wenn ich aber 1kOhm an den Pin halte 
bricht das Signal schon komplett zusammen obwohl der Pin als Ausgang 
definiert ist. Wie kann so was passieren?

Gruß Michael
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.