Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller anfänger, wer kann helfen??


von Thomas (Gast)


Lesenswert?

Hallo,

ICH BIN GANZ NEU IN DER THEMATIK, UND HABE NOCH NICHT SO VIEL AHNUNG!!! 
BITTE UM VERSTÄNDNIS! Habe auch schon viel gelesen, komme aber einfach 
nicht weiter....

ich bin gerade beschäfftigt das AVR- Tutorial durch zu arbeiten. Ich 
habe nun meinen ATmega8 auf einer Platine mit ein paar Taster und Led's, 
alles so aufgebaut wie es im Tutorial steht. Als ISP verwende ich den 
AVRISP mkII und als Software das AVR Studio 4. Jetzt habe ich zwei 
Probleme. Der ISP ist erfolgreich angeschlossen, d.h. ich kann ihn über 
die Software connecten. Allerdings kann ich irgendwie das assemblierte 
hex- file nicht in den Controller laden, da bringt er immer den Fehler 
"Could not connect to ICE40"??? Die Platine habe ich nun schon mehrfach 
kontrolliert, und diese sollte stimmen.
Desweiteren ist mir das mit den Fusebits noch nicht ganz klar. wenn ich 
den ISP connecte kommt da ja ein Fenster in dem man Fuses und Lockbits 
ändern kann. Beziehen diese sich auf den ISP oder auf meinen ATmega8?
Kann es sein dass ich keine Kommunikation zum ATmega8 aufgrund von den 
Einstellungen der Fusebits hin bekomme? (Vorab: ich habe noch nichts an 
den Bits verstellt!)

Danke für eure Hilfe!!!

Gruß Thomas

von Ramon (Gast)


Lesenswert?

Versuche mal  den Controller zu programmieren, während du manuell 
resetest. (reset-taster während der ganzen programmiererei gedrückt 
halten)
hatte mal das gleiche problem. so gehts bei mir.

von Achim M. (minifloat)


Lesenswert?

Thomas schrieb:
> Fuses und Lockbits
> ändern kann. Beziehen diese sich auf den ISP oder auf meinen ATmega8?

Für den Mega natürlich. Im Auslieferungszustand läuft so ein Mega meist 
aus den internen 8MHz RC-Osc mit CLKDIV8, tuckert also gemütlich mit 
1MHz vor sich hin.

Ich tät erstmal nichts an den Fuses verändern solang das Ding läuft. 
Mehr braucht man zum LED-Blinken usw. zunächst nicht. Schau dir aber mal 
das Datenblatt genau an was man mit den Fuses kann und was man nicht 
kann.

Und wenn du verstanden hast, wie man den Controller aus Versehen tot 
legen könnte(Taktquelle auf etwas verstellt, was man grad nicht da hat, 
RSTDISABLE(spricht für sich) oder SPIEN ausgemacht usw.) kannst du dich 
an die Fuses wagen.
Man kann sich mit den Fuses gut aus dem Controller aussperren, 
Leidensgeschichtzen hierzu findest du bestimmt viele wenn du die 
Forensuche bemühst.

Reset am ISP angeschlossen? Irgendwo Kondensatoren zum "Entprellen" 
hingetan?
Irgendwelche Leitungen vertauscht?

Bedenke: der Prozessor muss laufen, damit er bebrannt werden kann!
mfg mf

von Hc Z. (mizch)


Lesenswert?

Thomas schrieb:
> "Could not connect to ICE40"

Das sieht mir sehr danach aus, als wäre der falsche Programmer gewählt.

von Achim M. (minifloat)


Lesenswert?

ist ICE40 etwa ein JTAG ICE mit einer 4.0er Firmware oder so??
mf

von Thomas (Gast)


Lesenswert?

hmm was heist der falsche Programmer?? lt. Tutorial müsste das doch 
passen?!?! Controller und ISP sind beide von Atmel?? Oder verstehe ich 
da was falsch??

von Hc Z. (mizch)


Lesenswert?

Nein, das ist ein völlig anderer „High-End Emulator“.

