Hi,
I am trying to upload C code with the atmelavr platform to an Atmega32A chip with an ISP programmer (mySmartUsb light) But I can’t figure out what configuration to use. I am using PlatformIO with Clion and tried to upload it from my Linux and Windows installation. I also tried to use Atmel studio that worked fine but I don’t like using windows or Visual studio so I would realy like it if I could program my micro controller on my Linux system with Clion.
my current configuration:
[env:native_avr]
platform = atmelavr
board = uno
board_mcu = atmega32
board_f_cpu = 16000000L
upload_port = COM11
upload_speed = 115200
upload_protocol = stk500
upload_flags = -P$UPLOAD_PORT -b$UPLOAD_SPEED
The output when I try to upload the code to my microcontoller:
"E:\Program Files\apps\CLion\ch-0\171.4694.31\bin\cmake\bin\cmake.exe" --build C:\Users\ShoeldUseLinux\CLionProjects\SchoolProject\cmake-build-debug --target PLATFORMIO_UPLOAD -- -j 8
[09/08/17 09:29:55] Processing native_avr (upload_protocol: stk500; upload_flags: -P$UPLOAD_PORT -b$UPLOAD_SPEED; board_f_cpu: 16000000L; platform: atmelavr; upload_speed: 115200; board: uno; upload_port: COM11; board_mcu: atmega32)
Verbose mode can be enabled via `-v, --verbose` option
Collected 0 compatible libraries
Looking for dependencies...
Project does not have dependencies
Linking .pioenvs\native_avr\firmware.elf
Checking program size
text data bss dec hex filename
144 0 0 144 90 .pioenvs\native_avr\firmware.elf
Building .pioenvs\native_avr\firmware.hex
Looking for upload port...
Use manually specified: COM11
Uploading .pioenvs\native_avr\firmware.hex
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e9502 (probably m32)
avrdude: reading input file ".pioenvs\native_avr\firmware.hex"
avrdude: writing flash (144 bytes):
Writing | #########################avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
######################### | 100% 31.37s
avrdude: 144 bytes of flash written
avrdude: verifying flash memory against .pioenvs\native_avr\firmware.hex:
avrdude: load data flash data from input file .pioenvs\native_avr\firmware.hex:
avrdude: input file .pioenvs\native_avr\firmware.hex contains 144 bytes
avrdude: reading on-chip flash data:
Reading | avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
################################################## | 100% 31.40s
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
avrdude: verification error; content mismatch
0x0e != 0x0c
avrdude done. Thank you.
*** [upload] Error 1
[ERROR] Took 65.61 seconds
mingw32-make.exe[3]: *** [CMakeFiles/PLATFORMIO_UPLOAD] Error 1
mingw32-make.exe[2]: *** [CMakeFiles/PLATFORMIO_UPLOAD.dir/all] Error 2
CMakeFiles\PLATFORMIO_UPLOAD.dir\build.make:56: recipe for target 'CMakeFiles/PLATFORMIO_UPLOAD' failed
CMakeFiles\Makefile2:177: recipe for target 'CMakeFiles/PLATFORMIO_UPLOAD.dir/all' failed
mingw32-make.exe[1]: *** [CMakeFiles/PLATFORMIO_UPLOAD.dir/rule] Error 2
CMakeFiles\Makefile2:189: recipe for target 'CMakeFiles/PLATFORMIO_UPLOAD.dir/rule' failed
Makefile:156: recipe for target 'PLATFORMIO_UPLOAD' failed
mingw32-make.exe: *** [PLATFORMIO_UPLOAD] Error 2
The code I am trying to upload:
#include <avr/io.h>
#include <util/delay.h>
#ifndef F_CPU
#define F_CPU 16000000UL // 16 MHz clock speed
#endif
int main(void)
{
DDRC = 0xFF;
while (1)
{
_delay_ms(500);
PORTC ^= 0xFF;
}
return 0;
}
jorisrietveld:
board_mcu = atmega32
Have you tried board_mcu = atmega32a
?
Yes but then I get this output:
"E:\Program Files\apps\CLion\ch-0\171.4694.31\bin\cmake\bin\cmake.exe" --build C:\Users\ShouldUseLinux\CLionProjects\TestLEdDipSwitches\cmake-build-debug --target PLATFORMIO_UPLOAD -- -j 8
[09/10/17 00:45:40] Processing native_avr (upload_protocol: stk500; upload_flags: -P$UPLOAD_PORT -b$UPLOAD_SPEED; board_f_cpu: 16000000L; platform: atmelavr; upload_speed: 115200; board: uno; upload_port: COM11; board_mcu: atmega32A)
Verbose mode can be enabled via `-v, --verbose` option
Collected 1 compatible libraries
Looking for dependencies...
Project does not have dependencies
Compiling .pioenvs\native_avr\src\main.o
Linking .pioenvs\native_avr\firmware.elf
Checking program size
text data bss dec hex filename
142 0 0 142 8e .pioenvs\native_avr\firmware.elf
Building .pioenvs\native_avr\firmware.hex
Looking for upload port...
Use manually specified: COM11
Uploading .pioenvs\native_avr\firmware.hex
avrdude: AVR Part "atmega32A" not found.
Valid parts are:
uc3a0512 = AT32UC3A0512
c128 = AT90CAN128
c32 = AT90CAN32
c64 = AT90CAN64
pwm2 = AT90PWM2
pwm216 = AT90PWM216
pwm2b = AT90PWM2B
pwm3 = AT90PWM3
pwm316 = AT90PWM316
pwm3b = AT90PWM3B
1200 = AT90S1200
2313 = AT90S2313
2333 = AT90S2333
2343 = AT90S2343
4414 = AT90S4414
4433 = AT90S4433
4434 = AT90S4434
8515 = AT90S8515
8535 = AT90S8535
usb1286 = AT90USB1286
usb1287 = AT90USB1287
usb162 = AT90USB162
usb646 = AT90USB646
usb647 = AT90USB647
usb82 = AT90USB82
m103 = ATmega103
m128 = ATmega128
m1280 = ATmega1280
m1281 = ATmega1281
m1284 = ATmega1284
m1284p = ATmega1284P
m1284rfr2 = ATmega1284RFR2
m128rfa1 = ATmega128RFA1
m128rfr2 = ATmega128RFR2
m16 = ATmega16
m161 = ATmega161
m162 = ATmega162
m163 = ATmega163
m164p = ATmega164P
m168 = ATmega168
m168p = ATmega168P
m168pb = ATmega168PB
m169 = ATmega169
m16u2 = ATmega16U2
m2560 = ATmega2560
m2561 = ATmega2561
m2564rfr2 = ATmega2564RFR2
m256rfr2 = ATmega256RFR2
m32 = ATmega32
m324p = ATmega324P
m324pa = ATmega324PA
m325 = ATmega325
m3250 = ATmega3250
m328 = ATmega328
m328p = ATmega328P
m328pb = ATmega328PB
m329 = ATmega329
m3290 = ATmega3290
m3290p = ATmega3290P
m329p = ATmega329P
m32m1 = ATmega32M1
m32u2 = ATmega32U2
m32u4 = ATmega32U4
m406 = ATMEGA406
m48 = ATmega48
m48p = ATmega48P
m48pb = ATmega48PB
m64 = ATmega64
m640 = ATmega640
m644 = ATmega644
m644p = ATmega644P
m644rfr2 = ATmega644RFR2
m645 = ATmega645
m6450 = ATmega6450
m649 = ATmega649
m6490 = ATmega6490
m64rfr2 = ATmega64RFR2
m8 = ATmega8
m8515 = ATmega8515
m8535 = ATmega8535
m88 = ATmega88
m88p = ATmega88P
m88pb = ATmega88PB
m8u2 = ATmega8U2
t10 = ATtiny10
t11 = ATtiny11
t12 = ATtiny12
t13 = ATtiny13
t15 = ATtiny15
t1634 = ATtiny1634
t167 = ATtiny167
t20 = ATtiny20
t2313 = ATtiny2313
t24 = ATtiny24
t25 = ATtiny25
t26 = ATtiny26
t261 = ATtiny261
t28 = ATtiny28
t4 = ATtiny4
t40 = ATtiny40
t4313 = ATtiny4313
t43u = ATtiny43u
t44 = ATtiny44
t441 = ATtiny441
t45 = ATtiny45
t461 = ATtiny461
t48 = ATtiny48
t5 = ATtiny5
t84 = ATtiny84
t841 = ATtiny841
t85 = ATtiny85
t861 = ATtiny861
t87 = ATtiny87
t88 = ATtiny88
t9 = ATtiny9
x128a1 = ATxmega128A1
x128a1d = ATxmega128A1revD
x128a1u = ATxmega128A1U
x128a3 = ATxmega128A3
x128a3u = ATxmega128A3U
x128a4 = ATxmega128A4
x128a4u = ATxmega128A4U
x128b1 = ATxmega128B1
x128b3 = ATxmega128B3
x128c3 = ATxmega128C3
x128d3 = ATxmega128D3
x128d4 = ATxmega128D4
x16a4 = ATxmega16A4
x16a4u = ATxmega16A4U
x16c4 = ATxmega16C4
x16d4 = ATxmega16D4
x16e5 = ATxmega16E5
x192a1 = ATxmega192A1
x192a3 = ATxmega192A3
x192a3u = ATxmega192A3U
x192c3 = ATxmega192C3
x192d3 = ATxmega192D3
x256a1 = ATxmega256A1
x256a3 = ATxmega256A3
x256a3b = ATxmega256A3B
x256a3bu = ATxmega256A3BU
x256a3u = ATxmega256A3U
x256c3 = ATxmega256C3
x256d3 = ATxmega256D3
x32a4 = ATxmega32A4
x32a4u = ATxmega32A4U
x32c4 = ATxmega32C4
x32d4 = ATxmega32D4
x32e5 = ATxmega32E5
x384c3 = ATxmega384C3
x384d3 = ATxmega384D3
x64a1 = ATxmega64A1
x64a1u = ATxmega64A1U
x64a3 = ATxmega64A3
x64a3u = ATxmega64A3U
x64a4 = ATxmega64A4
x64a4u = ATxmega64A4U
x64b1 = ATxmega64B1
x64b3 = ATxmega64B3
x64c3 = ATxmega64C3
x64d3 = ATxmega64D3
x64d4 = ATxmega64D4
x8e5 = ATxmega8E5
ucr2 = deprecated, use 'uc3a0512'
*** [upload] Error 1
[ERROR] Took 2.11 seconds
mingw32-make.exe[3]: *** [CMakeFiles/PLATFORMIO_UPLOAD] Error 1
CMakeFiles\PLATFORMIO_UPLOAD.dir\build.make:56: recipe for target 'CMakeFiles/PLATFORMIO_UPLOAD' failed
CMakeFiles\Makefile2:140: recipe for target 'CMakeFiles/PLATFORMIO_UPLOAD.dir/all' failed
mingw32-make.exe[2]: *** [CMakeFiles/PLATFORMIO_UPLOAD.dir/all] Error 2
mingw32-make.exe[1]: *** [CMakeFiles/PLATFORMIO_UPLOAD.dir/rule] Error 2
mingw32-make.exe: *** [PLATFORMIO_UPLOAD] Error 2
CMakeFiles\Makefile2:152: recipe for target 'CMakeFiles/PLATFORMIO_UPLOAD.dir/rule' failed
Makefile:143: recipe for target 'PLATFORMIO_UPLOAD' failed
This is what works for me:
board = atmega328pb