Microchip Studio 7

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
Celeron
Příspěvky: 20508
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

Microchip Studio 7

#1 Příspěvek od Celeron »

Protože jsem zjistil, že Arduino IDE je hroznej sračkoid, (přepisuje poresetový hodnoty některých registrů nesmyslama) přešel jsem na Microchip (Atmel) Studio 7. Trochu jsem laboroval jak výstupní code.hex dostat do programovanýho procíku. Zatím to dělám přes External Tools, kde mám nakonfigurovaný AVRDUDE pro mega328P, mega328PB, mega 4809, mega 2560, Tiny84, Tiny 85, ESP D1 a ESP32. Vše přes USBASP programátor.
Zkoušel jsem to samý aby to šlo do Arduino desek přes USB/COM. Zase přes AVRDUDE. Pokud použiju AVRDUDE v DOS okně, tak se třeba UNO naprogramuje správně, ale to samý z Microchip studia ani náhodou.

Pro Mega328P přes USBASP je argument v External Tools:

Kód: Vybrat vše

-p m328p -c usbasp -B 5 -U flash:w:$(ProjectDir)Debug\$(TargetName).hex:i
S tímhle argumentem to jde bez problému.

Pro UNO přes USB/COM linku je argument v External Tools:

Kód: Vybrat vše

-v -p m328p -c arduino -P COM3 -b 115200 -U flash:w:"$(TargetDir)$(TargetFileName)":i > "$(ProjectDir)output.txt" 2>&1
Bohužel, nic to nedělá...

Pro UNO po USB/COM BAT pro DOS okno je to argumentama stejný:

Kód: Vybrat vše

@echo off
"C:\Program Files\AVRDUDESS\avrdude.exe" -v -p m328p -c arduino -P COM3 -b 115200 -U flash:w:"C:\Users\Jirka\Documents\Atmel Studio\7.0\C_METR\C_METR\Debug\C_METR.hex":i
pause
Ten chodí naprosto bez problémů.

Jo a ještě v tom External Tools je pro všechno společný Command:

Kód: Vybrat vše

C:\Program Files\AVRDUDESS\avrdude.exe
a Initial Directory:

Kód: Vybrat vše

$(ProjectDir)Debug\
Ty by měly být dobře, s USBASP to chodí.

Netušíte někdo kde je problém? Na Trubce je k tomu video ale v nějaký mochametánštině bez titulků a navíc rozmazaný do nečitelna. Ono těch návodů s nečitelnejma obrazovkama je na Trubce čím dál víc...
Díky!
Jirka

Proč mi nemůže všechno chodit hned ?!!
Uživatelský avatar
Celeron
Příspěvky: 20508
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

#2 Příspěvek od Celeron »

To tady opravdu nikdo nepoužívá Microchip (Atmel) sudio?
Jirka

Proč mi nemůže všechno chodit hned ?!!
Uživatelský avatar
Dumitru
Příspěvky: 254
Registrován: 11 pro 2015, 00:00
Bydliště: Slovensko,Bratislava
Kontaktovat uživatele:

#3 Příspěvek od Dumitru »

Čo znamená nenaprogramuje správne ? Obsah mcu je iny ako .hex súbor ?

Mam to nakonfigurované úplné rovnako ako ty

Kód: Vybrat vše

Title: USBasp
Command: C:\avrdude-6.4-mingw32\avrdude.exe
Arguments: -c usbasp -p t45 -P usb -U 
flash:w:"$(OutDir)Debug\$(TargetName).hex"
Initial Directory:$(ProjectDir)

a pre attiny45 to fungovalo bez problémov , priznám sa ale že radšej používam buď avrdudess alebo programátor atmelice


skús pridať verifikáciu po naprogramovaní

Kód: Vybrat vše


-U <memtype>:r|w|v:<filename>[:format]:
OK we're at the important part. This is where we actually get around to telling avrdude how to put the data onto the chip. This command is rather complex, but we'll break it down.

<memtype> - can be flash, eeprom, hfuse (high fuse), lfuse (low fuse), or efuse (extended fuse)
r|w|v - can be r (read), w (write), v (verify)
<filename> - the input (writing or verifying) or output file (reading)
[:format] - optional, the format of the file. You can leave this off for writing, but for reading use i for Intel Hex (the prevailing standard )

