Forum: Mikrocontroller und Digitale Elektronik Atmega168 - TxD Impuls beim Start


von Robert S. (vmax)


Lesenswert?

Hallo zusammen,
ich habe ein Problem mit einem Atmega168, an dessen Port D.1 beim 
Starten in kurzer Impuls ausgegeben wird.
Der Imnpuls hat eine Länge von nur ca. 0,5 Sekunden, aber den kann ich 
nicht gebrauchen. Meine Vermutung ist, dass der Impuls durch den TxD 
erzeugt wird, der auch auf dem Port hängt.
Habe schon versucht über txen0 = 0 den UART abzuschalten, aber es bringt 
nichts.
Hat jemande eine Idee wie ich das ändern kann?

$regfile = "m168pdef.dat"
$crystal = 16000000

$hwstack = 50
$swstack = 50
$framesize = 50

Ucsr0b.txen0 = 0
Ucsr0b.rxen0 = 0

Ddrd = &B0011_0011
Portd = &B1100_0000
Ddrc = &B0011_1111
Portc = &B1100_0000

 Do
   Waitms 1
 Loop

Besten Dank

von Thomas E. (thomase)


Lesenswert?

Robert S. schrieb:
> Meine Vermutung ist, dass der Impuls durch den TxD
> erzeugt wird, der auch auf dem Port hängt.

Nein.

> Habe schon versucht über txen0 = 0 den UART abzuschalten, aber es bringt
> nichts.

Natürlich nicht. Der ist nach Reset abgeschaltet.

> Hat jemande eine Idee wie ich das ändern kann?

Zieh das Programmiergerät ab!

mfg.

von spess53 (Gast)


Lesenswert?

Hi

>Meine Vermutung ist, dass der Impuls durch den TxD
>erzeugt wird, der auch auf dem Port hängt.

Unsinn. Nach einem RESET sind TXDEN0 und RXDEN0 = 0.

>Der Imnpuls hat eine Länge von nur ca. 0,5 Sekunden ...

Das sind für einen Controller Ewigkeiten. Wo sollen die herkommen?

MfG Spess

von Thomas E. (thomase)


Lesenswert?

spess53 schrieb:
> Wo sollen die herkommen?

Wenn ein Dragon angeschlossen ist und der Controller keine Spannung hat, 
gibt es beim Einschalten jeweils einen deutlich sichtbaren Impuls auf 
allen offenen Ports. Kommt wohl von der parasitären Versorgung des 
Controllers durch die SPI-Pullups des Dragon. Das passiert aber auch 
nur, wenn der Controller mindestens 10 Sekunden abgeschaltet war. Eine 
halbe Sekunde sind die allerdings nicht lang.

Bei JTAGICE oder AVRISP passiert das nicht. Aber die haben auch keine 
Pullups auf den ISP-Leitungen.

mfg.

von spess53 (Gast)


Lesenswert?

Hi

Da muss ich wohl Jahrzehnte lang irgend etwas mit zig ATMEL-Programmern 
falsch gemacht haben. So ein Mist ist mir in 18 Jahren noch nicht unter 
gekommen.

MfG Spess

von Robert S. (vmax)


Lesenswert?

N'abend,
danke für die ersten Antworten, aber an dem Programmiergerät liegt es 
nicht.

Vielleicht ist der Port auch nur 0,2 Sekunden high? Ich kann es nicht 
messen. Wie Spess schon schrieb, ist es für einen Prozessor eine 
Ewigkeit.

Na klar können beim Einschalten irgendwelche Ports kurzzeitig high 
werden, aber der Impuls kommt leicht verzögert.

Gruß
Rob

von Rudolph R. (rudolph)


Lesenswert?

Robert S. schrieb:
> Na klar können beim Einschalten irgendwelche Ports kurzzeitig high
> werden, aber der Impuls kommt leicht verzögert.

Beim Einschalten passiert da von alleine gar nichts.

Passiert das bei Dir auch mit gelöschtem Programm?

von Horst S. (Gast)


Lesenswert?

Startverzögerung in den Fuses auf 64ms eingestellt?
Mal einen externen Pulldown an den Pin gehängt?

Gruß Horst

von Dennis X. (Gast)


Lesenswert?

Setze ALS ERSTES in deinem Programm beide Pins (RX und TX) als EINGANG!

Ähnliches Verhalten hatte ich immer in meinen Programmen.

von Thomas E. (thomase)


Lesenswert?

Dennis X. schrieb:
> Setze ALS ERSTES in deinem Programm beide Pins (RX und TX) als EINGANG!

ALS ERSTES...EINGANG!

Das hättest du jetzt auch noch fett, unterstrichen und übergross 
schreiben können. Ändert aber auch nichts daran, dass es Unsinn ist. 
Denn alle Pins sind nach dem Reset als Eingänge geschaltet.

mfg.

von Dennis X. (Gast)


Lesenswert?

Dachte ich auch immer, es macht dennoch einen Unterschied. Ich habe hier 
eine Schaltung, welche immer ein null Byte über den uart geschickt hat 
sobald ich diese mit Spannung versorgt hab. Durch das ändern der 
Reihenfolge und das zusätzliche Beschalten als Eingang hat genau dieses 
Phänomen aufgehört. Ich kann hier auch nur schreiben was bei mir 
geholfen hat...  Ich kenne dem Grundzustand der Register und dennoch 
trat dieses Verhalten auf. Ich weiß nicht warum aber es ist 
reproduzierbar. Falls es jemand weiß bitte immer gerne.

von Thomas E. (thomase)


Lesenswert?

Dann sind deine Beobachtungen oder Schlussfolgerungen falsch. Die 
besagten Pins sind, wie alle anderen auch, nach dem Reset auf Eingang 
geschaltet. Daran ändert oder verbessert sich auch nichts, wenn diese 
nochmals auf Eingang geschaltet werden. Egal wann, in welcher 
Reihenfolge oder wie oft.

mfg.

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.