ciocead4 Postat August 28, 2012 Partajează Postat August 28, 2012 Salutare tuturor, stiu ca s-au dezbatut aici pe forum o multitudine de programatoare, fiecare cu avantaje si dezavantaje lui, chiar si asa vreau sa va arat varianta construita de mine . Este vorba de un programator compatibil STK500v2 dezvoltat de Guido Socher's de la http://tuxgraphics.org/electronics/200705/article07052.shtml. Eu am proiectat un PCB mai "ingrijit' pentru acest programator, rezultatul l-am publicat pe pagina: http://www.eosystems.ro/index.php/articles/stk500v2-compatible-avr-programmer Pentru cei mai putin familiarizati cu diferentele intre diversele tipuri de programatoare de pe net iata cateva pareri personale: - programatoarele bazate pe stack-uri USB custom, sunt mai dificil de instalat pe PC, de cele mai multe ori necesita instalarea de drivere, de exemplu USBasp necesita un driver de Windows instalat - USBasp nu este suportat de Avrstudio: dupa parerea mea aceasta este ce mai mare limitare a acestui tip de programator - exsista softuri de programare care suporta aproape toate tipurile de programtoare: de exemplu Avrdude Programatorul propus de mine are ca singur dezavantaj, necesitatea prezentei chip-ului FT232RL, care adauga ceva cost la placa (cred ca e in jur de 20RON in Ro) si cateva rezistente si condensatori suplimentari. Totusi prezenta FTDI-ului rezolva oarecum problema drivere-lor, care exista implicit pe Windows, Linux, etc. Avantajul major insa este ca acest programator este suportat direct de Avrstudio, tool-ul oficial de la Atmel, astfel sunt suportate cele mai multe microcontrolere publicate de Atmel. Pentru cei mai multi utilizatori asta rezolva setarea fuse-bitilor, care devin mai accesibili din Avrstudio. Personal folosesc programatorul din Linux, cu Avrdude integrat in Eclipse, deci pot sa va confirm ca merge OK si pe Linux. Dupa cum vedeti pe pagina proiectului, PCB-ul a iesit foarte mic, este mono-layer si are nevoie de doar 2 fire jumper, deci este foarte usor reproductibil in regim de amator. O sa adaug in zilele urmatoare niste poze cu device-ul realizat fizic, ca sa vedeti gabaritul, realizarea, etc. Sper sa ajute, Daniel Link spre comentariu
schukaru Postat August 28, 2012 Partajează Postat August 28, 2012 frumos realizat Ma chinui si eu sa invat ceva despre microcontrolere, dar singurel traba merge cam greu, e mult de munca Link spre comentariu
nico_2010 Postat August 29, 2012 Partajează Postat August 29, 2012 Felicitari pentru efortul depus. Totusi, exista si o alternativa, prezentata pe www.ullihome.de si care mai are si alte facilitati. Aceasta varianta o folosesc impreuna cu AVR Studio sub Win7 si/sau BASCOM, fara probleme. Link spre comentariu
ciocead4 Postat August 29, 2012 Autor Partajează Postat August 29, 2012 Felicitari pentru efortul depus.Totusi, exista si o alternativa, prezentata pe http://www.ullihome.de si care mai are si alte facilitati.Aceasta varianta o folosesc impreuna cu AVR Studio sub Win7 si/sau BASCOM, fara probleme.Da, stiu ca exista alternative... cel de pe ullihome are avantajul ca se poate incarca cu mai multe firmware-uri in functie de protocolul dorit. Nu stiu insa daca proiectul ofera codul sursa, in regim open source... in plus cred ca este nevoie de drivere speciale pe Windows. Imi place ca PCB-ul de pe ullihome este foarte mic, dar din cate am vazut este dublu-strat, nu stiu daca se poate face bine in regim de amator... Link spre comentariu
nico_2010 Postat August 29, 2012 Partajează Postat August 29, 2012 Autorul nu ofera codul sursa. Cat despre drivere, acestea sunt livrate odata cu aplicatia AVR Lab Tool. Link spre comentariu
ciocead4 Postat August 29, 2012 Autor Partajează Postat August 29, 2012 Autorul nu ofera codul sursa.Pentru majoritatea utilizatorilor acesta nu este un dezavantaj, insa eu am de gand sa fac niste modificari/incercari de a folosi acest programator pentru alte scopuri, de aceea ma ajuta sa am codul sursa... Link spre comentariu
rlodina Postat Octombrie 10, 2014 Partajează Postat Octombrie 10, 2014 Salut. Am nevoie de un pic de ajutor. Pe scurt: nu stiu cum sa determin fuse biti pentru ATMEGA88P-AU cu un oscilator extern la 14.745600 MHz (parametrii avrdude). Detalii: Am construit programatorul din pe baza schemei postate de autor (ciocead4) la adresa: http://www.eosystems.ro/index.php/articles/stk500v2-compatible-avr-programmer unde este postat si hex-ul (multumesc). Cu programatorul usbasp pot sa-l accesez: avrdude -m m88p -c usbasp zice ca totul este ok. Problema apare la setare fuse biti - nu stiu cum sa-i determin. Aplicatiile online de determinare fuse biti: http://www.engbedded.com/fusecalc/ sau http://eleccelerator.com/fusecalc/ nu le inteleg - mi se par extrem de neintuitive. Pasul 1: selectez device-ul: ATMEGA88P-AU Pasul 2: configurare low fuse - sa-i pun oscilatorul extern la 14.745600 MHz : apare o lista cu oscilatoare inter / extern si diversi parametrii - sunt convins ca frecventa oscilatorului se mapeaza cumva pe acesti parametrii : CLK/CK + x ms; etc. Recunosc ca nu am citit multe despre acesti fuse biti - si nici nu stiu daca am bagajul de cunostinte necesar ca sa inteleg toti acesti parametrii care pot fi setati in fuse biti - si cum peste tot scrie: "Atentie la fuse biti poti bloca MC-ul" in momentul actual am nevoie : - de o comanda (mura'n gura) avrdude de setare biti pentru acest programator - ceva link-uri (carte?) care sa-mi faca lumina in acesta zona Multumesc mult O zi excelenta Radu Link spre comentariu
nico_2010 Postat Octombrie 10, 2014 Partajează Postat Octombrie 10, 2014 (editat) In calculatorul de fusebits de pe engbedded AVR Fuse calculator selectezi urmatoarele: La Features (tipul de oscilator): Ext. Crystal Osc; Frequency 8 - MHz; Startup...258k/14k+4.1ms (inseamna oscilator extern - quartz sau chiar oscilator, cu frecventa de peste 8MHz- cum este cazul tau si numarul de impulsuri de tact+o anumita intarziere - aceste valori le alegi dupa cum sursa de tensiune are o crestere rapida sau lenta de la zero la valoarea nominala si valorile efective le gasesti in foaia de catalog a uC. Uzual foloseste ce am selectat eu) Brown-out level = 2.7V (pentru siguranta, este posibil ca tensiunea de alimentare sa fie la limita de 4.3V si atunci uC se comporta bizar.) Debifezi "Divide clock by 8 internally" (asta doar daca nu cumva vrei ca de fapt ceasul intern al uC sa fie divizat cu 8 din varii considerente) Si...cam atat. Rezultatul: -U lfuse:w:0xce:m -U hfuse:w:0xdd:m -U efuse:w:0xf9:m Editat Octombrie 10, 2014 de nico_2010 Link spre comentariu
rlodina Postat Octombrie 10, 2014 Partajează Postat Octombrie 10, 2014 @nico_2010 - multumesc foarte mult - functioneaza (am setat fuse biti am scris hex-ul testat programatorul - e ok). Link spre comentariu
ciocead4 Postat Octombrie 10, 2014 Autor Partajează Postat Octombrie 10, 2014 Pentru majoritatea utilizatorilor acesta nu este un dezavantaj, insa eu am de gand sa fac niste modificari/incercari de a folosi acest programator pentru alte scopuri, de aceea ma ajuta sa am codul sursa... Apropo de acest topic mai vechi, faptul ca avem acces la codul sursa al programatorului mi-a permis in trecut sa scriu o mica extensie ce transforma programatorul intr-un mic monitor de uz general intr-un montaj cu AVR: [*]conectorul ISP al unui AVR se mapeaza la unele controllere peste circuit-ul de SPI al microcontroller-ului [*]pastrand programatorul conectat la ISP, o mica rutina de SPI (cateva linii de cod C) in codul aplicatiei trimite aceste valori la SPI [*]valorile sunt pasate prin programator si ajung la PC prin USB [*]orice terminal conectat la virtual COM-ul USB-ului afiseaza aceste valori [*]comunicatia este bidirectionala [*]nu este nevoie de nici o functionalitate suplimentara in programator, se folosesc doar functii suportate de protocolul oficial Atmel STK500v2 Codul scris de mine este total neslefuit, dar a mers ok pentru monitorizare de valori de la niste senzori (un fel de logger), daca cineva doreste sa dezvolte ideea sa posteze aici si gasim timpul sa finisam aplicatia. Principalul avantaj al metodei este ca nu mai este nevoie de alta interfata conectata la microcontroller (UART, I2C, USB) si ca programatorul contine deja circuitele conversiei semnal uC ,<-> PC (pe USB). Daniel Link spre comentariu
rlodina Postat Noiembrie 3, 2014 Partajează Postat Noiembrie 3, 2014 Problema setare fuse biti: avrdude: writing efuse (1 bytes) : .. ***failed. La primul programator construit totul e ok - cu al 2-lea am probleme: avrdude -c stk500v2 -p m88p -P /dev/cu.usbserial-AH02DK4C -U lfuse:w:0xce:m -U hfuse:w:0xdd:m -U efuse:w:0xf9:m avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.10s avrdude: Device signature = 0x1e930f avrdude: reading input file "0xce" avrdude: writing lfuse (1 bytes): Writing | ################################################## | 100% 0.03s avrdude: 1 bytes of lfuse written avrdude: verifying lfuse memory against 0xce: avrdude: load data lfuse data from input file 0xce: avrdude: input file 0xce contains 1 bytes avrdude: reading on-chip lfuse data: Reading | ################################################## | 100% 0.03s avrdude: verifying ... avrdude: 1 bytes of lfuse verified avrdude: reading input file "0xdd" avrdude: writing hfuse (1 bytes): Writing | ################################################## | 100% 0.03s avrdude: 1 bytes of hfuse written avrdude: verifying hfuse memory against 0xdd: avrdude: load data hfuse data from input file 0xdd: avrdude: input file 0xdd contains 1 bytes avrdude: reading on-chip hfuse data: Reading | ################################################## | 100% 0.03s avrdude: verifying ... avrdude: 1 bytes of hfuse verified avrdude: reading input file "0xf9" avrdude: writing efuse (1 bytes): Writing | | 0% 0.00s ***failed; Writing | ################################################## | 100% 0.26s avrdude: 1 bytes of efuse written avrdude: verifying efuse memory against 0xf9: avrdude: load data efuse data from input file 0xf9: avrdude: input file 0xf9 contains 1 bytes avrdude: reading on-chip efuse data: Reading | ################################################## | 100% 0.03s avrdude: verifying ... avrdude: verification error, first mismatch at byte 0x0000 0x01 != 0xf9 avrdude: verification error; content mismatch si : avrdude -c stk500v2 -p m88p -P /dev/cu.usbserial-AH02DK4C -v avrdude: Version 6.0.1, compiled on Dec 16 2013 at 17:26:24 Copyright © 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright © 2007-2009 Joerg Wunsch System wide configuration file is "/usr/local/CrossPack-AVR-20131216/etc/avrdude.conf" User configuration file is "/Users/rlodina/.avrduderc" User configuration file does not exist or is not a regular file, skipping Using Port : /dev/cu.usbserial-AH02DK4C Using Programmer : stk500v2 AVR Part : ATmega88P Chip Erase delay : 9000 us PAGEL : PD7 BS2 : PC2 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 65 20 4 0 no 512 4 0 3600 3600 0xff 0xff flash 65 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 efuse 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 1 0 0 0 0 0x00 0x00 signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 Programmer Type : STK500V2 Description : Atmel STK500 Version 2.x firmware Programmer Model: AVRISP Hardware Version: 2 Firmware Version Master : 2.10 Vtarget : 4.1 V SCK period : 0.1 us avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.10s avrdude: Device signature = 0x1e930f avrdude: safemode: lfuse reads as CE avrdude: safemode: hfuse reads as DD avrdude: safemode: efuse reads as 1 avrdude: safemode: lfuse reads as CE avrdude: safemode: hfuse reads as DD avrdude: safemode: efuse reads as 1 avrdude: safemode: Fuses OK (H:01, E:DD, L:CE) avrdude done. Thank you. avrdude: safemode: efuse changed! Was f9, and is now 1 Am reusit sa-l programez cu succes si programatorul functioneaza ok - in momentul actual nu stiu daca si cum influenteaza starea actuala a fuse biti-lor functionarea lui. O fi o problema cu MEGA88P-AU ? Ma gandesc sa mai comand 2 si sa-l inlocuiesc. Vreo idee ? Multumesc mult. Radu Link spre comentariu
rlodina Postat Decembrie 23, 2016 Partajează Postat Decembrie 23, 2016 Mai are cineva schema și codul de la acest programator ? Link spre comentariu
nico_2010 Postat Ianuarie 13, 2017 Partajează Postat Ianuarie 13, 2017 Ai aici tot ce-ti trebuie: http://tuxgraphics.org/common/src2/article07052/ Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum