PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATMega8 verhält sich sehr eigenartig...Neuling braucht Hilfe



Zentauro
29.01.2008, 19:43
Hallo,

ich bin eigentlich noch neu im Umgang mit den ATMega... Habe ein Board gebaut, mit welchem ich eine Geschwindigkeitsregelung für einen Elektroroller realisieren will...

Das Board funktioniert einwandfrei, solange ich den ISP-Stecker (USB-ISP Programmer) angesteckt habe...

ich muss dazusagen, dass das board lediglich mit 4,3V versorgt ist, aber es hat sich eben angeboten und ich denke auch weiter kein problem (oder doch?) ;) ==> ich glaube der ISP-Programmer versorgt das ding nicht..

es ist jedenfalls so, dass der controller ganz komische dinge macht --> ich sende zu debugzwecken immer die aktuellen werte verschienster variablen vom controller auf den pc - das funktioniert prächtig, wenn ich nun den programmer abstecke und ein paar mal aus und ein schalte (die versorgung des rollers), dann kommen plötzlich komische werte rauf (auch konstanten sind falsch) und das programm macht plötzlich nicht mehr das was es sollte....

steck ich den programmer an, starte wieder neu, dann gehts. es geht auch wenn ich beim neustart den programmer stecken hatte und ihn erst im betrieb ausstecke.

bin vollkommen ratlos - wenn mir bitte jemand einen tipp geben könnte...

danke, lg zentauro

p.s.: den schaltplan hab ich auch drangehängt (obacht! nicht schön *ggg*)

Besserwessi
29.01.2008, 20:01
Im Schaltplan ist nur 1 Entkoppelkondensator für VCC, keiner extra bei AVCC. Je nach Platinenlayout kann das Probleme geben. Je nach Spannungsquelle sollte eventuell acuh noch ein kleiner Elko ca. 10 uF an VCC liegen. Die Widerstände sind mit 100 Ohm ziehmlich niedrig und bieten keine sichere Entkpplung zum Rest. Passender wären 5-10 KOhm und entsprechend kleinere Kondensatoren. Offene Eingänge können ein Problem sein, wenn die Pullups nicht aktiviert sind.

McJenso
29.01.2008, 20:33
Hallo,

wie kommt es zu den 4,3V, Schaltung? Ist Brown-out detection aktiviert? Watchdog? Kannst du ein 'Minimalprogramm' posten, bei dem der Fehler auftritt? Tritt der Fehler z.B. auch auf, wenn du immer eine 65 sendest und nichts anderes im Programm machst? Welche Baudrate nutzt du? Wie geht es hinter dem Steckverbinder Serial weiter, max232? Und welche Startup-Time hast du eingestellt?
Alles was Besserwessi geschrieben hat ist richtig. Was mich allerdings vermuten läßt, dass da noch andere Dinge im Argen liegen sind diese beiden Aussagen.


auch konstanten sind falsch



es geht auch wenn ich beim neustart den programmer stecken hatte und ihn erst im betrieb ausstecke.


Gruß

Jens

fumir
29.01.2008, 20:40
ich würde mich auch erst mal auf die spannungsversorgung konzentrieren. beim ein/ausschalten des rollers ist die betriebsspannung womöglich nicht stabil (starke fluktuationen) vielleicht bringt das den µC aus dem takt.

kenn mich mit dem isp programmer nicht so gut aus. versorgt der wirklich nicht den µC wenn der stecker steckt?

wenn das board mit 4.3V versorgt wird, muss man womöglich drauf achten, dass die pegel zum rest der schaltung (roller) passen.

Zentauro
30.01.2008, 06:47
hallo,

erstmal danke für eure antworten...



Offene Eingänge können ein Problem sein, wenn die Pullups nicht aktiviert sind.

um die pullups zu aktivieren muss ich die freien ports zu eingängen machen oder?


Ist Brown-out detection aktiviert? Watchdog?
weder noch....


Kannst du ein 'Minimalprogramm' posten, bei dem der Fehler auftritt?
ja, ich werd mal ein kleines testprogramm machen und wenns da auftritt (was ich mal behaupte), werd ichs posten...


wie kommt es zu den 4,3V
naja - frag nicht ;) ==> der roller ist aus china und alle versorgungsleitungen führen 4,3V (da drüben ist einiges anders*ggg*)


Wie geht es hinter dem Steckverbinder Serial weiter, max232? Und welche Startup-Time hast du eingestellt?
ja genau, hinter dem serial steckt ein board mit nem max232...
startup time ist glaub ich (ich weiss es grad nur in fusebits) 1110 (ich glaub das ist ziemlich schnell??)


ich würde mich auch erst mal auf die spannungsversorgung konzentrieren. beim ein/ausschalten des rollers ist die betriebsspannung womöglich nicht stabil (starke fluktuationen) vielleicht bringt das den µC aus dem takt.
kann das auch sein, wenn ein externer quarzoszillator dranhängt?


wenn das board mit 4.3V versorgt wird, muss man womöglich drauf achten, dass die pegel zum rest der schaltung (roller) passen.
soweit passt alles - wie gesagt es sind überall nur 4,3V*ggg*

fumir
30.01.2008, 12:46
ich würde mich auch erst mal auf die spannungsversorgung konzentrieren. beim ein/ausschalten des rollers ist die betriebsspannung womöglich nicht stabil (starke fluktuationen) vielleicht bringt das den µC aus dem takt.
kann das auch sein, wenn ein externer quarzoszillator dranhängt?

meinte das mit dem takt nicht wörtlich, hat insofern mit dem quarz erst mal nix zu tun.
ich meinte, dass so ein µC ne richtig stabilie versorgungsspannung braucht, damit intern alles richtig läuft. wenn deine 4.3V nur grob oder gar nicht stabilisiert ist, dann wird das nix mit dem µC. da müsste dann noch ein spannungsregler zwischen deine roller-versorgungsspannung und die µC-schaltung. wo genau kommen denn die 4.3V her?

Zentauro
30.01.2008, 14:38
hallo,


wo genau kommen denn die 4.3V her?

die kommen aus der motorsteuerung raus (ist ein direktantrieb mit einem bürstenlosen motor)

danke, lg

McJenso
30.01.2008, 18:03
Hallo,
ich hoffe jetzt mal nicht, dass das die Leitung ist, die vom Regler zum Motor geht. Sollte es doch der Anschluß sein, vergiss es ganz schnell und such dir die Leitung die direkt vom Akku zu kommt.
Hab mal gerade in die Datenblätter geschaut.
Atmega8 4,5V-5,5V es sei denn du hast die L-Version. Besser noch du einigst dich auf einen Atmega 48/88.
Max 232 5V +/- 10% (also dito)
Da gibt es dann den MAX3232 für. Wenn du den nutzt und den 16L oder 48/88 kannst du auch noch einen Lowdrop Spannungsreger einsetzen und deine Versorgung auf 3,0V stabilisieren. Dann musst du aber höllisch auf die Eingänge aufpassen, das du da nicht mit höheren Spannung drauf gehst.
Am einfachsten ist du findest eine Akkuspannugn von 7V.
Versuch als erstes mal eine möglichst lange Startup Time, eine kleine Baudrate, tolle Kondensatoren an der Versorgung und siehe erster Satz.

Gruß

Jens

Zentauro
30.01.2008, 18:36
hallo,

erstmal danke an alle, die mich so tatkräftig unterstützt haben...

hab jetzt folgendes durchgeführt:
- die schaltung mit einigen kondensatoren gespickt
- die motorsteuerungs-blackbox genötigt (geöffnet) und mir stabilisierte 5V geholt (die chinesen haben also doch auch 5V*ggg*)

==> ich hatte dasselbe problem!!!

die lösung:
(liegt eigentlich auf der hand, und ist mir auch ein wenig peinlich)

ich hatte immer das debugkabel (auf einer platine mit einem max232 angebracht) mit an und abgesteckt. ich habe mich immerzu auf das isp-kabel konzentriert. aufgrund meiner faulheit habe ich also eine extra platine mit dem max232 --> steckt man den ab und hat im programm einen seriellen interrupt konfiguriert, welcher die variablen ändert, wenn gewisse zeichen kommen, dann ändern sich ständig die umstände, weil die RX-leitung FLOATET!!!

==> eigentlich völlig logisch, aber im ersten moment schaut man eben auf andere dinge...

das resümee aus dem ganzen ist, dass ich einen jumper zwischen rx und gnd stecke und alles ist gut!!!

danke nochmals an alle!!!!!!!!!!!!

lg zentauro