Forum: Mikrocontroller und Digitale Elektronik ATMega644 UART funktioniert nicht richtig


von sBronco (Gast)


Lesenswert?

Hi,
ich hab mir ein kleines Gerät gebaut, das in meinem PC eingebaut, 
perfekt funktioniert, allerdings nach dem Einschalten erst mal nicht...

Gerät ist in einem 5¼ Schacht eingebaut, bekommt seine Spannung über die 
HDD Versorgung.
Darauf ein M644 und FT232R, am USB Stecker ist +5V nicht angeschlossen.
Nach dem Einschalten Bootet der PC, das Gerät beginnt sofort zu 
arbeiten,
nach erfolgreichem Windows Start, wird ein Programm gestartet, das eine 
Verbindung zum FT232 aufbaut und Daten an diesen sendet, das klappt, ich 
seh das die RX Led blinkt.

Auf den Empfang jedes Datenpakets soll das Gerät mit eigenen Daten 
antworten, das klappt nicht immer.
Nach jedem 3- 4 Kaltstart muss ich die Spannungsversorgung kurz 
unterbrechen, dann gehts.

Die Datenpakete sind 28 bzw 64 Byte lang.

Meine Idee war, dass ich beim nächsten Teil, in die Spannungsversorgung 
einen Transistor einplane, der vom Mega abgeschaltet werden kann, wenn 
nach n Sekunden keine Daten empfangen wurden, abschalten und Neustart.

Einen NPN Transistor, Basis mit R 10k an VDD = Durchgeschaltet wenn 5V 
anliegen, im Bedarfsfall Basis nach GND ziehen, aber wie? PNP ?
Hab da auch nicht mehr so viel Platz auf der Platine

So, genau da hänge ich jetzt.

Ich hoffe mir gibt jemand einen Platzsparenden Tip

Danke schon mal

von Spess53 (Gast)


Lesenswert?

Hi

>Meine Idee war, dass ich beim nächsten Teil, in die Spannungsversorgung
>einen Transistor einplane, der vom Mega abgeschaltet werden kann, wenn
>nach n Sekunden keine Daten empfangen wurden, abschalten und Neustart.

Warum nicht den wirklichen Fehler suchen?

MfG Spess

von Georg G. (df2au)


Lesenswert?

Watchdog im 644 aktivieren und bei Ausbleiben der Antwort den Hund 
beißen lassen.

von Stefan F. (sfrings)


Lesenswert?

Nimm den AVR aus seinem Sockel und verbinde dessen RxD mit dem TxD Pin. 
Dann teste die Verbindung mit einem Terminal-Programm. So findest DU 
heraus, ob die Kommunikation zwischen PC und dem FT232 klappt.

Als Nächsten Schritt bau den AVR wieder ein und installiere ein 
einfaches Programm, dass z.B. immer 10 Bytes empfängt und danach 
"xxxxxxxxx" sendet. Wenn das klappt, schreibe das Programm so um, dass 
es anstelle der x die zuvor empfangenen Bytes sendet.

Dann schreibst Du ein AVR Programm, dass zu deinem PC Programm 
kompatibel ist, aber ales nur simuliert (also keine Sensoren Abfragen 
oder so, ganz minimalistisch).

So findest DU heraus, ob das PC Programm Ok ist.

Wenn bis dahin alles geklappt hat, hast Du wohl einnen Fehler im AVR 
Programm.

Also: Fehler zuerst einkreisen und dann Fragen stellen.

von sBronco (Gast)


Lesenswert?

Georg G. schrieb:
> Watchdog im 644 aktivieren und bei Ausbleiben der Antwort den Hund
> beißen lassen.

Reset reicht nicht, muß kurz Stromlos sein
allerdings ist der Reset vom FT232 nicht beschaltet, wie im Datenblatt 
unter "Self- Powered" beschrieben

Stefan Frings schrieb:
> Nimm den AVR aus seinem Sockel

TQFP, geht also ned...


Das Programm funktioniert perfekt, über zig Stunden ohne Probleme, ich 
kann die Sensordaten senden, empfangen, verarbeiten, Configdaten senden 
und empfangen, das sind dann ca 150 Byte,
wenns nicht sofort ab Start funktioniert >> aus, an, geht

Protokoll sieht so aus:
PC sendet "!UPD#mehrere#Zahlen#getrennt#durch##E"(nde)
Gerät sendet daraufhin "!UPD#viel#mehr#Zahlen#getrennt#durch##LFCR"
und das einmal die Sekunde,
dann gibts als Steuerbefehle noch "?CFG#", "!CFG#", "?UPD#"
das tut alles, wenns geht, gehts immer

