Portál AbcLinuxu, 2. května 2025 20:23

Ultralacný čínsky AVR programátor pod Linuxom

6.10.2012 20:00 | Přečteno: 2981× | Hardware | Výběrový blog | poslední úprava: 6.10.2012 19:53

Po smrti môjho desktopu s LPT (programovanie metódou dapa) som bol istú dobu odstrihnutý od programovania mikrokontrolérov AVR. Neskôr som si vytvoril vlastný ultra low cost programátor skladajúci sa zo starej USB-RS232 redukcie a pár drôtov. Návrh protokolu USB neumožňuje s nízkou latenciou nastavovať hodnoty na sériovom porte, preto môj programátor neoplýval rýchlosťou a dal sa prirovnať jedine k ručnému programovaniu. Vzhľadom na cenu mkII (60 €) v nemenovanom obchode v Poprade som sa rozhodol kúpiť si klon tohto programátora. Samozrejme siahol som po najlacnejšom (menej než 3 € aj s káblom).

Klon?

Svoje hľadanie programátora som začal na e-bayi. Po zadaní "mkII clone" do vyhľadávača som skočil rovno po najlacnejšej ponuke. V popise bola malá poznámka o tom, že zariadenie nefunguje v AVR studiu, ale koho to zaujíma pri tak nízkej cene?

V pomerne luxusnom balení (kartónová krabička oblepená piatimi vrstvami lepiacej pásky) nájdeme samotný programátor, ISP kábel a pomerne kvalitný USB kábel. Žiadne ďalšie príslušenstvo sa v balení nenachádzalo.

Prekvapila ma prítomnosť 10-pinového konektoru zatiaľ čo mkII obsahuje 6-pinový konektor. Redukcia z 10-pinového na 6-pinový konektor je veľmi jednoduchá a pri jej tvorbe nám postačí pár vodičov. Schéma zapojenia a mapovanie pinov vyzerá nasledovne:

Redukcia medzi 10-pinovým a 6-pinovým konektorom
Signál 6-pinový konektor 10-pinový konektor Účel
MISO 1 9 Dáta z AVR do programtora
VCC 2 2 Napájanie mikrokontroléra (+5V)
SCK 3 7 Sériové hodiny ovládané programátorom
MOSI 4 1 Príkazy a dáta z programátora do AVR
RESET 5 5 Reset signál
GND 6 4, 6, 8, 10 Uzemnenie

Po pripojení sa programátor hlási ako USBasp, čo prirodzene nie je u mkII bežné. Ak si to teda zhrnieme tento klon nevyzerá ako originál, nemá rovnaký konektor ako originál, nehlási sa ako originál a ani nefunguje ako originál. Ak má byť toto klon tak rozhodne nie je práve vydarený ;-). Aspoň, že má rovnakú krabičku ako iné klony mkII.

Používanie pod Linuxom

Ako už bolo spomenuté programátor sa hlási ako USBasp. Výpis príkazu dmesg vyzerá u mňa takto:

usb 4-1: new low-speed USB device number 7 using uhci_hcd
usb 4-1: New USB device found, idVendor=16c0, idProduct=05dc
usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 4-1: Product: USBasp
usb 4-1: Manufacturer: www.fischl.de

Zariadenie je možné v Linuxe nájsť zvyčajne na adrese /dev/bus/usb/číslo_portu/číslo_zariadenia, v mojom prípade je to /dev/bus/usb/004/007. Aby sme mohli pomocou tohto zariadenia programovať musíme mať práva na zápis.

$ ls -lh 007
crw-rw-r-- 1 root usb 189, 390 okt  6 17:55 007

Práva zariadení sa nastavujú pomocou udev pravidiel. V mojom prípade majú všetky zariadenia skupinu usb a užívateľ pod ktorým sa prihlasujem je v skupine usb. Zmeniť skupinu, ktorú udev nastavuje zariadeniu je veľmi jednoduché, stačí vytvoriť súbor v adresári /etc/udev/rules.d/, napr. /etc/udev/rules.d/41-atmega.rules s nasledujúcim obsahom:

ATTR{idVendor}=="16c0", ATTR{idProduct}=="05dc", GROUP="skupina", MODE="0664"

Po pripojení mikrokontroléra môžme používať programátor pomocou avrdude. Typ programátora nastavíme pomocou parametra -c ako usbasp. Pri používaní avrdude musí byť špecifikovaný typ mokrokontroléra (v tomto prípade AT MEGA 8515). Parametre -v -v nám prezradia podrobnosti o pripojenom hardvéri.

avrdude -c usbasp -p m8515 -v -v

avrdude: Version 5.11.1, compiled on Aug  7 2012 at 17:19:55
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/etc/avrdude.conf"
         User configuration file is "/home/mirec/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/parport0
         Using Programmer              : usbasp
