Hallo,
ich hab ein kleines Problem mit einem ATMEGA32 und einem
Experementierboard. Ich habe 8x LED´s am PortC angeschlossen. Die LED´s
haben alle einen 470 Ohm Vorwiderstand. Die Platine hat einen
Spannungsregler auf 5V. Also fließen durch die LED´s max. 10mA. Die
müssen ja auch nicht hell leuchten. Ich wollte nun die LED´s mit
folgendem Code testen.
1
.include "m32def.inc"
2
3
ldi r16, 0xFF
4
out DDRC, r16
5
ende:
6
ldi r16, 0x00
7
out PORTC, r16
8
rjmp ende
1
#include<avr/io.h>
2
#include<util/delay.h>
3
4
5
intmain()
6
{
7
while(1)
8
{
9
DDRC=0xFF;
10
PORTC=0x00;
11
}
12
}
Bei beiden Programmierungen leuchten nur LED 1;2;7;8 die LED´s 3;4;5;6
leuchten nicht und sind nicht gegen Masse durchgeschalten. Ich hab zu
beginn ausversehen mal
1
PORTC=0xFF;
angegeben dadurch müsste Plus auf Plus geschalten sein, da ein High am
Ausgang anliegt. Aber kann deswegen der ATMEGA durchgebrannt sein ?
Mit freundlichen Grüßen
Doubleyou
hehe das hab ich auch schon gebracht... der port C liegt sooo schön für
datenleitungen am IC und ich wunder mich stundenlang wieso da nur müll
rauskam.
Hmm, ich hab nun mal die Fuses so gesetzt wie oben im Bild. Nur leider
schein ich nun kein Zugriff mehr auf die ISP-Interface zu haben.
Mit freundlichen Grüßen
DoubleU
Du hast die AVR Fuses für Taktquelle auf "Ext. Crystal/Resonator Low
Freq." umprogrammiert.
Wenn du keine passende externe Taktquelle angeschlossen hast, bist du
ausgesperrt.
4 MHz o.ä. Quarz und zwei passende Lastkondensatoren besorgen und wie im
AVR Tutorial anschliessen. Dann ist der Atmega32 wieder zugänglich.
Doubleyou W. schrieb:
> Hallo,>> wenn ich die Einstellungen wie hier habe, kann ich es Programmieren.
Ist das die Einstellung, mit der dein Prozessor grundsätzlich
funktinioert? Dann nimm den Haken bei JTAGEN weg und der PORT C sollte
sich wieder ganz normal verhalten.
> Liegt es vielleicht doch am IC ?
Mit ziemlicher Sicherheit nicht.
Dann mach es doch so. Und nach dem Programmieren schaltest du JTAG
wieder ab, damit du die LEDs an PORTC steuern kannst.
Die Schaltung aus Beitrag "ATMEGA32 Einzellne Pins durchgebrannt ?"
wird aber nicht funktionieren, weil unvollständig (Vcc für µC fehlt,
Quarz fehlt).
Also ich hab ja nun beide varianten versucht.
Wenn ich JTAG das Häckchen wegmache, dann kann ich den Microkontroller
nicht mehr über ISP-Schnittstelle erreichen. Somit kann ich das obige
Programm nicht aufspielen und testen. Hinzuzufügen ist, das ich einen
externen Quarz mit 16MHz habe.
Wenn ich bei JTAG ein Häckchen setze, dann kann ich den Microkontroller
über ISP-Schnistelle erreichen, aber der PortC verhält sich immer noch
nicht korrekt.
Also ich hab hier momentan 2x ein ATMEGA32 den wo ich nicht mehr
ansprechen kann muss ich erstmal wieder zugänglich machen, wie mir das
im Beitrag zuvor geraten wurde.
Mit freundlichen Grüßen
DoubleU
Was du da beschreibst, ist völlig unlogisch.
JTAG hat nichts mit der Fähigkeit des ISP Programmierens zu tun.
Du gehst hoffentlich so vor:
Du hast einen Prozessor, der grundsätzlich funktioniert.
Von dem liest du als allererstes die Fuses aus.
Damit hat dein Fuseprozessor die momentane Konfiguration
Dann schaltest du die JTAGEN Fuse um. Und nur diese!
Dann schreibst du die Konfiguration zurück.
Alles muss wie gehabt weiter funktionieren. Nur eben mit dem
Unterschied, dass die Pins am PORT C ihre JTAG Funktion verloren haben.
Stefan B. schrieb:
> Die Schaltung aus Beitrag "ATMEGA32 Einzellne Pins durchgebrannt ?"> wird aber nicht funktionieren, weil unvollständig (Vcc für µC fehlt,> Quarz fehlt).
Das oben ist nicht die komplette Beschaltung, Ich dachte ich hab
vielleicht die LED´s schon nicht richtig beschaltet, deswegen hab ich
oben nur einen kleinen auszug.
Reset
XTAL2
XTAL1
AREF
AVCC
AGND
VCC
GND
sind auf dem Board alle mitbeschaltet. Ich habe den Schaltplan momentan
nicht in Digitalerform da, sonst hätte ich ihn mit angehängt.
Mit freundlichen Grüßen
DouleU
Doubleyou W. schrieb:
> Ich habe den Schaltplan momentan> nicht in Digitalerform da, sonst hätte ich ihn mit angehängt.
Es ist unerheblich in welcher Form der Schaltplan vorhanden ist,
Hauptsache es ist einer vorhanden.
Ein handgemalter Schaltplan eingescannt oder abfotografiert ist besser
als keiner.
Zur Not tut es auch ein gutes (=richtig ausgeleuchtetes und scharfes)
Foto des Aufbaus.
Die Fuses (Low Freq.!) passen nicht zum 16 MHz Quarz!
Ich bin ein bischen verwirrt - erst funktioniert er garnicht mehr
(09:32), dann funktioniert er mit anderen Fuses wieder (10:46)?
Jedenfalls ist ein 16MHz Quarz etwas viel für den Oszillator, wenn der
auf CKOPT=1 (unprogrammed) eingestellt wird. Steht ja auch deutlich
dran, dass diese Einstellung für <= 8MHz gut ist
Ich hab das ganze ja auch mal durchgemessen. Ich hab an PC1/PC2&PC7/PC8
die gewünschte 0V anliegen, da der IC die Pins gegen Masse durchschaltet
an PC3/PC4&PC5/PC6 liegen jedoch 3,3V bis 5V an ein Pin hat nur 3,3V
keine Ahnung warum.
Ich glaub ich leg die Platine weg und bau mir ne neue :P Ich will euch
ja nicht mit so einem Problem auf die Nerven gehen. Irgendwo ist da wohl
ein Wurm vergraben werd bestimmt noch drauf kommen.
A. K. schrieb:
> Ich bin ein bischen verwirrt - erst funktioniert er garnicht mehr> (09:32), dann funktioniert er mit anderen Fuses wieder (10:46)?
Ich hab hier Vorort zwei ATMEGA32 IC´s an dem IC wo ich die Fuses JTAG
über PonyProg deaktiviert habe geht garnichts mehr.
> Jedenfalls ist ein 16MHz Quarz etwas viel für den Oszillator, wenn der> auf CKOPT=1 (unprogrammed) eingestellt wird. Steht ja auch deutlich> dran, dass diese Einstellung für <= 8MHz gut ist
das heißt bei CKOPT=1 das Häckchen wieder wegnehmen ?
Ja.
Solange du nicht an den CKSEL Fuses rumspielst, kannst du nicht viel
kaputt machen.
Aber denk IMMER an die Grundregel Nummer 1:
Ehe du an den Häkchen rumspielst, lass Ponyprog die aktuelle
Fuseeinstellung vom Prozessor auslesen!
Das ist ganz wichtig und würde ich auch dann auf jeden Fall machen, wenn
Ponyprog behauptet, das von sich aus schon zu tun.
Das ist einer der wichtigsten Tips überhaupt:
Ehe du etwas veränderst, IMMER zuerst das aktuell vorhandene vom Chip
auslesen lassen. Egal welcher Chip, egal welche Software.
Sonst landest du ganz schnell in der Falle, dass du nicht nur diese 1
Fuse veränderst, sondern alle anderen ebenfalls. Genau das dürfte dir
bei deinem ersten Chip passiert sein und du hast ihn unbeabsichtigt auf
externen Takt (und damit ist kein Quarz gemeint) umgestellt.
Dein erstes Fuse-Bild zeigt keinen Haken, also CKOPT=1, was eine
Einstellung für <= 8MHz ist. Das Schaltbild zeigt einen 16MHz Quarz. Im
Text steht, das sei die nicht funktionierende Konfiguration. Passt also
zusammen.
Wenn man die Fuses erst einmal versemmelt hat, dann ist ist etwas
schwieriger, sie wieder gerade zu biegen, denn mit ISP geht das ohne
Tricks nicht mehr. 16MHz Quarz durch 3-8MHz ersetzen könnte helfen.
Hoi,
nun geht alles lag also doch am den JTAG. Ich hab mir nochmal das
Datenblatt angeschaut. Und hab diesmal erst alles auf den Quarz
eingestellt und erst dannach den JTAG weggenommen. Beim erstenmal hab
ich das aufeinmal gemacht und hab wahrscheinlich den Fehler gemacht, auf
den mich "Karl heinz Buchegger" aufmerksam gemacht hat.
>Aber denk IMMER an die Grundregel Nummer 1:>Ehe du an den Häkchen rumspielst, lass Ponyprog die aktuelle>Fuseeinstellung vom Prozessor auslesen!>Das ist ganz wichtig und würde ich auch dann auf jeden Fall machen, wenn>Ponyprog behauptet, das von sich aus schon zu tun.>Das ist einer der wichtigsten Tips überhaupt:>Ehe du etwas veränderst, IMMER zuerst das aktuell vorhandene vom Chip>auslesen lassen. Egal welcher Chip, egal welche Software.
Bei dem Vorgang ist wohl was schief gegangen.
Also danke nochmal an all, jetzt kann ich Produktiv weiter machen. Ich
hoffe ich habe eure Nevern nicht zu arg strapaziert.
Mit freundlichen Grüßen
Doubleyou