For example:

To write a file called firmware.hex to the flash use the command: -U flash:w:firmware.hex
To verify a file called mydata.eep from the eeprom use the command -U eeprom:v:mydata.eep
To read the low fuse into a file use the command -U lfuse:r:lfusefile.hex:i

ak by to neprechádzalo verifikáciou zníž bitrate

Kód: Vybrat vše

-B <bitrate>: This is for changing the bitrate, which is how fast the programmer talks to the chip. If your chip is being clocked very slowly you'll need to talk slowly to it to let it keep up. It'll be discussed later, for now don't use it.
Uživatelský avatar
Celeron
Příspěvky: 20508
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

#4 Příspěvek od Celeron »

Díky za zájem mě pomoci.
Psal jsem, že přes USBASP pomocí AVRDUDE mi 328P naprogramovat jde z definic External Tools bez problému.
Problém je, pokud chci z External Tools programovat třeba UNO po USB/COM s bootloaderem v 328P. To mi nechodí a nevím proč. Viz:

Kód: Vybrat vše

-v -p m328p -c arduino -P COM3 -b 115200 -U flash:w:"$(TargetDir)$(TargetFileName)":i > "$(ProjectDir)output.txt" 2>&1 
Pokud zkusím programovat po USB/COM přímo z AVRDUDE v Dos okně, tak to jde.

Kód: Vybrat vše

@echo off
"C:\Program Files\AVRDUDESS\avrdude.exe" -v -p m328p -c arduino -P COM3 -b 115200 -U flash:w:"C:\Users\Jirka\Documents\Atmel Studio\7.0\C_METR\C_METR\Debug\C_METR.hex":i
pause 
Jak vidíš, parametry jsou až na ten závěr ´2>&1´ stejný. Nepodařilo se mě dohledat, jakej má ten závěr vliv. Možná se špatně definují ty TargetDir, TargetFileName a ProjectDir. Problém je, že z toho External Tools nejde zachytit Dos okno výpisu kde AVRDUDE hlásí chybu. Tam by se dala nejspíš příčina nalýzt.
Jirka

Proč mi nemůže všechno chodit hned ?!!
Uživatelský avatar
lesana87
Příspěvky: 4395
Registrován: 20 zář 2014, 00:00

#5 Příspěvek od lesana87 »

Výstup je přesměrovanej do souboru output.txt, v něm nic není?
Uživatelský avatar
Celeron
Příspěvky: 20508
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

#6 Příspěvek od Celeron »

Jo, zapoměl jsem napsat, že se ani nezaloží. Teda W7 hledač ho v celým PC nenajde.
Jirka

Proč mi nemůže všechno chodit hned ?!!
Uživatelský avatar
Celeron
Příspěvky: 20508
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

#7 Příspěvek od Celeron »

Ještě jsem zkusil tohle:

Kód: Vybrat vše

@echo off
"C:\Program Files\AVRDUDESS\avrdude.exe" -v -p m328p -c arduino -P COM3 -b 115200 -U flash:w:"C:\Users\Jirka\Documents\Atmel Studio\7.0\C_METR\C_METR\Debug\C_METR.hex":i  > "$(ProjectDir)output.txt" 2>&1 
pause

To přesměrování zase output.txt nezaloží.
Ale pokud zkusím:

Kód: Vybrat vše

@echo off
"C:\Program Files\AVRDUDESS\avrdude.exe" -v -p m328p -c arduino -P COM3 -b 115200 -U flash:w:"C:\Users\Jirka\Documents\Atmel Studio\7.0\C_METR\C_METR\Debug\C_METR.hex":i  
> "$(ProjectDir)output.txt" 2>&1 
pause

Tedy pokud je vše za skobou na novým řádku, tak output.txt vznikne a je v něm to samý jako dřív v Dos okně.
Jenže v definicích External Tools je jen jeden řádek a jak a jestli bude nějaká reakce na oddělovač alá CRLF, to netuším.
Jirka

Proč mi nemůže všechno chodit hned ?!!
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“