Ako som si AVRko naprogramoval - mikrotutorial

Všetko čo sa týka mikropočítačov + Sekcia Arduino

Moderátori: psichac, Moderátori

Používateľov profilový obrázok
jaromir
Power user
Power user
Príspevky: 4538
Dátum registrácie: 08 Júl 2011, 00:00
Vek: 40

Ako som si AVRko naprogramoval - mikrotutorial

Príspevok od používateľa jaromir » 25 Jan 2013, 15:19

Jeden z clenov fora ma poziadal, ci by som mu nemohol poradit ako naprogramovat AVRko za par penazi. Kedze takychto otazok je vsade plno, rozhodol som sa spisat tento "zrychlika" mikrotutorial. Podotykam, ze s AVR-kami nepracujem, ale poznam ich. Snad to je dovod, preco s nimi nepracujem :)

Moznosti ako na to je vela, ale jednou z najhorsich je zostrojit si vlastny programamtor. Popisem teraz ten najjjednoduchsi, ale najhorsi sposob ako to urobit. Kazdopadne, aj ked s nim z hlbky duse nesuhlasim, funguje a da sa ako-tak pouzivat. Na jednorazove akcie to moze byt, na serioznejsiu pracu by som skutocne odporucal poobhliadnut sa po niecom lepsom.
Programator funguje na realnych seriovych portoch. USB-RS232 prevodniky su mimo hru. S nimi to bud nefunguje alebo je to brutalne pomale.
Ja som to skusal na noname desktope a na HP Elitebook 8560W s dokovacou stanicou, ktora ma seriovy port.

Ako na to
Najprv si treba dat dokopy nejaky hardware. Schema je pomerne trivialna a da sa najst tu https://www.sparkfun.com/products/14 Kedysi to predavali Bulhari z Olimexu, ale aj ti zistili, ze to nie je bohvieco.
Obsahuje to len pomerne vagne realizovane obmedzovace napatovych urovni a nijake prisposobenie CMOS logiky na RS232 urovne. Spolieha sa na to, ze RS232 prijimace maju rozhodovaciu uroven posunutu niekam k 1V, takze to ako-tak funguje. Skratka, mizerny HW.
Povedzme, ze mame programovaci HW hotovy, moze vyzerat asi takto:
IMG_7482s.png
IMG_7482s.png (176.6 KiB) 8664 zobrazení
Teraz si treba stiahnut nejaky SW

SW
Hlavny je napalovaci program. Moznosti je viacero, pre zaciatocnika asi najdostupnejsia moznost je PonyProg http://www.lancos.com/prog.html
Po nainstalovani ho treba spustit a ohlasi sa, ze chce urobit kalibraciu
1.png
tu vykoname cez Setup->Calibration a chce aj nastavit programovaci hardware
2.png
2.png (1.82 KiB) 8664 zobrazení
nastavime ho cez Setup->Interface setup podla obrazka
6.png
6.png (4.09 KiB) 8664 zobrazení
Teraz by uz vsetko malo fungovat. Zvolime si AVR z ponuky a... a pockame, najprv treba nejaky jednoduchy hardware.

HW
Na testovanie toho vela netreba. Staci kusok univerzalneho plosaku, AVR-ko a par dalsich drobnosti. Schema je trivialna
7.png
Nie je tam nic ine nez AVRko a LEDka. Predpoklada sa, ze AVR je napajane z externeho zdroja, 5V, odber nebude vacsi nez 20mA. Ked mame pripraveny HW, otestujeme SW

Prvy test
Vsetko sa pripoji a zapne a treba ako prvy test kliknut na Read Device. Obsah AVR-ka sa bude pomalicky citat do bufferu
4.png
Pokial pri tom Ponyprog nevypluje chybovu hlasku, najhorsie je zvladnute. Znamena to, ze Ponyprog si dokazal nacitat identifikacne bajty a tieto davaju nejaky zmysel. V mojom pripade v pamati AVR-ka uz nieco bolo, takze sa v bufferi ukze obsah, inak su tam same 0xFF (same jednotky).

Prvy program
Pokial je toto zvladnute, tak ma zmysel pokusit sa napisat si svoj prvy program. Stiahneme si AVRStudio - ja pouzivam AVRStudio 4.19, k nemu balicek WinAVR. Po ich nainstalovani treba zalozit novy projekt a ako prvy zdrojak napisat nieco taketo

Kód: Vybrať všetko

#define F_CPU 1000000UL
#include <avr/io.h>
#include <avr/delay.h>

