Controller nicht mehr erreichbar," initialization failed, rc=-1 "

Gast #4719913
Lesenswert?

Stefan schrieb:
> So Hallo,
> ich denke ich habe meinen Atmega verfuset, ich habe einen ISP programmer
> von Diamex
>
> Der avrdude Befehl -> -U lfuse:w:0xff:m -U hfuse:w:0xda:m -U
> efuse:w:0x05:m
> seit dem geht nichts mehr.In den Eimer oder kann ich noch was retten ?
>
> Gruß

Es geht um einen Atmel 328 8Mhz
Gast #4720028
Lesenswert?

Ich habe jetzt mal 2 neue 328 bestellt, aber mir ist noch was 
aufgefallen, ich hab wohl nur das l fuse falsch gesetzt und bin jetzt 
von internal clock auf external clock, der ist aber nicht eingelötet
Moderator Persönliche Seite #4720038
Lesenswert?

Stefan schrieb:
> auf external clock, der ist aber nicht eingelötet

Dann klemm vorübergehend einen externen Takt dran.  Wenn du nichts
hast, nimm einen anderen ATmega, und lass ihn einen Takt ausgeben.
Beim ATmega328 genügt es dafür, die low fuse von 0x62 (default) auf
0x22 zu setzen, dann tickert er seinen 1-MHz-Takt an PB0 heraus.

Mit dem angeklemmten externen Takt kannst du die verbogene Fuse
dann wieder zurückdrehen.
Gast #4720211
Lesenswert?

Hello,
To unlock microcontroller you can use an block oscillator (1MHz), or a 
build one with only one CD4011 and quartz anythig between 500kHz and 
20MHz. The signal will be applied on pin 9 of uC. Then you can restore 
to factory fusebits.
Or, if know you may lock another uC it is better build HVPP rescue 
shield (from MightyOhm site) and use it in conjunction with Arduino.
Best regards
Gast #4721006
Lesenswert?

Vielen dank, es hat funktioniert. Zum Thema Fuse, die kann ich auch 
nachträglich oder als erstes auch setzen und die müssen nicht mit dem 
übertragen des Programmes gesetzt werden? Ich kam bisher eben noch nicht 
damit richtig in Berührung,und hatte mich damit beschäftigt weil dieses 
Board nicht richtig will.
Als Beispiel ich wollte einen Ausgang toggeln, leider wurde er nur 
einmal eingeschaltet und nie wieder aus. Ich dachte dann vllt. passen 
die Fuse nicht.

Gruß
Gast #4721039
Lesenswert?

Ja, die Fuses kannst du unabhängig vom Programm in einem separaten 
avrdude Aufruf setzen. Ich ändere die Fuses nur, wenn es unbedingt nötig 
ist.

Die meisten meiner Anwendungen kommen mit den Standardeinstellungen aus. 
Die Taktfrequenz (Prescaler) kann man bei vielen AVR's auch per Software 
ändern.
Gast #4721060
Lesenswert?

Okay, und hast vllt ne Ahnung wieso das mit dem Toggeln nicht geht ?
1
    DDRD = (1<<PD7);
2
    TCCR1B |= _BV(CS10); // Set up timer
3
    
4
    
5
    while(1)
6
    {
7
        if (TCNT1 >= 49999){
8
            PORTD ^= (1<<PD7);
9
            TCNT1 = 0; // Reset timer value
10
        }
11
        
12
    }

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren