Forum: Mikrocontroller und Digitale Elektronik Kein TxD beim Mega16, IO geht, was los ?


von Oliver (Gast)


Lesenswert?

Hallo zusammen,
ich weiß nicht mehr weiter, ich habe ein Testboard mit einem
ATMega16 drauf mit 10 MHz.
Ich sende über den TxD Pin 10 (PD1) ein seriellen Text zu
einem Vakuum Display, soweit läuft alles super.

Nun habe ich mir eine Platine erstellt, gleicher µC und Frequenz,
aber es kommt nichts zur Anzeige.
Wenn ich den Port aber als I/O schalte, macht er 0 und 1 wie man´s halt
so kennt. Kann es sein, dass der TxD im Eimer ist, IO aber noch
funktioniert ?
Der Witz ist, es ging auch zum Anfang, nur jetzt nicht mehr und mir ist
nicht bewußt, was ich falsch gemacht habe.

Hier kurz der Testcode (Bascom) mit dem IO Port:
$regfile = "m16def.dat"
$crystal = 10000000
'$baud = 9600

'Ausgänge
Ddrd.1 = 1    'Seriel out

Do

 Portd.1 = 1
 Wait 1
 Portd.1 = 0
 Wait 2
 Loop

Alles ok, aber:


$regfile = "m16def.dat"
$crystal = 10000000
$baud = 9600

'Ausgänge--
Ddrd.1 = 1      ' Seriel out

 Do
 Print "Hallo Welt ";
 Wait 2
 Loop

Nichts passiert, nur auf dem Testboard. Ich wüßte nicht, was ich
jetzt falsch gemacht habe, zumal die Hardware und Pinbelegung gleich
ist.

Hat wer noch ein Tipp bevor ich den µC doch auslöte ?

Besten Dank.
mfg
oliver

von toddoy (Gast)


Lesenswert?

Denke mal kalte Lötstelle, wenn am Anfang alles funktioniert hat, und
der TXD Pin auch noch funktioniert, würde ich Messen, ob am TXD Pin
wenn du sendest überhaupt etwas rauskommt (Irgendein Frequenzmessgerät
oder Verstärker mit Lautsprecher oder sonstwas) und schauen, ob sich
was tut. Danach nochmal messen am Ausgang des Pegelwandlers. Kabel
durchmessen ob am ausgang wenn du sendest was ankommt. Irgendwo muss
der Fehler liegen. Bis jetzt habe ich schon die undenkbarsten Fehler
bei meinen Schaltungen gefunden. Meist habe ich selber irgendwo den
Fehler gemacht. Ist noch nie vorgekommen, das es am AVR lag, es sei
denn er hat gar nicht mehr reagiert. Mit Bascom kenne ich mich nicht
aus, kann dir also nicht sagen, ob da was falsch ist.

G. Tobi

von Rufus T. Firefly (Gast)


Lesenswert?

Wozu soll das gut sein?

  Ddrd.1 = 1      ' Seriel out

Könntest Du ein Config-Statement vergessen haben? So eins für die
serielle schnittstelle? CONFIG SERIALOUT?

von Oliver (Gast)


Lesenswert?

Moin Tobi, habe direkt am Pin abgegriffen, als IO gehts, nur als TxD
nicht. Selbe Anzeige am Testboard geht auch ..
Mein MultiMeter zeigt was mit 490 kHz an, am Testbaord 850 kHz,
kann damit aber nix anfangen ..(gleiche Software)

Mir kommt es so vor, dass die Baudrate nicht stimmt, warum auch immer.

mfg
oliver

von Pöschi (Gast)


Lesenswert?

Hallo,

Funktioniert der Controller noch auf dem Testboard, oder dort auch
nicht mehr?

Kann sein, dass er im Eimer ist, hatte ich auch schon oft mit
mega16nern die scheinen Statisch sehr empfindlich zu seien. Bei war das
sehr lustig ich wollte die PIN's als eingang nutzen (Interner Pull-UP
eingeschaltet) sie sollten gegen Masse gezogen werden, mit einem
direktem Draht ging das auch, nur mit einer ca. 1m entferten Leitung
nicht mehr. Ausgetauscht, ging!

Also wenn du noch einen zweiten hast, dann Probiere es mal mit dem,
aber Achtung möglicht nicht die Pin's so sehr berühren.

von Oliver (Gast)


Lesenswert?

Moin Rufus,

habe ich nicht vergessen, da nicht notwendig für die Vakuum-Anzeige,
geht auch nicht, eben probiert. Wiegesagt, gleiches Programm
auf dem Testboard geht alles, nur auf der fertigen Platine nicht
(mehr). Und viel falsch geht ja eigendlich nicht bei einer Leitung ..

mfg
Oliver

von Pöschi (Gast)


Lesenswert?

Hast du vieleicht unterschiedliche Quellen für den Takt?

z.B. Auf dem Testboard nur ein Takt an XTAL1 und auf der Platine Quarz
zw.XTAL1 und XTAL2 oder du hast generrell vergessen den Quarz über die
Fuse bits im Controller einzustellen, ist mir am anfang auch passier,
der schwingt ab werk auf internen 1MHz oder so.

Gruß Pöschi

von André K. (Gast)


Lesenswert?

Ddrd.1 = 1      ' Seriel out

Also ich mach das bei Bascom nie und trotzdem geht alles, nimm es zur
vorsicht mal raus.

An sich ist der Code so richtig. Vielleicht noch ein "end" drunter.
Bascom zeigt zwar keinen Fehler, macht aber manchmal irgendwelchen
Mist, wenns fehlt (eigene Erfahrung...)

MfG

von Oliver (Gast)


Lesenswert?

Moin,

dass Quarz ist aktiv, Fusebits etc alles gesetzt. Mein Testboard und
die fertige Schaltung sind identisch, also Pinbelgung, Frequenz.
Ich habe das gleiche Programm auf dem Board UND der fertigen Platine
getestet, auf dem Board geht alles 100%, nur auf der Platine nicht.
Aber was soll schon falsch sein bei einer Leitung ?
Das DDRD.1 = 1 kann man weg lassen, stimmt, geht aber auch mit.
Der Witz ist, dass es zu Anfang auch funktioniert hat, nur jetzt nicht
mehr. Ich komme wohl um ein µC tausch nicht mehr rum, da ich kein
Schimmer mehr habe, was der Fehler sein könnte ..

Habe auch zum Testen den int. Osz. getestet, ohne Erfolg.

mfg
Oliver

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.