von Hc Z. (mizch)


Lesenswert?

Thomas schrieb:
> hmm was heist der falsche Programmer?? lt. Tutorial müsste das doch
> passen?!?!

AVR Studio kann viele Typen ansteuern, Deiner ist nur einer davon.  Und 
offensichtlich versucht es mit einem völlig anderen zu verbinden.  Schau 
mal in der Beschreibung Deines AVRISPmkII nach (ist Teil der Hilfe im 
Studio), da sind die Schritte zum Programmieren sicher beschrieben.

von Hc Z. (mizch)


Lesenswert?

Ich habe mal in der Doku nachgeschaut - Du musst direkt in der Hilfe zum 
Studio nachsehen, nicht beim AVRISP mkII.  Dort gibt es einen Abschnitt 
"Programming Dialog", der direkt mit der Auswahl des Programmers 
beginnt.

Ich verwende das Studio kaum, deshalb kann ich Dir nur Verweise zum 
Nachschlagen geben.  Dessen Dokumentation habe ich hier online (das 
Studio nicht).

von Chris (Gast)


Lesenswert?

Menü -> Debug -> Select Platform and Device
Dort wählst Du den AVR Simulator (denn mit dem AVRISP mkII kann man 
nicht debuggen) und deinen ATMega8 aus.

Anschließend auf den Connect-Button klicken und deinen Programmer 
auswählen.

von Thomas (Gast)


Lesenswert?

ok, gemacht. Allerdings wenn ich jetzt auf connect klicke und mich dann 
in den Reitern bewege kommt unten im Fenster immer folgende 
Fehlermeldung:

Setting mode and device parameters.. OK!
Entering programming mode.. FAILED!
Leaving programming mode.. OK!

Was ist da noch falsch?? Kann ich dann davon ausgehen, dass da was mit 
der Hardware nicht stimmt??

von Chris (Gast)


Lesenswert?

Thomas schrieb:
> Was ist da noch falsch?? Kann ich dann davon ausgehen, dass da was mit
> der Hardware nicht stimmt??

Entweder das oder deine ISP-Frequenz ist zu hoch. Die darf nicht mehr 
als 1/4 der Taktfrequenz des Controllers betragen.
Wie hoch die bei einem fabrikneuen ATMega8 ist, der noch den internen 
RC-Generator als Taktquelle verwendet müsstest Du mal im Datenblatt 
nachlesen.

von Tester (Gast)


Lesenswert?

1. Hast Du in dem "Connect"-Dialog das richtige hex-file angegeben? Das 
muss man immer selbst auswählen (zumindest kenne ich das nur so).
2. Was steht denn in den Statuszeilen wenn du im Fuses-Tab auf Read 
drückst?
3. Kannst Du im Board-Tab Spannungen sehen? Auf was steht die ISP 
Frequenz?

von Thomas (Gast)


Lesenswert?

Das hex-file habe ich angegeben.
Wenn ich im Fuse-Tab auf "read" klicke kommt genau das was ich oben 
schon mal angegeben habe:

Setting mode and device parameters.. OK!
Entering programming mode.. FAILED!
Leaving programming mode.. OK!


den Board-Tab habe ich nicht, aber einen HW-Settings und bei dem sind 
4,9V angegeben, das entsprcht genau der Versorgungsspannung am Board.
Die ISP Frequenz steht momentan auf 250kHz das entspricht ja einem 
viertel, da der interne Takt ja 1MHz ist. Habe aber auch daran schon 
rumgespielt und habe es auch schon mit 125kHz und kleiner probiert, aber 
immer das gleiche Problem...

von Chris (Gast)


Lesenswert?

Die ISP-Frequenz solltest Du sicherheitshalber auf 125kHz lassen.
Es reicht auch aus wenn Du nur versuchst die Signatur des Controllers 
auszulesen. So lange das nicht funktioniert, funktioniert der Rest auch 
nicht.
Jetzt wäre es an der Zeit ein Schaltbild zu posten. Foto vom Aufbau 
könnte auch hilfreich sein.

