Vizitator dimmache Postat Octombrie 29, 2016 Partajează Postat Octombrie 29, 2016 1.Am descarcat MikroC for AVR 2.Am selectat Attiny45 4Mhz si am scris-- void main() { DDRB = 0xFF; // Set direction to be output do { PORTB = 0x00; // Turn OFF diodes on PORTB Delay_ms(1000); // 1 second delay PORTB = 0xFF; // Turn ON diodes on PORTB Delay_ms(1000); // 1 second delay } while(1); // Endless loop} De fapt am modifict programul LedBlinking 3. D:WinAvravrdude61>avrdude -c pickit2 -p t45avrdude: AVR device initialized and ready to accept instructionsReading | ################################################## | 100% 0.06savrdude: Device signature = 0x1e9206avrdude: safemode: Fuses OK (E:FF, H:DF, L:62)avrdude done. Thank you. HEXUL este in alt Foder. Cum ii indic asta ? Intentionez sa dau un PWM cu 25KHz cu cel putin 100 de valori pentru factorul de umplere. Ce sa aleg? PIC12F sau Attiny45 ? PIC-ul este destul de puternic la pini are 20mA sourced si sink. Conf acestui link pot sa dau 31Khz PWM cu Attiny85 care este cam acelasi lucru la PWM cu Attiny45-- http://www.re-innovation.co.uk/web12/index.php/en/blog-75/305-fast-pwm-on-attiny85 analogWrite(redled, 127); // Set it to 50% running at 31.2kHz Deci sa inteleg ca am 256 valori pentru duty cycle la 31KHz Dar se pare ca si PIC-ul are PWM comparabil--- http://www.micro-examples.com/public/microex-navig/doc/097-pwm-calculator.html Deci PIC12F683 ar fi comparabil la PWM cu Attiny ? PIC12f683 - o singura iesire PWM Attiny45 - doua iesire PWM independente PIC12f683 - 2K program Attiny45 - 4k program PIC12F683 - 20mA/pin Attiny45 - 40mA/pin D:WinAvravrdude61>avrdude -c pickit2 -p t45 -e -U flash:w:c:programavrprogram.hexavrdude: invalid file format 'programavrprogram.hex' in update specifieravrdude: error parsing update operation 'flash:w:c:programavrprogram.hex'D:WinAvravrdude61>avrdude -c pickit2 -p t45 -e -U boot:w:c:programavrprogram.hexavrdude: invalid file format 'programavrprogram.hex' in update specifieravrdude: error parsing update operation 'boot:w:c:programavrprogram.hex'D:WinAvravrdude61> D:WinAvravrdude61>avrdude -c pickit2 -p t45 -e -U boot:w:"c:programavrprogram.hex"avrdude: invalid file format 'programavrprogram.hex' in update specifieravrdude: error parsing update operation 'boot:w:c:programavrprogram.hex'D:WinAvravrdude61>avrdude -c pickit2 -p t45 -e -U flash:w:"c:programavrprogram.hex"avrdude: invalid file format 'programavrprogram.hex' in update specifieravrdude: error parsing update operation 'flash:w:c:programavrprogram.hex'D:WinAvravrdude61> HEX obtinut cu Mikro C AVR Link spre comentariu
Liviu M Postat Octombrie 29, 2016 Partajează Postat Octombrie 29, 2016 Pfui, ce varza. Incearca si tu sa-ti scrii mesajele pe probleme, ca in postul de mai sus ai vreo 3 probleme diferite amestecate unele peste altele. Link spre comentariu
Vizitator dimmache Postat Octombrie 30, 2016 Partajează Postat Octombrie 30, 2016 D:WinAvravrdude61>avrdude -c pickit2 -p t45 -e -U flash:w:"c:programavrprogram.hex":iavrdude: AVR device initialized and ready to accept instructionsReading | ################################################## | 100% 0.07savrdude: Device signature = 0x1e9206avrdude: erasing chipavrdude: reading input file "c:programavrprogram.hex"avrdude: writing flash (94 bytes):Writing | ################################################## | 100% 0.13savrdude: 94 bytes of flash writtenavrdude: verifying flash memory against c:programavrprogram.hex:avrdude: load data flash data from input file c:programavrprogram.hex:avrdude: input file c:programavrprogram.hex contains 94 bytesavrdude: reading on-chip flash data:Reading | ################################################## | 100% 0.12savrdude: verifying ...avrdude: 94 bytes of flash verifiedavrdude: safemode: Fuses OK (E:FF, H:DF, L:62)avrdude done. Thank you.D:WinAvravrdude61> -U <memtype>:r|w|v:<filename>[:format]: OK this one is the important command. Its the one that actually does the programming. The <memtype> is either flash or eeprom (or hfuse, lfuse or efuse for the chip configuration fuses, but we aren't going to mess with those). the r|w|v means you can use r (read) w (write) or v (verify) as the command. The <filename> is, well, the file that you want to write to or read from. and [:format] means theres an optional format flag. We will always be using "Intel Hex" format, so use i Link spre comentariu
nico_2010 Postat Noiembrie 1, 2016 Partajează Postat Noiembrie 1, 2016 Dupa 25 de postari care este concluzia? Ramaneti la programatoarele corespunzatoare fiecarui tip de microcontroller. Struto-camilele nu fac altceva decat sa induca confuzii si angoase celor care le folosesc (fie nu au intraga gama de produse, fie determina aparitia unor erori, explicabile sau nu, fie conduc la blocarea - remediabila - a microcontroller-ului s.a.m.d.). Pentru userul dimmache: inainte de a adresa toate intrebarile din postul #46, ar fi trebuit sa te familiarizezi cu modul de lucru al avrdude (pct. 3), sa nu incurci Arduino cu MikroC, sau alt limbaj de programare (vezi :" analogWrite(redled, 127); // Set it to 50% running at 31.2kHz") si sa citesti foile de catalog ale microcontroller-elor mentionate in aceeasi postare. Link spre comentariu
one Postat Noiembrie 2, 2016 Partajează Postat Noiembrie 2, 2016 (editat) N-as zice. Atmel este CISC si Microchip este RISC. Care programatori in asm sunt mai buni ? Pai pe RISC. Sau daca vreau sa fac un SMPS aleg un PIC La PIC30F SMPS am gasit setare Dead-time, canale care merg Push-Pull, Falf, Full Bridge, pe cand la Atmel nu am gasit asa ceva implemetat Hard. Sigur ca poti sa le implemetezi soft, dar rezultatul nu este acelasi. AVR CISC ? Probabil dincolo de un anumit numar de instructiuni nu le mai invata nimeni si programeaza in C. PIC 8 biti pleaca de la 35 instructiuni si probabil fiind atat de putine e usor sa programezi in asm dar oricum nu ajungi departe caci peste o anumita dimensiune a programului e usor sa faci erori si greu sa le gasesti. Daca unul se considera programator bun daca a invatat 35 instructiuni sa fie sanatos. AT90PWM - dead time, etc. Full-bridge necesita tot 2 iesiri de la microcontroller, ca si half-bridge. Un half-bridge merge push-pull de fapt sunt toate variatii pe aceeasi tema. Iesirea inversata si dead-time se pot face simplu cu o poarta logica si un circuit de intarziere RC, poti face asta si cu cel mai slab microcontroller, problema este ca ai nevoie de un ADC rapid si deci te orientezi spre alte microcontrollere, care merg la frecvente mari. Ai pus imaginea unui kit demonstrativ de la Microchip dar ai incercat sa faci un SMPS cu PIC ? Daca e sa analizam asa cu uite asta are asta si celalalt n-are atunci nici PIC nici AVR nu au un ADC pe 24biti de exemplu cum are de exemplu Aduc847 de la Analog Devices dar daca unul lucreaza intr-un domeniu precum SMPS sau semnale analogice, se specializeaza pe acele micro care sunt compatibile cu munca lui. Dupa ce platesti 2000€ pentru un compilator profesional (IAR de exemplu) 500€ pe o un emulator, atunci nu mai schimbi usor micro. Cei care fac placi electronice pentru microcentralele de apartament au nevoie de microcontrollere ieftine si cu cateva intrari analogice, de aceea PIC ar fi potrivite. (sau AVR) Cei care fac masini de cafea si au de citit cateva taste si comandat un display, valve si pompe, pot utiliza un AVR (sau PIC). Dar daca unul face drivere pentru motoare se va orienta usor spre microcontrollere precum ST32 unde sunt zeci de optiuni si va uita de PIC, dsPIC sau AVR care sunt prea lente pentru operatiile acestea. Editat Noiembrie 2, 2016 de one Link spre comentariu
Vizitator dimmache Postat Noiembrie 20, 2016 Partajează Postat Noiembrie 20, 2016 Dupa 25 de postari care este concluzia? Merge brici programarea Atmel cu Pickit2. Am dat si detaliile - daca cineva sa repete experimetrul. Sunt bucuros ca am un singur programator atat pentru Atmel cat si pentru PIC. Ai pus imaginea unui kit demonstrativ de la Microchip dar ai incercat sa faci un SMPS cu PIC ? Am realizat diverse montaje cu PIC30F3010 si IR2110 IRFZ44/48 (ridicator 12v) + tor Kaschke. Programe scrise in C cu pasaje in ASM. In decursul testelor montajului am simtit nevoia unui Attiny. Inca nu l-am testat cu acesta. "Daca voi considerati ca le-am incurcat. Citesc uimit cum mi se spune ca nu stiu ceva ce am stiut foarte bine cand am scris. Pentru userul dimmache: inainte de a adresa toate intrebarile din postul #46, ar fi trebuit sa te familiarizezi cu modul de lucru al avrdude (pct. 3), sa nu incurci Arduino cu MikroC, sau alt limbaj de programare (vezi :" analogWrite(redled, 127); // Set it to 50% running at 31.2kHz") " Am lucrat in Arduino 1.6.12 IDE de multe, multe ori. post #46 Cand am scris MikroC for AVR am dat ca exeplu in cod box codul corespunzator. "Ce este gresit aici. Nu am spus ca e MickroC. Este unul din putinele programe pe care le-am gasit. Conf acestui link pot sa dau 31Khz PWM cu Attiny85 care este cam acelasi lucru la PWM cu Attiny45-- http://www.re-innovation.co.uk/web12/index.php/en/blog-75/305-fast-pwm-on-attiny85 analogWrite(redled, 127); // Set it to 50% running at 31.2kHz" Deci sa inteleg ca am 256 valori pentru duty cycle la 31KHz E gresita concluzia ? "Conf acestiu link" Nu am spus vreu in MikroC sa scriu instructiunea asta. PS: Pe de alta parte aveti dreptate. In loc sa adresez atatea intrebari putem sa ma documetez mai mult. Asta, da este corect. PS2: concluzia intregului topic este la prima linie din code-box de la post #48 Am incercat sa pun mai multe intrebari in acelasi topic pentru nu deschide mai multe topicuri diferite. Intentia a fost buna. Daca am interpretat gresit regulamentul..... Link spre comentariu
one Postat Noiembrie 21, 2016 Partajează Postat Noiembrie 21, 2016 In MikroC eu am avut probleme la mai multe periferice, printre care si timeri, la AVR. Aproape intotdeauna eu setez registrii manual si nu utilizez functiile din libraria PWM de la MikroC. Astfel am control deplin asupra frecventei si a formei de unda. Nu cred ca are relevanta daca utilizezi PIC sau AVR, si oricum nu as solicita mai mult decat cativa mA pe pin... Link spre comentariu
Liviu M Postat Noiembrie 21, 2016 Partajează Postat Noiembrie 21, 2016 analogWrite() e comanda arduino pentru setat PWM si are unele limitari. Toate aceste lucruri se gasesc, asa cum e normal, in documentatie. Link spre comentariu
one Postat Noiembrie 21, 2016 Partajează Postat Noiembrie 21, 2016 Totusi daca colegul are nevoie de PWM la 31kHz ori va trebui sa modifice libraria PWM a Arduino, ori va trebui sa programeze cu altceva. Link spre comentariu
nico_2010 Postat Noiembrie 21, 2016 Partajează Postat Noiembrie 21, 2016 "Colegul", aka dimmache si-a manifestat curiozitatea cu privire la utilizarea unui singur programator (in speta PICKit2) pentru programarea microcontrollere-lor ATMEL. OK, a reusit. Restul alegatiilor nu au legatura cu subiectul si pot face - eventual - obiectul unor postari aici: http://www.elforum.info/topic/30035-probleme-de-incepatori/, in caz contrar le voi sterge fara avertisment. L.E.: sper ca dimmache sa nu fie acelasi cu hspinache (desi stilul de abordare seamana izbitor) 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