Hi, Ich habe vor kurzen eine Grundschaltung für ATMega32 auf einer Platine aufgebaut. Soweit ok. Der Schaltplan könntet ihr oben anschauen. Heute habe ich den ersten Versuch gestartet, eine Led blinken zu lassen und dann bei Block C fängt der Ärger an. (Blocks A, B und D gehen problemlos) PC7(TOSC2) geht PC6(TOSC1) geht PC5 (TDI) lässt sich nicht programmieren. (Ich konnte noch schwaches Leuchten von Led feststellen, obwohl der Pin gar nicht definiert wurde bzw. gar nicht vorher geflasht wurde). PC4 (TDO) lässt sich nicht programmieren. (In Vergleich zum Oben leuchtet der Led nicht) PC3 (TMS ) lässt sich nicht programmieren. (Ich konnte noch schwaches Leuchten von Led feststellen, obwohl der Pin gar nicht definiert wurde bzw. gar nicht vorher geflasht wurde). PC2 (TCK) lässt sich nicht programmieren. (Ich konnte noch schwaches Leuchten von Led feststellen, obwohl der Pin gar nicht definiert wurde bzw. gar nicht vorher geflasht wurde). PC1 (SDA) geht PC0 (SCL) lässt sich nicht programmieren. (In Vergleich zum Oben leuchtet der Led nicht) Beispiel Codes, die ich benutzt habe: http://timogruss.de/2012/12/greetboard-atmega32-blinkende-led/ http://evolutec.publicmsg.de/index.php?menu=software&content=blink_by_sleep Den Quarz habe ich auch vorher eingestellt (#define F_CPU 16000000UL) PS: Könnt ihr mir sagen, wo ich den Fehler eventuell gemacht habe? Oder haben diese Pins irgendwelche besondere Eigenschaften? Danke
Wie hast Du die Fuses gesetzt? -> Klingt, als ob die JTAGEN (noch) aktiviert wäre.
Ich habe da eigentlich nichts gemacht. Geflasht wird mit AVRISP mk2 (original) unter Atmel Studio 6. PS: Ich wusste nicht, dass man da explizit etwas ausschalten sollte. Wie genau muss ich da vorgehen?
Das Bit 6 (JTAGEN) IM "Fuse-High-Byte" muss auf logisch "1" gesetzt werden, um die normale Portfunktion zu erlangen.
>Das Bit 6 (JTAGEN) IM "Fuse-High-Byte" muss auf logisch "1" gesetzt >werden, um die normale Portfunktion zu erlangen. Das kann man viel einfacher sagen: Haken weg bei JTAGEN.
Mugen schrieb: > Den Quarz habe ich auch vorher eingestellt (#define F_CPU 16000000UL) NEIN. Damit stellst Du nicht den Quarz ein, sondern teilst dem Compiler mit, wie die Fuses (CKSELx) gesetzt werden. Momentan duaern deine Delays 16 mal länger als gewünscht, da der Mega32 noch mit 1 MHz läuft, der Compiler aber von 16 MHz ausgeht. Jan
@Jan bei Ponyprog hast du mit deiner "Häkchenmethode" am "Latrinengriff" gezogen und unter avrdude gibt es weit und breit keine Haken zum wegmachen.
>Ich habe da eigentlich nichts gemacht. Geflasht wird mit AVRISP mk2 >(original) unter Atmel Studio 6. >bei Ponyprog hast du mit deiner "Häkchenmethode" am "Latrinengriff" >gezogen und unter avrdude gibt es weit und breit keine Haken zum >wegmachen. Siehe oben. >@Jan Mein Name ist holger, mir musst du ans Bein pinkeln;)
das war Holger ;-) Genau wegen diesen Zweideutigkeiten lasse ich mich nicht zu mir unbekannte Programmiersoftware aus
Perfekt. Jetzt geht es. Ich musste tatsächlich nur ein Häkchen bei JTAGEN weg nehmen. Danke für eure Hilfe ^_^
@Jan Sollte man den Quarz auch irgendwo einschalten? Oder geht es über irgendwelche Funktionen?
da der Quarz schon da ist, wäre es natürlich wünschenswert. Ich rate dir, lieber #define F_CPU 1000000UL zu schreiben. Um den Quarz zu aktivieren musst du die Fuses CKSEL0, -1, -2, -3 RICHTIG (!!!!!!!) setzen. Wenn du dabei einen Fehler machst, ist der Mega32 verloren ("zerfust"). Mach das erst, wenn du das Daetenblatt gelesen und VERSTANDEN hast. Ansonstenen lass dir von jemand helfen, der das Atmelstudio benutzt. Jan
Ich habe gerade bei CKOPT High auf 0xC9 und Low auf 0xFF gesetzt. Ist es richtig so? Läuft ATMega32 jetzt mit vollen 16Mhz? PS: Led blinkt auf jeden Fall schneller als vorher bei gleichen Einstellungen. Quelle: http://projekte.myavr.de/index.php?sp=pages/kleiner_bascom_avr_kurs_fusebits_standard
Ja mit dem Low Fuse Wert 0xFF hast du deinen 16MHz Qzarz aktiviert. Wenn du jetzt mit der Define-zeile "#define F_CPU 16000000UL" und der main-zeile "delay_ms(1000)" dein Programm ausführst, dann sollte die Led im Sekundentakt blinken.
@ isnah Ja Stimmt. Es blinkt jetzt tatsächlich mit der Verzögerung von einer Sekunde. PS: Am Anfang hatte ich mich gewundert, warum das Teil so lange gebraucht, obwohl in den Kommentaren vom Code-Beispiel von einer Sekunde die Rede war.
Hallo! Damit Dein Mikrocontroller auch noch bei abgezogenem Programmer funktioniert, solltest Du den R1 nach Vcc und nicht nach GND legen.
@ Route_66 Was hättest du erwartet? Es ist mein erster Schaltplan, den ich mit Eagle erstellt habe. (Als Basis hatte ich einen von RS-Wissen Seite genommen)
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.