von Thomas (Gast)


Angehängte Dateien:

Lesenswert?

ok der Schaltplan hier ist derjenige von diesem Tutorial. Die 
Spannungsversorgung habe ich extern auf einer kleinen Platine 
untergebracht, und diese funktioniert auch einwandfrei.
Und das zweite Bild zeigt das Board um das es geht. Sieht nicht schön 
aus, ist ja auch nur ein Prototyp.
Danke für eure Hilfe!!

von Chris (Gast)


Lesenswert?

Zumindest die Pinbelegung des 6-poligen ISP-Steckers stimmt nicht. Schau 
mal hier auf S. 5 
http://www.atmel.com/dyn/resources/prod_documents/doc2521.pdf
Vielleicht hast Du ihn falsch verdrahtet.

Der Schaltplan ist doch unvollständig. Was ist mit dem Rest auf deiner 
Platine? Die LEDs und Schalter tauchen dort nicht auf. Wo sind die 
angeschlossen und wie?

Ein Elko zum Stützen der Spannungsversorgung auf der Platine könnte 
übrigens auch nicht schaden.

von Thomas (Gast)


Lesenswert?

ja stimmt die Pinnbelegung habe ich schon 100 mal kontrolliert diese ist 
auch korrekt, nicht so wie auf dem Schaltplan. Sorry hatte ich vergessen 
zu erwähnen. Die Led's und Taster gehen auf Ein und Ausgänge vom 
ATmega8. Angeschlossen sind diese wie im Tutorial beschrieben (siehe 
Link: 
http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen).
Du sagst der Schaltplan sei unvollständig, was meinst du damit??

von Chris (Gast)


Lesenswert?

Thomas schrieb:
> Du sagst der Schaltplan sei unvollständig, was meinst du damit??

Damit meinte ich eben, dass Taster, LEDs usw. dort nicht drin sind :-)

Hast Du die Taster wie im Tutorial an Port D und die LEDs an Port B 
angeschlossen? Trenn doch mal alles von PB2 bis BP5 ab, so dass nur der 
Programmer dort dran hängt und versuche es noch mal. Es könnte evtl. 
sein, dass die LEDs den Programmer zu sehr beeinflussen.

Nur zur Sicherheit:
Pin 1 am 6-poligen Stecker ist der Pin oben links auf deinem Foto.

Irgendwo muss es ja dran liegen :-)

von Biber (Gast)


Lesenswert?

Hallo,

schau mal hier. Der scheint das selbe Problem wie du zu haben.
http://www.roboternetz.de/phpBB2/viewtopic.php?t=24972

lg Biber

von Chris (Gast)


Lesenswert?

Wo sind eigentlich die Vorwiderstände der LEDs? Zumindest auf dem Foto 
lassen sie sich nicht finden. Ohne die werden dir die LEDs und/oder der 
Controller ziemlich schnell abrauchen.
Auch der Programmer wird nicht mehr funktionieren wenn man sie ohne 
Vorwiderstand an PB2 bis PB5 anschließt. Das gibt einen netten 
Kurzschluss wenn auf einer der Leitungen vom Programmer Masse anliegt.

von Thomas (Gast)


Lesenswert?

Die Led's haben einen integrierten Vorwiderstand. Ich habe jetzt mal 
alle Led's und Taster abgelklemmt und einen neuen ATmega8 in den Sockel 
gestöpselt. Leider immer noch keine Veränderung...
Die Steckerbelegung habe ich nochmals mit dem o.g. Hinweis kontrolliert, 
diese muss stimmen...
Ich werde jetzt nochmal ein neues Board aufbauen, vill klappt es dann. 
Werde mich dann nochmal melden.

von Thomas (Gast)


Lesenswert?

So jetzt habe ich das ganze nochmal komplett aufgebaut. Jetzt 
funktioniert es, was ich aber anderst gemacht habe kann ich echt nicht 
sagen...???

Ich bedanke mich nochmals für die Hilfsbereitschaft!!!

Jetzt kanns weiter gehen :)

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.