von Spess53 (Gast)


Lesenswert?

Hi

>Das Programm funktioniert perfekt,

>wenns nicht sofort ab Start funktioniert >> aus, an, geht

Also funktioniert es nicht perfekt. Hör auf dir etwas vor zu machen und 
suche den Fehler.

MfG Spess

von Thomas E. (thomase)


Lesenswert?

sBronco schrieb:
> wenns nicht sofort ab Start funktioniert >> aus, an, geht
Funktioniert vielleicht nicht, weil die Spannung vom PC-Netzteil zu 
langsam ansteigt.
Schalte BOD ein.

mfg.

von sBronco (Gast)


Lesenswert?

Spess53 schrieb:
> Also funktioniert es nicht perfekt. Hör auf dir etwas vor zu machen und
> suche den Fehler.

das habe ich bereits versucht, in beiden Programmen alles andere raus 
geschmissen, nur den USB Teil stehen lassen > selbes Verhalten
Software seitig bin ich mit meinem Latein am Ende



Thomas Eckmann schrieb:
> Schalte BOD ein.

BOD steht bei 4.7V
und wie gesagt; Reset reicht nicht!

von sBronco (Gast)


Lesenswert?

sBronco schrieb:
> nur den USB Teil stehen lassen > selbes Verhalten


Ich hatte einen Spiegel geschrieben

von sBronco (Gast)


Angehängte Dateien:

Lesenswert?

Ich vermute am ehesten ein Problem am FT232, hier ist mal die Schaltung

von sBronco (Gast)


Lesenswert?

Shit, seh grad der Reset vom FT ist hier beschaltet, ist ein neuer 
Entwurf, auf der fertigen Platine ist er UN- beschaltet

von Thomas E. (thomase)


Lesenswert?

sBronco schrieb:
> und wie gesagt; Reset reicht nicht!
Damit macht er auch keinen Reset, sondern bleibt im Reset bis die 
Spannung >4,7V ist.

> Shit, seh grad der Reset vom FT ist hier beschaltet, ist ein neuer
> Entwurf, auf der fertigen Platine ist er UN- beschaltet
Ein Resetpin ist dazu da, diesen auch zu benutzen. Also mach das auch.
Entweder du hängst den FT-Reset mit an den Atmega-Reset, dann kommen 
beide gleichzeitig oder du hängst den Ft-Reset an einen Port vom Atmega 
und führst dann einen Reset des Ft per Programm aus.
Aber nicht blöd an Vcc oder offen.

mfg.

von sBronco (Gast)


Lesenswert?

Thomas Eckmann schrieb:
> Ein Resetpin ist dazu da, diesen auch zu benutzen.

kann laut Datenblatt unbeschaltet bleiben,
wird im neuen Entwurf aber geändert

von Thomas E. (thomase)


Lesenswert?

sBronco schrieb:
> kann laut Datenblatt unbeschaltet bleiben,
Kann. Und wenn man den an eine bestehende stabile Spannung anschliesst, 
ist das auch OK.
Aber wenn man den zu nichts bräuchte, hätten die von FTDI den gar nicht 
rausgeführt.

mfg.

von Juergen G. (jup)


Lesenswert?

Ich muss spess recht geben.


Ich meine mich erinnern zu koennen, dass and den Reset vom FT232 ein 
Spannungsteiler dran kommt.

und in die USB+/- Leitungen sollten kleine Widerstaende 22R rein und C's 
gegen GND.

von sBronco (Gast)


Lesenswert?

Reset macht irgendwie schon Sinn, kann das bei diesem kleinen Gehäuse 
aber nicht so kurz ändern, muss also eine neue Platine basteln und 
hoffen das es das war...

beim ersten Entwurf habe ich das ursprünglich am M644 Reset mit dran 
gehabt,
ging dann Routingtechnisch nicht, ohne einen Draht über die Platine zu 
ziehen, da das DB sagt geht auch ohne, weil intern beschaltet, hab ichs 
halt weggelassen.

Juergen G. schrieb:
> und in die USB+/- Leitungen sollten kleine Widerstaende 22R rein und C's
> gegen GND.

definitiv unnötig

von sBronco (Gast)


Lesenswert?

Sodele, habe jetzt, mittels einer Litze, den Reset Pin vom FT232 an 
Reset vom M644 gehängt.
Tata, alles tut.

Ihr hattet recht, so gehts richtig.

von sBronco (Gast)


Lesenswert?

Kaum macht mans richtig, schon klappts

von tscheschesche (Gast)


Lesenswert?

Die PC versorgung ist ziemlich schei***.. würde da einige Kondensatoren 
dran hängen...

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.