int main (void)
{
DDRD = 0xFF;
while(1) {
	PORTD |=(1<<7);
	_delay_ms(200);
	PORTD &= ~(1<<7);
	_delay_ms(200);
	};
}
Kod je to jednoduchy, v nekonecne slucke kmita pinom D7. Nebudem rozoberat blizsie detaily. Po stlaceni tlacidla F7 prebehne build, coho vysledok je hex subor v adresari projektu.
Teraz treba Ponyprog naviest na tento subor. File->Open device file, ako priponu si zvolime hex, otvorime ho a v bufferi by sa mal ukazat obsah hex suboru
8.png
Klikneme na Write Device a po chvili, ak je vsetko OK, by mal byt subor napaleny do FLASH AVR-ka a LEDka by mala blikat ako o zivot. Velka vyzva je zvladnuta, kto ma chut, nech si da poharik konaku, ja sa zatial idem zbavit toho programatora - ten hore spominany nemenovany clen fora ho oceni, mne je uz nanic.

Nejake fotky sa najdu tu https://picasaweb.google.com/1118907411 ... directlink
Prílohy
AVR-PG1B.pdf
(26.39 KiB) 116 stiahnutí
0

Používateľov profilový obrázok
Drakoush
Ultimate člen
Ultimate člen
Príspevky: 10964
Dátum registrácie: 07 Feb 2012, 23:22
Bydlisko: Nitra
Vek: 28
Kontaktovať používateľa:

Re: Ako som si AVRko naprogramoval - mikrotutorial

Príspevok od používateľa Drakoush » 25 Jan 2013, 15:35

Ešte raz by som sa ti chcel aj touto cestou poďakovať za pomoc a obetovaný čas. Ja si to veľmi cením.

P.S.: keby si niečo potreboval odomňa, som tvojím dlžníkom, aj keď tá pravdepodobnosť je malá, ale jeden nikdy nevie... ;)
0
Odkupujem zaujímavé meracie prístroje. Ponuky mailom alebo SS.

smotek7
Pokročilý člen
Pokročilý člen
Príspevky: 528
Dátum registrácie: 08 Aug 2011, 00:00
Bydlisko: PN
Vek: 44

Re: Ako som si AVRko naprogramoval - mikrotutorial

Príspevok od používateľa smotek7 » 25 Jan 2013, 16:16

Ja by som na tu prosbu odpovedal tymto
http://www.ebay.com/itm/USBASP-USBISP-A ... 484ba76ee2
Myslim ze pre toho co chce naprogramovat prve AVR dobra volba.
0
Nemusím vedeť váhu elektrónu ak chcem zaspájkovať tranzistor.

Používateľov profilový obrázok
MIRDAS
Stály člen
Stály člen
Príspevky: 447
Dátum registrácie: 14 Máj 2012, 12:20
Vek: 55

Re: Ako som si AVRko naprogramoval - mikrotutorial

Príspevok od používateľa MIRDAS » 25 Jan 2013, 16:23

Tady je pro začátek taky dobrý programátor: http://electronics-diy.com/avr_programmer.php
0

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1538
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Re: Ako som si AVRko naprogramoval - mikrotutorial

Príspevok od používateľa jirka.jirka. » 25 Jan 2013, 16:37

MIRDAS napísal:Tady je pro začátek taky dobrý programátor: http://electronics-diy.com/avr_programmer.php
Nechci se tě dotknout, ale ten je podle mě tak ideální k naprogramování něčeho takovéhoto [JTAG] nebo tohoto[USBasp]. A potom ho vyhodit.

S takovýma programátorama jsem trpěl. Ale s tím USBasp jsem spokojený. A ten JTAG mám postavený taky a funguje skvěle. ;-)
0

nfko
Ultimate člen
Ultimate člen
Príspevky: 1584
Dátum registrácie: 03 Nov 2011, 17:09
Bydlisko: BA
Vek: 27

Re: Ako som si AVRko naprogramoval - mikrotutorial

Príspevok od používateľa nfko » 25 Jan 2013, 16:37

smotek7 napísal:Ja by som na tu prosbu odpovedal tymto
http://www.ebay.com/itm/USBASP-USBISP-A ... 484ba76ee2
Myslim ze pre toho co chce naprogramovat prve AVR dobra volba.
Tuto srandu som si objednal tento utorok. Čo treba v tom ponypogu nadstaviť keď to je usb ?
0
Obrázok
Kto sa veľa pýta , veľa vie. :)
PS: ZOCHOVA ŤA POCHOVÁ :D

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1538
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Re: Ako som si AVRko naprogramoval - mikrotutorial