avrdude: seen device from vendor ->www.fischl.de<-
avrdude: seen product ->USBasp<-
         AVR Part                      : ATMEGA8515
         Chip Erase delay              : 9000 us
         PAGEL                         : P00
         BS2                           : P00
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom         4    20   128    0 no        512    0      0  9000  9000 0xff 0xff
           flash         33     6    64    0 yes      8192   64    128  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          4    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : usbasp
         Description     : USBasp, http://www.fischl.de/usbasp/

avrdude: auto set sck period (because given equals null)
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.01s

avrdude: Device signature = 0x1e9306
avrdude: safemode: lfuse reads as EF
avrdude: safemode: hfuse reads as D9

avrdude: safemode: lfuse reads as EF
avrdude: safemode: hfuse reads as D9
avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Rýchlosť

Pre vytvorenie flash obrazov boli boli použité nasledujúce príkazy:

dd if=/dev/zero of=flash2k.bin bs=1024 count=2
dd if=/dev/zero of=flash.bin bs=1024 count=8
Operácia Parametre avrdude Čas
Vymazanie EEPROM -e 0,381s
Prečítanie FLASH (8K) -U flash:r:flash-read.bin:r 1,563s
Zápis a kontrola FLASH (2K) -U flash:w:flash2k.bin:r 1,466s (1.36 kB/s)
Zápis a kontrola FLASH (8K) -U flash:w:flash.bin:r 4,667s (1.71 kB/s)

Záver

Tento programátor rozhodne nie je klon mkII, ale to ani výrobca momentálne netvrdí. V skutočnosti ide zariadenie komunikujúce protokolom USBasp. Pri používaní som nenarazil na žiadnu závadu. Rýchlosť komunikácie s AVR je približne rovnaká ako s originálnym USBasp (pri hodnotách v tabuľke treba brať do úvahy, že ide o zápis a následné čítanie).

V nasledujúcom hardvérovom blogu si ukážeme ako sa dá pomocou AVR bricknúť televízor LG LD32 (prípadne iné TV značky LG). ;-)

       

Hodnocení: 100 %

        špatnédobré        

Obrázky

Ultralacný čínsky AVR programátor pod Linuxom, obrázek 1

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

lukve avatar 6.10.2012 20:07 lukve | skóre: 29 | blog: Lukove | Prešov
Rozbalit Rozbalit vše Re: Ultralacný čínsky AVR programátor pod Linuxom
Odpovědět | Sbalit | Link | Blokovat | Admin

cinaci :D to uz nemohli tam dat ten 6 pinovy ISP konektor :D ale inac fajna cena

linux user more than 20y
mirec avatar 6.10.2012 20:11 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Ultralacný čínsky AVR programátor pod Linuxom
No skôr mohli dať normálny popis pretože u USBasp je bežnejší práve 10-pinový. Ale kto tam dal klon mkII ten strelil fakt riadne mimo :-D
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
7.10.2012 02:33 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Ultralacný čínsky AVR programátor pod Linuxom
Odpovědět | Sbalit | Link | Blokovat | Admin
Ruční programování :-D. Jak sis proboha odpálil LPT? :-O
Intel meltdown a = arr[x[0]&1]; karma | 帮帮我,我被锁在中国房
mirec avatar 7.10.2012 08:45 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Ultralacný čínsky AVR programátor pod Linuxom
Neodpálil som LPT, len jednoducho môj počítač už mal svoj vek (7 rokov, jeden ľudský rok je asi 14 rokov počítača) a 6x vymenený zdroj. Jednoducho jedného dňa ani nenaštartoval. Teoreticky by sa to mohlo dať opraviť keďže tam bol 1 vadný kondenzátor na doske, ale ktovie, možno aj niečo iné.
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
7.10.2012 10:52 hlasovani | skóre: 1 | blog: zapamatovat
Rozbalit Rozbalit vše Re: Ultralacný čínsky AVR programátor pod Linuxom
6X!? měněný zdroj za 7 let?? proboha, co s tím děláš nebo co za křápy kupuješ?
kotyz avatar 7.10.2012 10:55 kotyz | skóre: 25 | blog: kotyzblog | Plzeň
Rozbalit Rozbalit vše Re: Ultralacný čínsky AVR programátor pod Linuxom
Já ho měnil za deset let jednou, ale to ten starej ještě fungoval, jen řval jako cirkulárka. Tak až nebudu línej vyměnim v něm jenom vetrák a bude zase v aktivní službě...
Hrdý člen KERNEL ULTRAS. | Furry/Brony/Otaku | Nemám čas ztrácet čas. | In 'pacman -Syu' we trust!
mirec avatar 7.10.2012 11:45 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Ultralacný čínsky AVR programátor pod Linuxom
No pravdu povediac neviem prečo som mal problém so zdrojmi. Bývam pár m od transformátora, vlastne kábel mám natiahnuty priamo z transformátora a je tu o pár V vyššie napätie, takže možno to spínaným zdrojom vadí. Inak som fakt nekupoval najlacnejšie zdroje a vždy som mal dostatočnú výkonovú rezervu. Väčšinou bol príčinou smrti vybuchnutý kondenzátor, alebo nejaký spálený tranzistor a nikdy sa to nestalo počas búrky (kedy mám pre istotu všetko vypnuté).
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
7.10.2012 14:59 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Ultralacný čínsky AVR programátor pod Linuxom
Vyšší napětí o pár procent by vadit nemělo. Spínaný zdroj dokáže fungovat v extrémně širokém intervalu hodnot napětí. Spíš jestli u toho trafa nejsou nějaký špičky typu 400V apod.
mirec avatar 7.10.2012 15:09 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Ultralacný čínsky AVR programátor pod Linuxom

Rozsah je síce u spínaných zdrojov veľký, ale mierne vyššie napätie môže spôsobiť vyššie zahrievanie a rýchlejšie vysychanie elektrolytických kondenzátorov.

Ešte mám jedno vysvetlenie - zdroje ma nemajú radi ;-) Tento rok som v práci na desktope 2x menil zdroj a to je tiež pripojený cez prepäťovú ochranu.

LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
mirec avatar 7.10.2012 15:17 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Ultralacný čínsky AVR programátor pod Linuxom
Keď tak vlastne rozmýšľam asi to bude prekliatie. Mňa zdroje celkovo nemajú radi. Na internáte sa mi podarilo 3x za jeden rok vyhodiť poistky. Prvý krát to bol zdroj USB hubu ... do rána sme nemali prúd. Potom to bola nabíjačka na mobil z tesca, výsledok rovnaký. No a nakoniec to bola značková originálna nabíjačka, ale to bola taká rana, že až po týždni sa podarilo dať dokopy osvetlenie chodby :-D
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
7.10.2012 16:52 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Ultralacný čínsky AVR programátor pod Linuxom
No je fakt, že výkon na svodovém odporu kondíku roste s napětím kvadraticky, ale že by to bylo až tak fatální :-/. Bouchly teda vždycky kondíky ty na straně usměrněný sítě? Hmm to by možná šlo eliminovat nějakým triakovým regulátorem, koneckonců do AT zdroje téměř vždy můžeš pustit i usměrněnou a vyhlazenou síť (nesmí mít v sobě ten triak :-D).
7.10.2012 15:02 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Ultralacný čínsky AVR programátor pod Linuxom
14 let za 1 rok reálného času? A počítaj se do toho i stroje, který určitý interval nebyly v provozu? Každopádně to by měla moje bývalá K7S5A deska od výroby tak 140 let :-D.

Jinak si kup z aukra LPT/RS232 PCI kartu (sice relativně drahá 200-300 Kč) a budeš mít nezávislou na motherboardu.
7.10.2012 09:57 Marv-CZ | skóre: 21
Rozbalit Rozbalit vše Re: Ultralacný čínsky AVR programátor pod Linuxom
Odpovědět | Sbalit | Link | Blokovat | Admin
Moc pěkný blog. Škoda že tu takových není víc místo různých rádoby ekonomických, politických apod.
Bedňa avatar 7.10.2012 14:28 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Ultralacný čínsky AVR programátor pod Linuxom
Odpovědět | Sbalit | Link | Blokovat | Admin
Koľko si platil za to exkluzívne balenie a poštovné?
KERNEL ULTRAS video channel >>>
mirec avatar 7.10.2012 14:55 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Ultralacný čínsky AVR programátor pod Linuxom
To bolo zhruba tak "drahé" ako celý programátor. V každom prípade som sa dostal na asi 1/10 ceny ako keby som kupoval v kamennom obchode ;-)
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
Bedňa avatar 7.10.2012 15:36 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Ultralacný čínsky AVR programátor pod Linuxom
Tak to je v poho. Ako dlho si čakal na zásielku?
KERNEL ULTRAS video channel >>>
mirec avatar 7.10.2012 15:39 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
Rozbalit Rozbalit vše Re: Ultralacný čínsky AVR programátor pod Linuxom
Mesiac a pár dní, už som si myslel, že to ani nepríde ;-)
LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
Bedňa avatar 7.10.2012 16:26 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Ultralacný čínsky AVR programátor pod Linuxom
To je cena za lacné poštovné. Musia počkať, až sa toho nazbiera za kamión a potom to dovalia naraz na Slovensko, inak sa taká cena nedá dosiahnuť. Rovnako to robia aj čínske markety.
KERNEL ULTRAS video channel >>>
8.10.2012 16:22 martin knocik | skóre: 14
Rozbalit Rozbalit vše Re: Ultralacný čínsky AVR programátor pod Linuxom
Odpovědět | Sbalit | Link | Blokovat | Admin
Ja som začal s UsbAsp a teraz mam Atmel Dragon. Podla mna momentalne asi najlepší pomer cena/počet protokolov (za 50€ mam ISP,JTAG, debugwire hight voltage serial a paralel programming,). Pokial sa chce človek zaoberať AVR do hlbky, tak časom začne byť JTAG alebo DebugWire nevyhnuný (digitalny osciloskop ani logicky analyzer zatial nemam, JTAG je jediný sposob akym hľadam chyby). Žial debugovanie na linuxe nefunguje.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.