Kirjoittaja Aihe: [Ratkaistu]Kuinka USBasp:lla ohjelma atmega664p:hen ?  (Luettu 1892 kertaa)

kamara

  • Käyttäjä
  • Viestejä: 3028
    • Profiili
Koeohjelma:
Koodia: [Valitse]
#include <avr/io.h>
#include <util/delay.h>



int main(void)
{
#ifdef DDRA
    DDRA |= 3;
#else
    DDRB |= (3 << 4);
#endif
    char a = 0;
    while(1) {
        a++;
        a&=3;
#ifdef PORTA
        PORTA |= a;
#else
        PORTB |= (a << 4);
#endif
        _delay_ms(1000);
#ifdef PORTA
        PORTA &= ~(a);
#else
        PORTB &= ~(a << 4);
#endif
    }
}

makefile:
Koodia: [Valitse]
MCU=atmega644p
#MCU=atmega328p
F_CPU=8000000
CC=avr-gcc
OBJCOPY=avr-objcopy
CFLAGS=-std=c99 -Wall -g -Os -mmcu=${MCU} -DF_CPU=${F_CPU} -I.
TARGET=main
SRCS=main.c

all:
${CC} ${CFLAGS} -o ${TARGET}.bin ${SRCS}
${OBJCOPY} -j .text -j .data -O ihex ${TARGET}.bin ${TARGET}.hex

flash:
avrdude -p ${MCU} -c usbasp-clone -U flash:w:${TARGET}.hex:i -F -P usb

clean:
rm -f *.bin *.hex

Samoilla käskyillä mene ihan kiltisti atmega328p:hen, joka on arduino-levyssä (arduino nano). :(

Kotoa löytyy myös Arduino Uno-levyjä, joten silläkin jos keksitte ohjelmoinnin, niin käypi.

Tällaista herjaa antaa, kun yritän flashata sen atmega644p:hen. :(
Koodia: [Valitse]
~/avr-cpp$ make flash
avrdude -p atmega644p -c usbasp-clone -U flash:w:main.hex:i -F -P usb

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: program enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0xd026bb
avrdude: Expected signature for ATmega644P is 1E 96 0A
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.

avrdude done.  Thank you.

make: *** [makefile:15: flash] Virhe 1

Kääntyy kyllä ihan kiltisti, mutta flashääminen epäonnistuu ...

... ja olen yrittänyt googlaillakin, mutta en ole löytänyt toimivaa ratkaisua.
« Viimeksi muokattu: 05.04.20 - klo:17.54 kirjoittanut kamara »

kamara

  • Käyttäjä
  • Viestejä: 3028
    • Profiili
Vs: Kuinka USBasp:lla ohjelma atmega664p:hen ?
« Vastaus #1 : 05.04.20 - klo:16.57 »
Prakaa jo vähän aiemmin...

Käsky:
Koodia: [Valitse]
$ avrdude -p atmega644p -c usbasp-clone 2>error.txt

virhetuloste error.txt:
Koodia: [Valitse]

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: program enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.


kamara

  • Käyttäjä
  • Viestejä: 3028
    • Profiili
Vs: Kuinka USBasp:lla ohjelma atmega664p:hen ?
« Vastaus #2 : 05.04.20 - klo:17.54 »
Jaahas,

Piirini onkin ATMEGA644, lisäksi ensimmäinen piirini oli hajonnut, joten senkin puolesta oli hivenen työläämpi tapaus.

Näytttäisi omalta osaltani olevan ratkaistu. :)