Hi Leute! Ich bin gerade dabei, das AVR Tutorial (Grundlagen I/O) dieser Seite nachzuvollziehen. Ich habe den Atmega8-Controller auf einem Steckbrett und benutzte den original ISP von AVR (MKII) unter Ubuntu 14.04. Zum Verhalten: Ich kann den uC ohne Weiteres programmieren, und alles funktioniert bisher, so wie es soll. Wenn ich jedoch den uC starte, ohne dass dabei der ISP angeschlossen ist tut sich nichts. Erst wenn ich den uC anschließe fangen die LEDs an zu leuchten. Ziehe ich dann den USB-Stecker wieder ab, leuchten sie auch dauerhaft. Steckbrett am Strom -> nichts ISP am USB-Anschluss vom PC und am Steckbrett -> LEDs leuchten Steckbrett wieder nur am Strom -> LEDs leuchten Ist dieses Verhalten normal? Ich denke mal nicht. Woran kann das liegen?
Hallo Philip, für mich klingt das nach einem undefinierten Reset-Pegel, welcher durch das Programmiergerät in die richtige Richtung gezogen wird. Probier den Pegel am Reset-Pin durch PullUp- oder Down-Widerstand (ca. 10k) auf den richtigen Pegel zu ziehen. Hat der Mega8 nicht eine Fuse mit der der Reset-Pin beeinflußbar ist? Aber das wäre mit Vorsicht zu verwenden, nicht daß er am Ende nicht mehr programmierbar ist. Gruß. Tom
Philip schrieb: > tut sich nichts. Erst wenn ich den uC anschließe fangen die LEDs an zu > leuchten. Ziehe ich dann den USB-Stecker wieder ab, leuchten sie auch > dauerhaft. Heisst das, du ziehst nur den USB Stecker vom Programmer zum PC ab? Wenn ja. Dann trenne den Progammer vom Mega! AM PC kann der Programmer die ganze Zeit angeteckt bleiben. Aber kein Mensch weiß, was der Programmer mit der Reset-Leitung des Mega macht, wenn der Programmer keinen Strom über USB bekommt.
Hi, vielen Dank für die Antworten. Ich bin mir leider nicht ganz sicher ob mein Problem "richtig" rübergekommen ist. Wenn das Steckbrett mit dem PC über ISP verbunden ist, kann ich ganz normal den Mega8 flashen und neue Programme aufspielen, die auch sofort angenommen und umgesetzt werden. Trenne ich dann den Mega8 vom ISP (bzw. den ISP von PC) läuft das "Programm" (also in meinem Fall das Leuchten der LEDs) ganz normal weiter. Trenne ich dann das Steckbrett vom Strom, hören die LEDS selbstverständlich auf zu leuchten. Verbinde ich das Steckbrett dann wieder mit dem 5V Netzteil, passiert nichts. Wenn ich daraufhin den ISP wieder anschließe, also nur dem ISP per USB Strom zuführe. Fangen die LEDs wieder an zu leuchten, jedoch muss ich das Programm nicht neu aufspielen. Daher glaube ich auch nicht, dass etwas "resettet" wird! Jemand noch eine Idee?
Philip schrieb: > Jemand noch eine Idee? Ja. Zeig deinen Schaltplan von Mega. Hast du die übliche Aussenbeschaltung angebaut * Abblockkondensatoren an den Spannungsversorgungsanschlüssen * 10k Widerstand an Reset gegen Vcc Wenn die da sind, gibts eigentlich keinen Grund mehr, warum der Mega nach dem Anlegen der Versorgungsspannung nicht anlaufen sollte. Es sei denn, deine Versorungsspannung ist ziemlich mies. Wie ist die aufgebaut?
Philip schrieb: > Wenn ich daraufhin den ISP wieder anschließe, also nur dem ISP per USB > Strom zuführe. Fangen die LEDs wieder an zu leuchten, jedoch muss ich > das Programm nicht neu aufspielen. Daher glaube ich auch nicht, dass > etwas "resettet" wird! Gerade deshalb. Das einzige, was der Programmer beeinflusst ist die Aussenbeschaltung des Reset Pins. Wenn der Mega nach Anschluss des ISP anläuft, dann hat er sogar recht wahrscheinlich vom Programmer eine vernünftige Aussenbeschaltung des Reset Pins bekommen, so dass er aus dem Reset raus kann.
Bist Du Dir sicher, dass die Betriebsspannung da ist? Eventuell speist Du das System über den Programmieradapter. Für 'ne LED und den Prozessor dürfte die Leistung des ISP ausreichen.
Hallo Philip, ich habe dein Problem schon verstanden. Löte doch einfach mal einen 10k-Widerstand von VCC nach "Reset", damit wird der Pegel definiert auf "kein Reset" gelegt. Wenn dein Mega8 dann ohne Programmiergerät funktioniert ist es gut, wenn nicht ist der Fehler woanders! Hier ein Auszug aus dem Datenblatt: PC6/RESET If the RSTDISBL Fuse is programmed, PC6 is used as an I/O pin. Note that the electrical characteristics of PC6 differ from those of the other pins of Port C. If the RSTDISBL Fuse is unprogrammed, PC6 is used as a Reset input. A low level on this pin for longer than the minimum pulse length will generate a Reset, even if the clock is not running. Gruß. Tom
Ich habe jetzt noch einmal ein bisschen am Schaltplan "rumgespielt". Wenn ich das Kabel, dass zwischen ISP und ResetPin (Pin1) liegt, einfach "rausziehe" und dann die Stromzufuhr schalte, funktioniert es wie gewünscht. Eigentlich dürfte dies doch keine Änderung, bei ausgeschaltetem ISP hervorrufen, oder? Ich hab mich m.E. genau an den Schaltplan hier im Tutorial gehalten. Widerstand zwischen Reset und VCC (10 kOhm) vorhanden!
Hi Leg doch einfach mal einen 10k Widerstand von Reset mach VCC und lass dich überraschen. Das du Spannung auf dem Board hast, will ich dir auch glauben, aber auch am Controller an den richtigen Pins? Es könnte auch sein, das er sich "rückwärts" einspeist. In der Regel ist meistens der Aufbau schuld oder die Software. Ich sprech da aus eigenen Erfahrungen... Also, such das Problem bei deiner Arbeit und nicht am Controller. Gruß oldmax
Philip schrieb: > Ich habe jetzt noch einmal ein bisschen am Schaltplan "rumgespielt". > > Wenn ich das Kabel, dass zwischen ISP und ResetPin (Pin1) liegt, einfach > "rausziehe" und dann die Stromzufuhr schalte, funktioniert es wie > gewünscht. > > Eigentlich dürfte dies doch keine Änderung, bei ausgeschaltetem ISP > hervorrufen, oder? Du spielst an der falschen Stelle. Das alles ist völlig uninteressant. Der Mega MUSS alleine auf seiner Platine nach Anlegen der Versorgungsspannung loslaufen. Und zwar ohne, dass der ISP Progammer angeschlossen ist. Gar nicht angeschlossen. Niente. Nada. Alles andere ist 'Spielen an der falschen Stelle'. > Ich hab mich m.E. genau an den Schaltplan hier im Tutorial gehalten. > Widerstand zwischen Reset und VCC (10 kOhm) vorhanden! Dann mach ein Photo von deinem Aufbau. Irgendwo hast du dann den Schaltplan nicht korrekt umgesetzt. Was verwendest du als Spannungsversorgung des Mega?
Hier der Aufbau. Versorgt wird das ganze über ein altes USB-Ladegerät von einem Handy.. Spannung liegt bei 5,2 Volt.
Hallo Philip, hast du die Fuses schon mal kontrolliert? Wenn der BODLEVEL zu hoch eingestellt, oder die Versorgungsspannung zu niedrig ist, kommt der Mega nicht aus dem Resetzustand! Mir kommt auch der Reset-Kondensator mit 47nF etwas klein vor? Ich verwende an der Stelle welche im µF-Bereich. Gruß. Tom
Für diesen Aufbau würde ich in der Nähe des Mega8, noch einen Stützelko im Bereich 10µF .... 100µF in die Versorgung schalten. Der kleine Kondensator kann die Spannung beim einschalten nicht ausreichend stützen.
TomA schrieb: > Hallo Philip, > > hast du die Fuses schon mal kontrolliert? > > Wenn der BODLEVEL zu hoch eingestellt, oder die Versorgungsspannung zu > niedrig ist, kommt der Mega nicht aus dem Resetzustand! > > Mir kommt auch der Reset-Kondensator mit 47nF etwas klein vor? Ich > verwende an der Stelle welche im µF-Bereich. > > Gruß. Tom Hallo. Die Fuses sind:
1 | Reading | ################################################## | 100% 0.01s |
2 | |
3 | avrdude: Device signature = 0x1e9307 |
4 | avrdude: safemode: lfuse reads as BD |
5 | avrdude: safemode: hfuse reads as C9 |
6 | |
7 | avrdude: safemode: lfuse reads as BD |
8 | avrdude: safemode: hfuse reads as C9 |
9 | avrdude: safemode: Fuses OK (H:FF, E:C9, L:BD) |
10 | |
11 | avrdude done. Thank you. |
Da ich noch relativ "neu" bin, kann ich damit erstmal nichts anfangen. Wegen den Kondensatoren: habe ich mich halt an den Plan hier im Tutorial gehalten. Da wird auch ein 47 nF vorgeschlagen!
Hallo Philip, ich kann in den Fuses nichts auffälliges sehen. Damit du selbst kontrollieren kannst, hier mal die Übersetzung der Einstellungen. Ich würde es mal mit größeren Kondensatoren probieren. Ich fürchte dein Reset ist schon weg, bevor der Mega8 stabile Verhältnisse vorfindet. Gruß. Tom
Kann das mal wer im Bild verifizieren? Der Anschluss der Versorgungsspannung an den Pins 22/20 (also auf der ARef seite des Mega8) ist falsch. Der Kondenstaor ist kein Blockkondensator sondern ist in die Vcc Leitung eingeschleift. Auch sieht es für mich danach aus, als ob es auf dieser Seite des µC keine GND Verbindung gäbe. Die graue Verbindung geht ins Leere.
TomA schrieb: > Mir kommt auch der Reset-Kondensator mit 47nF etwas klein vor? Ich > verwende an der Stelle welche im µF-Bereich. Im Prinzip brauchst du den gar nicht. Wenn deine Spannungsquelle nicht allzu versaut ist, bzw. einigermassen gut abgeblockt ist, dann ist der unnötig.
Philip schrieb: > Hier der Aufbau. > > Versorgt wird das ganze über ein altes USB-Ladegerät von einem Handy.. > Spannung liegt bei 5,2 Volt. Da wir nicht wissen, ob dieses Ladegerät noch einen kleinen Ripple auf der Spannung hat, wäre ein kleiner Elko von sagen wir mal 100µF keine Fehlinvestition. Zusammen mit einem kleinen Konensator von, sagen wir mal 100nF, der sich um die möglicherweise hochfrequenten Anteile aus dem Schaltnetzteil kümmert. Generell: die Versorgungsspannung kann gar nicht gut genug gesiebt werden. An dieser Stelle lieber ein paar µF zu viel als zu wenig (aber auch wieder nicht übertreiben. Wenn die Spannung eine halbe Stunde braucht um den gewünschten Pegel zu erreichen, dann hat man übertreiben :-).
Hmmm...
1. LowFuse auf 0xFD setzen -( BOD disabled)
2. Kondensator von der Resetleitung abklemmen.
3. Einschalten, anlaufen lassen, Reset pin
kurz mit Masse verbinden - OK danach ?
ATMEL: "When the CPU starts from reset,
there is as an additional delay allowing
the power to reach a stable level before
commencing normal operation."
Karl Heinz sagte dir bereits:
>>Das alles ist völlig uninteressant.
Es liegt am Resetpin und ALLES ANDERE ist
völlig uninteressant.
Du machst offensichtlich den fehler, den ISP Programmieradapter OHNE Stromversorgung (über USB) an deine Schaltung anzuschließen. Das ist so nicht vorgesehen. Damit riskierst Du, den Programmieradapter zu beschädigen. Bei fast allen digitalen Mikrochips gilt die Beschränkung, dass die Spannung an I/O Pins nicht höher als VCC und nicht niedriger als GND sein darf. Für ATmega und den Programmieradapter gilt das ganz sicher. Betrachte Deine Konstruktion aus Sicht des Programmieradapters. Da das USB Kabel abgesteckt ist, hat er keine Versorgungsspannung. VCC ist Null Volt. Folglich darf an keine I/O Pin mehr als 0 Volt anliegen. Dein Reset Pin muss High Pegel haben (vermutlich mehr als 2V), damit der Mikrocontroller läuft. Mit diesme Pin ist auch der Spannungslose Programmieradapter verbuden. Da 2V größer als 0V (VCC) ist, werden die Schutzdioden im Eingang des Programmieradapters leitend:
1 | Atmega Programmer |
2 | Reset |
3 | 50k (intern) ISP Stecker |
4 | VCC ---[===]---+--------------------o)-------------+--- µC |
5 | | * | |
6 | VCC ----|<|----+---|<|---| GND VCC --|<|--+--|<|--| GND |
7 | 5V Interne Schutzdioden 0V Interne Schutzdioden |
Der Strom fließt von internen 50k Ohm Pull-Up Widerstand des Atmegas über die mit * markierte Diode. Das heisst, am Reset Pin liegen nur ungefähr 0,7V an.
Bole aus Serbien schrieb: > Karl Heinz sagte dir bereits: >>>Das alles ist völlig uninteressant. > > Es liegt am Resetpin und ALLES ANDERE ist > völlig uninteressant. Erst mal soll er seine Versorgungsspannung korrekt anschliessen. Die Chancen stehen nicht schlecht, dass der Mega auch ohne jegliche Beschaltung des Reset Pins bzw. Blockkondensatoren anläuft. Schon gemacht, schon gesehen, schon verifiziert. Das das (speziell ohne die Blockkondenssatoren) keine Dauerlösung ist, ist auch klar. Aber am Reset braucht er im Grunde überhaupt nichts machen. Atmel hat einen Pullup in den Mega am Resetpin eingebaut. Der ist nur leider etwas hoch geraten, sodass Atmel in 'gestörten' UMgebungen (und eigentlich nur dort) einen zusätzlichen Reste-Pullup von ca 10k empfiehlt. Auf einem Steckbrettaufbau, weit weg von allen möglichen Störungen durch starke Elektromotoren in der näheren Umgebung geht es auch so. Das wir Bastler dein einfach immer einbauen, ist mehr Pragmatismus als alles andere (genauso wie der Kondensator am Reset), weil wir dann in allen vorkommenden Situationen Ruhe haben ohne uns in Sonderfällen mit unerklärlichen Phänomänen rumschlagen zu müssen. Aber erst mal soll er seine Versorgungsspannung korrekt anschliessen. Dazu das ganze gerümpel runter und 4 Leitungen ziehen. 2 von der + Schiene auf Vcc und AVcc, 2 weitere von der - Schiene nach den beiden GND Anschlüssen. Im Prinzip würde der Mega damit schon laufen und wird es höchst wahrscheinlich auch. Dann die beiden Blockkondensatoren auf beiden Seiten ergänzen (dazu muss die bisherige Versorgungsverkabelung nicht aufgetrennt werden) und noch den 10k an Reset dazu. Der Mega muss immer noch laufen.
Philip schrieb: > Wenn ich das Kabel, dass zwischen ISP und ResetPin (Pin1) liegt, einfach > "rausziehe" und dann die Stromzufuhr schalte, funktioniert es wie > gewünscht. Die Ursache ist doch sonnenklar. Wenn der Programmer am ISP steckt, aber nicht mit Strom versorgt wird, zieht er offensichtlich den RESET-Pin auf Masse, weil sein Zustand ohne Versorgungsspannung nicht definiert ist. Ich kann dieses Verhalten mit meinem Board und Programmer (Diamex) exakt nachvollziehen. Also trenne den Programmer vom ISP oder versorge ihn mit Strom. Der Pullup-Widerstand am RESET sollte trotzdem in jedem Falle dran sein, so ersparst du dir unerklärliche Phänomene.
Icke ®. schrieb: > Philip schrieb: >> Wenn ich das Kabel, dass zwischen ISP und ResetPin (Pin1) liegt, einfach >> "rausziehe" und dann die Stromzufuhr schalte, funktioniert es wie >> gewünscht. > > Die Ursache ist doch sonnenklar. Wenn der Programmer am ISP steckt, aber > nicht mit Strom versorgt wird, zieht er offensichtlich den RESET-Pin auf > Masse, weil sein Zustand ohne Versorgungsspannung nicht definiert ist. > Ich kann dieses Verhalten mit meinem Board und Programmer (Diamex) exakt > nachvollziehen. > Also trenne den Programmer vom ISP oder versorge ihn mit Strom. Der > Pullup-Widerstand am RESET sollte trotzdem in jedem Falle dran sein, so > ersparst du dir unerklärliche Phänomene. Das war's! Danke!!! auch an alle anderen!
Nichts desto trotz ist AVcc bzw. as GND auf dieser Seite falsch angeschlossen. UNd reagiere das nächste mal frühzeitig auf die Bitte nach eindeutiger Beschreibung dessen, was du machst. Denn um 12 hast du einen Post rausgelassen, der sich so liest, als ob du genau das (den ISP vom Mega abzutrennen) schon gemacht hättest.
Karl Heinz schrieb: > Atmel hat einen Pullup in den Mega am Resetpin eingebaut. Der > ist nur leider etwas hoch geraten, sodass Atmel in 'gestörten' > UMgebungen (und eigentlich nur dort) einen zusätzlichen Reste-Pullup von > ca 10k empfiehlt. Nein. Zusätzlicher Pullup wird parallel geschaltet, so dass: Min. 30K, Max. 80K fur MEGA8 ( laut Atmel ) Ich benutze 47K fur alle und bin bisher damit ganz gut gefahren. Natürlich stimme ich mit dir überein, dass alles andere korrekt sein muss.
Bole aus Serbien schrieb: > Karl Heinz schrieb: >> Atmel hat einen Pullup in den Mega am Resetpin eingebaut. Der >> ist nur leider etwas hoch geraten, sodass Atmel in 'gestörten' >> UMgebungen (und eigentlich nur dort) einen zusätzlichen Reste-Pullup von >> ca 10k empfiehlt. > > Nein. > Zusätzlicher Pullup wird parallel geschaltet, so dass: > Min. 30K, Max. 80K fur MEGA8 ( laut Atmel ) Ähm. Du sprichst auf die Zeile R_Rst in der Tabelle DC Characteristics zum Beispiel im Datenblatt des Mega8 auf Seite an? Das ist die Größe des von Atmel verbauten Reset-Pullup Widerstandes. Der hat zwischen 30k und 80k. Die ganze Tabelle beschäftigt sich mit den Eigenschaften des Mega selber und nicht mit dem, was man rundherum anbauen muss/soll. In besagtem Datenblatt ist er in der Figure 14 als Teil der Reset-Logik auch eingezeichnet.
Karl Heinz schrieb: > Ähm. > Du sprichst auf die Zeile R_Rst in der Tabelle DC Characteristics zum > Beispiel im Datenblatt des Mega8 auf Seite an? Genau > Das ist die Größe des von Atmel verbauten Reset-Pullup Widerstandes. Und wieder ins Schwarze getroffen ;) Was ich meinte: 30 - 80K ist vollkommen ausreichend, im Durchschnitt sind es 66K (Figure 145), ext. Widerstand wird parallel geschaltet, so dass es bei 10K etwa 8K sind - bei 5V ergibt das 0.6mA Mit 47K sind es 27.5K und 0.18mA, bla, bla... Fazit: JA, DU HAST RECHT, VERDAMMT NOCH MAL !!!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
