PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit mySmartUSB light, µC macht nix...



Kunkel
30.03.2010, 18:04
hi leute,
habe mir vor einiger zeit einen neuen programmer geholt, den mysmartUSB light von myAVR.de, weil mein alter durchgebrannt ist. (verdammtes auf dem Tisch rumliegendes Metall und verdammtes offenes Gehäuse mit ebenso offenen Kontakten ](*,) )
Habe die grundschaltung aus dem artikel "AVR-einstieg leicht gemacht" aufgebaut, natürlich ins datenblatt des programmers geschaut und die anschlüsse der hier 6-poligen buchse entsprechend angeschlossen.
hab also ein einfaches Hello-World Programm:

#include <stdio.h>
#include <avr/io.h>
#include <stdint.h>
#include <avr/wdt.h>

int main() {
DDRC|=(1<<PC0);
PORTC|=(1<<PC0);
wdt_disable();
int i;
while(1) {
PORTC|=(1<<PC0);
for (i=0;i<=125000l;i++) {}
PORTC&=~(1<<PC0);
for (i=0;i<=125000l;i++) {}
}
return 1;
}


mit [korrekt gepolter, hab ich überprüft] LED an Port C.0 genommen und mit dem auf der website von myAVR kostenlos angebotenen myAVR ProgTool auf den µController geladen. Das programm überprüft es, alles in ordnung.
hab also den programmer abgenommen und die stabilisierten 5V angeschlossen.
keine reaktion seitens des controllers. ich hab alle leitungen überprüft, mehrmals den reset pin auf GND gelegt, aber nichts...
hättet ihr vielleicht irgendwelche ideen woran das liegen könnte? ich bin ahnungslos :(

EDIT: ist übrigens der atmega32, hab auch schon einen von denen dazu gebracht, nicht mehr zu antworten, nur weil ich ihm beibringen wollte, auf 16MHz zu laufen... war die option
Ext. Crystal/Resonator High Freq; Start-up time 16K CK + 64 ms mit dem LowFuse=xx111111 vielleicht falsch?

BurningWave
30.03.2010, 18:27
Welchen Programmer benutzt du? Das beim AVR Studio enthaltene AVR Prog oder irgendeinen Programmer von myAVR?

Überprüfe mit der Verify-Funktion deines Programmers, ob das Programm richtig übertragen wurde.

Außerdem reicht es, wenn du die avr/io.h einbindest, den Rest brauchst du nicht. wdt_disable(); auch nicht. Du kannst für Wartezeiten aber wenn du util/delay.h einbindest und F_CPU (Controllertakt in Herz) definierst die Funktion _delay_ms(x) verwenden.

Kunkel
30.03.2010, 21:02
wie gesagt, ich benutze "myAVR Prog Tool" (http://shop.myavr.de/index.php?sp=download.sp.php&suchwort=dl112) (auch nur, weil ich avrdude nicht für den ISP-progger aufsetzen konnte... is an sich STK500v2, aber mit avrdude hab ich auch nach entsprechendem eintrag in der conf file immer nur nen timeout gekriegt^^)
wdt_disable() dachte ich damit er keinen reset macht nach n paar millisekunden, oder hab ich da was falsch verstanden?
aber danke für das mit delay :)

ich glaube er macht n automatischen verify, sicher bin ich mir aber nich... hat zu anfang auch n paar mal funktioniert, da hing dann aber die LED auf einem zustand fest (ohne zu blinken), dem, den sie zuerst laut programm annehmen sollte...

BurningWave
30.03.2010, 21:31
ich vermute stark, dass dein µC aus irgendeinem grund kaputt ist (evtl. verfused?) wenn du nur timeouts bekommst und er nicht antwortet.

Lade dir mal AVR Studio herunter (wenn du dir auch noch das Plugin WinAVR herunterlädst, kannst du mit ihm auch C Programme schreiben). Dort kannst du im Menü Tools -> AVR Prog... einen kleinen Programmer aufrufen. Stelle bei ihm unter Device AtMega16 (wenn du mit der Einstellung AtMega32 arbeitest und Fuses setzt kann es sein dass er aufgrund eines Bugs falsche Fuses setzt und dein µC deswegen kaputt geht) ein. Anschließend kannst du unter Advanced Fuses setzen. Erscheint bei Signature: 0x000000 oder 0xFFFFFF reagiert der Controller nicht und ist wahrscheinlich kaputt. Deaktiviere außerdem (falls gesetzt) das Häkchen bei JTAG Enable (auch ein häufiger Anfängerfehler). Schreibe anschließend die Fuses mit write. Der Takt sollte auf ext. Crystal high frequency für externen Takt eingestelt sein.

Kunkel
31.03.2010, 00:54
danke leute!

ja, den ersten hab ich wohl verfused, probier ich später nochmal, ob das wirklich der fall ist...
ich hab ja ber zum glück drei stück hier, einer von denen ist ganz neu, und mit dem hats geklappt... ich glaub das myAVR programm is einfach nur mist ;)
die led blinkt jetzt, d.h. ich hoff mal ich kann mich jetzt komplexeren sachen zuwenden.

danke übrigens für den verweis auf AVRstudio, wusste nicht dass das tatsächlich so gut ist. übrigens sollte mal jemand im wiki ein GCC+AVR-einsteiger tutorial machen, so wie das für BASCOM. Basic ist schließlich doch etwas merkwürdig wenn man noch nie damit gearbeitet hat, und C ist allgemein bekannt...