nico_2010 Postat Octombrie 12, 2015 Partajează Postat Octombrie 12, 2015 @spark: Foloseste Khazama. Eroarea poate proveni si dintr-o gresita conexiune intre programator si microcontroller. Reverifica conexiunile Link spre comentariu
diaconuliviu Postat Octombrie 21, 2015 Partajează Postat Octombrie 21, 2015 (editat) Khazama lucreaza la partea de "fusebit" si "Lockbit" invers decit altele, de ex. eXtremeBurner, PonyProg.. Adica la Pony "checked" este exact "Checked", adica activat adica '0'. La Khazama e exact matematic: "checked"='1'. Asa am blocat un Atmega162 cu khazama. Ca atare am fost nevoit sa imi fac si un Atmega Doctor. Editat Octombrie 21, 2015 de diaconuliviu Link spre comentariu
mariuss_suciu Postat Octombrie 23, 2015 Partajează Postat Octombrie 23, 2015 Salutare, Am inceput sa lucrez la o sursa la care voi folosi doua DAC-uri pentru control U si I, dar am ajuns intr-un punct in care m-am "blocat". Pentru reglajul tensiunii si curentului, voi folosi un Encoder, insa ca sa nu "bobinez" de la 0 la 4096 din degete, m-am folosit de butonul de pe Encoder pentru a "activa" reglajul de tip fine = 1x si coarse = 25x. Aceasta parte de cod functioneaza minunat (posturile #784, #782, etc), insa am ramas fara pini liberi la uC si mai am nevoie de un buton din care sa trec de pe reglajul tensiunii pe reglajul curentului, iar acum ma gandeam ce solutie ar fi ca in momentul in care apas scurt pe butonul de pe Encoder sa mi se activeze reglajul fine/coarse, iar daca tin apasat sa zic 2 secunde, sa treaca din reglaj tensiune in reglaj curent si invers. Pentru aceasta trecere voi folosi o variabila ce poate lua doua valori: 0 = reglaj tensiune, 1 = reglaj curent. Dati-mi va rog un punct de plecare pentru aceasta problema. Multumesc, Marius. edit: Am uitat poza. Butonul de pe Encoder este conectat la INT0 pe Atmega8 Ciao, Intre timp mi-am rezolvat problema pe care nu stiam de unde sa o apuc, am scris o varianta care functioneaza in simulare, presupun ca si in realitate. Programul este cel de mai jos, cu explicatii pe care eu asa le-am inteles, daca e ceva gresit, va rog sa ma corectati : $regfile = "m8def.dat"$crystal = 8000000$hwstack = 40$swstack = 16$framesize = 32Waitms 200Dim A As Word 'la fiecare overflow al lui timer0 se va incrementa variabila ADim B As Byte ' B se va incrementa la fiecare secunda cu 1;Dim C As Bit ' folosit pentru setat Tensiunea sau Curentul in aplicatia pe care o dezvolt;Dim D As Bit ' folosir pentru setat Coarse si Fine .Config Portd.4 = Output 'PORTD.4 si PORTD.5 - monitorizez fizic cele doua variabile cu niste "leduri"Config Portd.5 = OutputConfig Pind.2 = Input ' butonul de pe EncoderConfig Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0Config Lcd = 16 * 2Config Timer0 = Timer , Prescale = 64On Timer0 Timer0_isrEnable InterruptsEnable Timer0Stop Timer0DoIf Pind.2 = 0 Then ' apas butonul A = 0 'resetez cele doua variabile B = 0 Start Timer0 'pornesc timer0 sa numere Do Loop Until Pind.2 = 1 'ramane in bucla pana las butonul. Stop Timer0 'opresc timer0 If B > 0 Then 'verific daca a trecut mai mult de 1 secunda Toggle C 'schimb starea U sau I Else Toggle D 'altfel schimb starea Fine / Coarse End If Portd.4 = C 'aprind ledurile Portd.5 = DEnd IfLocate 1 , 1 'afisez pe display "lucrarea"Lcd "B: " ; BLocate 2 , 1Lcd "c: " ; CLocate 2 , 8Lcd "d: " ; DLoopTimer0_isr:Incr A 'incrementez A la fiecare overflow :If A >= 490 Then A = 0 Incr BEnd IfReturn'( Pentru calculul timpului pana face overflow se foloseste: ( 2^n - 1 ) * Prescaler / F_osc => 255 * 64 / 8000000 = 0.00204 secunde , adica 2.04ms pentru overflow. TIMER0 este pe 8 biti (vezi datasheet) , de aici reiasa 2^n-1 = 255 Prescaler se seteaza la inceputul programului F_osc = > frecventa la care lucreaza microcontrolerul. Daca face overflow la 2.04ms, atunci 1 secunda / 2.04ms = 490.196 ( A>=490 ) Dupa ce TIMER0 face de 490 de ori overflow, putem incrementa variabila B cu 1 , asta inseamna ca a trecut aproximativ 1 secunda: 0.9996 secunde in calcul fix.') Link spre comentariu
keenox Postat Octombrie 24, 2015 Partajează Postat Octombrie 24, 2015 @mariuss_suciu: Pentru problema cu pinii, pe langa cea propusa de tine, care e f buna, ai mai putea folosi si un registru paralel serial (ex. 17xx165). Inseriind mai multe registre, poti teoretic citi un nr nelimitat de inputuri pe un singur pin.Ai un tutorial aici: http://extremeelectronics.co.in/avr-tutorials/using-shift-registers-with-avr-micro-avr-tutorial/Doar l-am frunzarit. Daca ai nevoie de mai multe detalii, iti voi raspunde.@spark: Cum ai conectat uC la usbASP? Cat de lung e cablul?Pe langa problema cu conexiunile, de care au zis colegii, poate fi si viteza prea mare. Incearca o viteza mai mica (optiunea -B).A mai fost programat uC in cauza sau e virgin? Daca da, ai umblat la fusebits? Link spre comentariu
spark Postat Octombrie 25, 2015 Partajează Postat Octombrie 25, 2015 cablu nu prea a contat , am confectionat un "racord" prelungitor din cablu panglica cu conectori molex 2x5pini __lungimea este de 40cm setare bitclock care este default 1,5MHz la 750KHz sau 375KHz iar la fusebiti setarea se face in functie de programul folosit la scriere (poate fi si default) inca invat si eu , pentru mine este o lume noua uC , sunt fascinat , dealtfel pe baietii care scriu softuri ii consider zei am acasa un programator (fratemeu) dar nu te poti intelege cu el , sunt cam ciudati un pic si prietenii lui cam la fel ____PS___a programat cineva cu BitBurner cum merge cu usbasp ?????? Link spre comentariu
keenox Postat Octombrie 25, 2015 Partajează Postat Octombrie 25, 2015 (editat) @spark: Si eu sunt programator . Pana la urma ai rezolvat problema? Daca da, cum? Nu inteleg din postul tau.Cablul ala de 40 cm e cam lung. La programatoare, avand multe fire neecranate si frecventa maricica, sunt destul de predispuse la interferente. Editat Octombrie 25, 2015 de keenox Link spre comentariu
MifTy Postat Octombrie 31, 2015 Partajează Postat Octombrie 31, 2015 ar fi o idee să foloseşti un prelungitor usb în care să pui usb-asp-ul ăla.usb-ul e destul de imun la paraziţi, şi cu un pic de baftă, cablul e ecranat, aşa că din partea conexiunii usbasp-pc nu-ţi mai faci griji. aşa poţi folosi un cablu conector mai mic între usbasp-montaj, lucru care o să te scutească de sf-urile care apar din cauza cablurilor prea lungi... avrdude.exe: initialization failed, rc=-1 din experienţa mea, avrdude dă eroarea aia când nu vede mcu-ul deloc, ceea ce înseamnă 2 lucruri: - conexiuni hardware greşite. pot fi orice, de la inversarea a 2 fire la lipsa continuităţii între 2 puncte oarecare din tot ansamblul pc-usbasp-montaj. de asemenea, de asemenea, poate fi vorba de lipsa tensiunii de alimentare de 5 volţi. - avr blocat. asta dacă e recuperat, sau a mai fost scris, şi a fost folosit într-un montaj care folosea cuarţ şi o frecvenţă de tact diferită de cea "factory default": oscilator intern de 1 mhz. mai nou, de 8... reverifică cu atenţie conexiunile, asigură-te că ai 5 volţi la pinul de alimentare al mcu, şi dacă e nou şi încă n-ai umblat la fusebiţi ar trebui să-ţi meargă. Link spre comentariu
kinderu56 Postat Ianuarie 4, 2016 Partajează Postat Ianuarie 4, 2016 salut cum transform si eu fisiere de tip c sau h file in hex atasez fisierul poate ma puteti ajuta source.zip okoko.pdf Link spre comentariu
ratza Postat Ianuarie 5, 2016 Partajează Postat Ianuarie 5, 2016 Ai nevoie de compilator. Ce ai tu acolo se poate compila cu Atmel Studio şi avr-gcc. Link spre comentariu
kinderu56 Postat Ianuarie 5, 2016 Partajează Postat Ianuarie 5, 2016 am atmel studio am incercat si nu merge Link spre comentariu
ratza Postat Ianuarie 5, 2016 Partajează Postat Ianuarie 5, 2016 Ai nevoie şi de avr-gcc. Link spre comentariu
kinderu56 Postat Ianuarie 6, 2016 Partajează Postat Ianuarie 6, 2016 am instalat WinAVR-20100110 si nu merge Link spre comentariu
nico_2010 Postat Ianuarie 6, 2016 Partajează Postat Ianuarie 6, 2016 In atasament ai tot ce iti trebuie. Spune daca functioneaza, te rog. bike.zip Link spre comentariu
ratza Postat Ianuarie 6, 2016 Partajează Postat Ianuarie 6, 2016 E făcut pentru AVR Studio 4 şi WinAVR-20071221. Dacă ai Atmel Studio 6, poţi importa proiectul fără problerme (File - Import - AVR Studio 4 Project ...). http://sourceforge.net/projects/winavr/files/WinAVR/20071221/ Ai în ataşament tot ce-ţi trebuie, fişierul hex e în folderul default. Link spre comentariu
kinderu56 Postat Ianuarie 6, 2016 Partajează Postat Ianuarie 6, 2016 mersi am reusit si eu sa fac cum ai spus dar nu gasesc cum sa setez fuse biti 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