Príspevok od používateľa jirka.jirka. » 25 Jan 2013, 16:39

Ten v ponyProgu nepojede. Teda si myslím.
Zkusil bych skvělý eXtreme Burner.
0

sarisHD
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1238
Dátum registrácie: 03 Mar 2009, 00:00

Re: Ako som si AVRko naprogramoval - mikrotutorial

Príspevok od používateľa sarisHD » 25 Jan 2013, 16:40

tu máš dačo k tomu .. http://www.fischl.de/usbasp/

PS: Parádne spracovanie na začiatok isto veľmi pomôže.
0

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1538
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Re: Ako som si AVRko naprogramoval - mikrotutorial

Príspevok od používateľa jirka.jirka. » 25 Jan 2013, 16:45

nfko napísal:
smotek7 napísal:Ja by som na tu prosbu odpovedal tymto
http://www.ebay.com/itm/USBASP-USBISP-A ... 484ba76ee2
Myslim ze pre toho co chce naprogramovat prve AVR dobra volba.
Tuto srandu som si objednal tento utorok. Čo treba v tom ponypogu nadstaviť keď to je usb ?
Přesně tento programátor je vlastně tento: Fischl USBasp
A jak tam píší:
  • Software

    AVRDUDE supports USBasp since version 5.2.
    BASCOM-AVR supports USBasp since version 1.11.9.6.
    Khazama AVR Programmer is a Windows XP/Vista GUI application for USBasp and avrdude.
    eXtreme Burner - AVR is a Windows GUI Software for USBasp based USB AVR programmers.
0

Používateľov profilový obrázok
MIRDAS
Stály člen
Stály člen
Príspevky: 447
Dátum registrácie: 14 Máj 2012, 12:20
Vek: 55

Re: Ako som si AVRko naprogramoval - mikrotutorial

Príspevok od používateľa MIRDAS » 25 Jan 2013, 16:51

jirka.jirka. napísal:
MIRDAS napísal:Tady je pro začátek taky dobrý programátor: http://electronics-diy.com/avr_programmer.php
Nechci se tě dotknout, ale ten je podle mě tak ideální k naprogramování něčeho takovéhoto [JTAG] nebo tohoto[USBasp]. A potom ho vyhodit.

S takovýma programátorama jsem trpěl. Ale s tím USBasp jsem spokojený. A ten JTAG mám postavený taky a funguje skvěle. ;-)
Máš pravdu ale než jsem si postavil USBasp, tak právě tento mi pomohl naprogramovat několik ATmega8-16 . Proto jsem psal pro začátek. Předpokládám že později si pořídí něco kvalitnějšího ale do začátku je vždy něco dobré, co se dá pořídit za pár drobných.
0

Používateľov profilový obrázok
Napster050
Ultimate člen
Ultimate člen
Príspevky: 3048
Dátum registrácie: 01 Jan 2007, 00:00
Bydlisko: Turčianske Teplice
Vek: 33
Kontaktovať používateľa:

Re: Ako som si AVRko naprogramoval - mikrotutorial

Príspevok od používateľa Napster050 » 25 Jan 2013, 17:03

si kúpte s ebayu klon originálnej verzie AVR ISP a máte pokoj... zaručene bude fungovať s každým programom.
0
Navštívte nový web o audiotechnike a podeľte sa s nami !
http://www.vintageaudio.tk/
môj YouTube kanál

Používateľov profilový obrázok
Peťus
Ultimate člen
Ultimate člen
Príspevky: 3940
Dátum registrácie: 07 Mar 2009, 00:00
Bydlisko: Praha
Vek: 34
Kontaktovať používateľa:

Re: Ako som si AVRko naprogramoval - mikrotutorial

Príspevok od používateľa Peťus » 25 Jan 2013, 17:35

BiProg používám několik let a naprosto bez problémů....
0
https://chiptron.cz - novinky ze světa elektro (Arduino, Raspberry Pi, STM32, ESP8266, ESP32,...)

smotek7
Pokročilý člen
Pokročilý člen
Príspevky: 528
Dátum registrácie: 08 Aug 2011, 00:00
Bydlisko: PN
Vek: 44

Re: Ako som si AVRko naprogramoval - mikrotutorial

Príspevok od používateľa smotek7 » 25 Jan 2013, 19:07

Ten USBASP ma asi najpriaznivejsiu cenu 2,5€ s postou. (aj to ze je priamo USB, kedze RS232 na PC sa vytraca)
Pouzivam eXtreme burner ako tu bolo napisane, zatial bez problemov.
0
Nemusím vedeť váhu elektrónu ak chcem zaspájkovať tranzistor.

Pega
Stály člen
Stály člen
Príspevky: 192
Dátum registrácie: 28 Mar 2012, 08:52

Re: Ako som si AVRko naprogramoval - mikrotutorial

Príspevok od používateľa Pega » 25 Jan 2013, 19:43

Popisem teraz ten najjjednoduchsi, ale najhorsi sposob ako to urobit. Kazdopadne, aj ked s nim z hlbky duse nesuhlasim, funguje a da sa ako-tak pouzivat. Na jednorazove akcie to moze byt, na serioznejsiu pracu by som skutocne odporucal poobhliadnut sa po niecom lepsom.
Zdá se že ti nepadl do oka. Nevím co ti provedl, ale nesouhlasím, že se "jakž-takž" dá používat.

Já jsem ho používal několik let v době kdy myslím ještě ani nebylo žádné usb a nikdy jsem s ním neměl žádný problém.
S Ponyprogem chodil absolutně spolehlivě na různých počítačích.
Jedině snad vadí že je pomalejší, programování 32 nebo 64 kbitů se s ním dost protáhne.
Jiné nevýhody mne nenapadají.

Pro ty, kteří chtějí začít bez velkých investic a umí letovat, ho můžu rozhodně doporučit.

Potřebuje ale PC s klasickým seriový portem, jak už bylo řečeno.
Nebo s PCI kartou se seriovými porty.
S kabelem usb-com nefunguje.

PS.
Co se naopak neosvědčilo byly jednoduché Avr programátory které používaly paralelní port.
Od těch se raději držet dál.
0

Používateľov profilový obrázok
Drakoush
Ultimate člen
Ultimate člen
Príspevky: 10964
Dátum registrácie: 07 Feb 2012, 23:22
Bydlisko: Nitra
Vek: 28
Kontaktovať používateľa:

Re: Ako som si AVRko naprogramoval - mikrotutorial

Príspevok od používateľa Drakoush » 25 Jan 2013, 22:16

Keď som písal Jaromírovi, ako vytvoriť jednoduchý programátor, udal som, že chcem sériový. On sa držal mojej požiadavky. Dôvodov, prečo som chcel zrovna sériový je viac:
1. sériový port mám na väčšine PC/alebo mám redukciu z USB
2. programátor je jednoduchý, lacný a je možné ho urobiť na kolene
3. jednoduchšie ho detekuje program (tak mi bolo povedané, kamarát však nebol ochotný niečo tvoriť pretože je uletený zo svojej dvojtýždňovej dcéry...)

Čo sa týka tej redukcie, tak rýchlosť som nemal moc ako overiť, soft do satelitného príjmača som načítal pomerne rýchlo. Hoci je pripojená do zbernice USB, po nainštalovaní softu sa táto redukcia zobrazuje v zbernicách COM a LPT, je jej pridelené číslo od 1 po 4 a konečnom dôsledku je zaradená pod port COM (u mňa COM3). A ako iste viete, kto sa s počítačmi ako tak zaoberal, tak USB je vlastne akási modifikácia sériového portu, v podstate je to vylepšená sériová zbernica, takže COM a USB sú si príbuzné (pozor, netreba to brať doslovne!). Už som skúšal cez túto redukciu napichnúť na PLC a satelit, u oboch som uspel, okrem toho mám prisľúbený frekvenčný menič od kamaráta práve na otesovanie tohoto rozhrania, tak zistím možnosti tej redukcie. No a v konečnom štádiu otestujem redukciu aj na tomto programátori, očakávam pozitívny výsledok.

Nedávno som sa snažil o najlacnejší programátor z LPT, tu som ale vôbec neuspel.
0
Odkupujem zaujímavé meracie prístroje. Ponuky mailom alebo SS.

Pega
Stály člen
Stály člen
Príspevky: 192
Dátum registrácie: 28 Mar 2012, 08:52

Re: Ako som si AVRko naprogramoval - mikrotutorial

Príspevok od používateľa Pega » 26 Jan 2013, 10:19

Pro nějaké jednorázové použití, třeba naprogramování bootloaderu se programátor dá ještě zjednodušit na 4 odpory a 3 zenerky.
V Ponyprogu zatrhneme volbu "Invert reset".

Edit:
Po naprogramování musíme programátor odpojit, jinak drží reset v nule a procesor nejde.
Prílohy
prog.png
0

Používateľov profilový obrázok
Drakoush
Ultimate člen
Ultimate člen
Príspevky: 10964
Dátum registrácie: 07 Feb 2012, 23:22
Bydlisko: Nitra
Vek: 28
Kontaktovať používateľa:

Re: Ako som si AVRko naprogramoval - mikrotutorial

Príspevok od používateľa Drakoush » 26 Jan 2013, 12:44

To už je jedno, Jaromír mi pošle ten programátor, ktorý otestoval a na začiatky to stačí úplne bohate. Otázne ešte je, či sa po nacucaní Cčka budem držať AVRiek, alebo bude lepšie prejsť na PICká. Toto sú moje totálne začiatky a čaká ma dlhá cesta. Ešte veľa vecí sa môže zmeniť a nakoniec tento programátor ani nebudem využívať, ale budem zháňať PIC Kit. Hovorím, to je ešte dlhá básnička a ja som na začiatku.
0
Odkupujem zaujímavé meracie prístroje. Ponuky mailom alebo SS.

Používateľov profilový obrázok
jaromir
Power user
Power user
Príspevky: 4538
Dátum registrácie: 08 Júl 2011, 00:00
Vek: 40

Re: Ako som si AVRko naprogramoval - mikrotutorial

Príspevok od používateľa jaromir » 26 Jan 2013, 15:02

Pega napísal: Zdá se že ti nepadl do oka. Nevím co ti provedl, ale nesouhlasím, že se "jakž-takž" dá používat.
...
Co se naopak neosvědčilo byly jednoduché Avr programátory které používaly paralelní port.
Od těch se raději držet dál.
Pega - tie jednoduche na seriovy port - nemam ich rad z dvoch dovodov (ktore som ciastocne spomenul v prvom prispevku):
1, Su totalne zle hardwarovo urobene. Nerespektovanie napatovych urovni AVR->RS232, velmi pochybne obmedzenie napatovych urovni v smere opacnom, navyse silne zavisle od tvrdosti vystupneho budica RS232 v PC. To su IMHO vazne dovody.
2, Znasilnuju seriovy port na prevadzku, na ktoru nebol povodne urceny. Ono to potom obcas robi problemy pri zmene OS, lebo sa casto vyuziva priamy pristup "na zelezo". Sekundarnym javom je, ze je to pomale ako fras, co sa najviac prejavuje pri USB-RS232 prevodnikoch. To nie je chyba prevodnikov, ale absolutne zleho pristupu k pouzivaniu serioveho portu.

Tie na paralelny port (ak je tam aspon HCT244 a RC cleny na linkach, zvlast na SCK linke) su vacsinou o dost lepsie a neporusuju prvy bod, druhy ciastocne.

Ale aj ked tieto programatory nemam rad, napisal som tento navod, aby si niekto mohol za par centov a jeden vecer naprogramovat svoje AVR-ko, s relativne velkou uspesnostou aj spravne.
A rad by som tymto ukoncil bezpredmetnu debatu o spravnosti tychto programatorov. Hardware som uz poslal dalej, kauza je uzatvorena a odporucanie: ak to s MCU myslite vazne, zozente si poriadny programamtor. Skrutkovace si tiez nevyrabate doma z toho, co sa naslo pod stolom v dielni :)
0

neznamy

Re: Ako som si AVRko naprogramoval - mikrotutorial

Príspevok od používateľa neznamy » 26 Jan 2013, 15:32

som kupil tu srandu z ebayu za 3 dolače , snad tam program nejak natlačim do megy , ked to nepojde, využijem brute force a bude... :D sa kupovať nova mega

Používateľov profilový obrázok
regree
Stály člen
Stály člen
Príspevky: 228
Dátum registrácie: 01 Jún 2011, 00:00
Bydlisko: Bratislava

Re: Ako som si AVRko naprogramoval - mikrotutorial

Príspevok od používateľa regree » 08 Feb 2013, 19:24

Nechcem zakladat novu temu, tak to napisem sem. Mozno to bude pre niekoho uplne trivialna otazka, ale ja len prave zacinam s mikroprocesormi. Takze otazka: Z toho USBasp pripojite ten 10 pinovy konektor k doske s ATMEGou - tak ako vyzera ta doska, co tam este je okrem atmegy (nejaky krystal atd)?
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok