Jump to content

roadrunner

Tehnium Azi
  • Content Count

    2,108
  • Joined

  • Last visited

  • Days Won

    49

roadrunner last won the day on May 19

roadrunner had the most liked content!

Community Reputation

112 Excellent

About roadrunner

  • Rank
    Tehnium Azi Expert
  • Birthday 12/20/1968

Profile Fields

  • City
    .

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. @prog am vazut si proiectul de mai sus in python pe avr-freaks si mi se pare mai bine facut decat cel cu Arduino UNO facut programator (care are multe gauri). Din pacate am avut numai 12 ore alocate pentru tot proiectul si am evitat sa cad experimente interminabile, am preferat sa dau 80 euro. Un alt pericol era sa ametesc fuse biti din cauza tool-urilor experimentale si sa trebuiasca sa inlocuiesc MCU pe placi. Cand faci lucrurile astea pentru salariu nu vrei sa-ti asumi riscuri inutile. RR
  2. Am atasat imaginea cu driverul - A3916 (link la datasheet https://www.allegromicro.com/~/media/Files/Datasheets/A3916-Datasheet.ashx) din pacate nu pot pune toata schema - ea apartine clientului acum. Nu are nimic special driverul asta si costa putin 0.90 Eur dar s-a potrivit exact cu ce trebuia sa faca. RR
  3. Salutare forum, Saptamana trecuta am incheiat un proiect (schema/pcb/software/asamblare/test) pentru un client care a contractat o lucrare cu noi. M-am hotarat sa impartasesc din experienta avuta poate ajuta pe cineva. 1. Proiectul relativ simplu un mcu 2 senzori magnetici hall (de pozitie) - MCU actioneza un motor de DC cu reductor (3V) sau un motor pas cu pas bipolar, motorul trebuie sa poata fi comandat in ambele sensuri. Totul trebuie sa fie ieftin si mic (de marimea unui timbru postal) - toata treaba se alimenteaza din baterii (3x AA) si trebuie sa aiba un curent de stanby sub 20uA. 2. Alegerea MCU - am avut doua optiuni - un Cortex M0 (STM32L0....) sau un Attiny de la AVR. din punct de vedere tehnic ambele capabile cu brio, curent mic in sleep, viteza de executie suficienta pretul - attiny a castigat detasat fiind cu 40% mai ieftin (aprox 0.60 Eur) fata de 0.98 Eur la STM32. interfata de programare attiny1616 (e o serie ceva mai noua de la AVR) are interfata de programare UPDI (o chestie noua) si STM32xxx are SWDIO. - nu auzisem de UPDI si chestia asta era un pic nasoala - iar SWDIO eram familiar cu tool-rilie cablurile etc. Tool-uri IDE, la attiny1616 aveam la dispozitie AtmelStudio (ce care nu l-am indragit niciodata) si un configurator online (web) care se numeste ATMEL Start de care nu auzisem pana nu am dat de el din intamplare intr-un tutorial pe Youtube. In concluzie toata logistica de a incepe un proiect cu tool-uri necunoscute devenea un risc. De partea celealta STM32 - tool de configurare MXCube, iar IDE Eclipse (AtollicStudio dar se pot folosii si altele si arata cam la fel) - conosteam tool-urile pe care le foloseam zilnic deci risc minim. Cablu de programare - aveam cateva cabluri MkiI prin sertare iar la STM32 avem cam pe fiecare birou cate unul deci nu erau probleme. - aici nu mi-am facut temele.... Ca sa facem viata mai frumoasa am ales attiny1616 (link la datasheet http://ww1.microchip.com/downloads/en/DeviceDoc/ATtiny3216_ATtiny1616-data-sheet-40001997B.pdf) chiar daca nu eram familiar cu tool-urile. Ca driver de motor am ales un circuit dedicat care poate actiona doua moroare de DC sau un motor pas cu pas (are doua punti H cu mosfet si circuite de protectie) nimic nou sub soare. Totul fain si frumos, fac schema, fac pcb, trimit pcb-urile la facut si comand piesele si un stencil de pasta. Pana aici totul super. Vin placile le dau la un tehnician din firma si le asambleaza fara probleme. Aici incepe calvarul. Interfata de programare UPDI (pe pare lumea o numeste sarcastic Undefined Programing Interface) find relativ noua, nu o foloseste multa lume si nici informatii nu sunt prea multe. Fac o paranteza - interfata foloseste pinul de RESET al mcu (si evident Vcc si Gnd) si singurul cablu de programare comercial este atmel ICE (e si debugger si merge si cu seria SAM) costa aprox 80 Euro. Alt cablu alterntiv (de hobby) era un poiect de pe net care folosea un Arduino UNO care programat cu un binar si devine programator. Din pacate proiectul respectiv era plin de "nu stim daca ..." si de "nu l-am testat cu...." si cel mai igrijorator era ca folosea o versiune modificata a lui AVR Dude care era testata cu un singur tip de Attiny. - era de fapt un hack neterminat. Viata e prea scurta (asta o simti de la 50 incolo) asa ca, comand cablul. Dupa doua zile soseste cablul, desfac cutia rosie pe care scrie Microchip si vad ca are un singur adaptor care din fericire are terminatie ISP (ca la vechiie cabluri Atmel) - adaptorul asta are niste conectori imposibili de mici si o panglica minuscula (probabil ca o sa reziste 1 luna maxim doua) - firicel de floare alabastra. Fac un adaptor cu 3 pini sa-l leg la placuta mea - deschid datasheet-ul de la cablu, unde invat ca panglica adaptor se numeste cumva pe prima pagina (exista mai multe tipuri pe care poti sa le comanzi si separat) - iar mai jos in documentatie se numaste cu totul diferit. Confuzie toatala, totusi ma ghidez dupa numarul de pini si gasesc o pagina unde e un tabel cu pinii - victorie. Victorie scurta ca pinul 1 din tabel nu se potriveste cu marcajul de pe plasticul conectorului - ci e taman in partea opusa (e un desen tampit in datasheet care clarifica asta) - deci va recomand sa tineti data sheet-ul aproape sa sa faceti o eticheta si s-o lipiti pe carcasa ca sa nu umblati cu datasheet-ul dupa voi. Fac adaptorul cu trei fire conectez placuta, pornesc AtmelStudio - recunoaste cablul, recunoaste MCU - gata, sunt pe cai mari. Fac o pauza. - in episodul doi a sa scriu despre experienta cu Atmel Start si AtmelStudio (care a fost in general buna) - asta in caz ca e cineva interesat si nu am adormit pe nimeni cu ce am scris mai sus. RR
  4. Se putea programa in C de la inceputurile AVR-urilor. (adica cu 10 ani inainte de Arduino) Eu am trecut de la 8051 la AVR in 1998 (adica imediat ce au aparut) - tin minte ca le cumparam de la ATMEL Romania care avea reprezentanta la Bucuresti. - si existau doua compilatoare comerciale de C (costau intre 1000$ si 2000$) - IAR si KEIL. si prin 1999 a aparut un compilator pe care mi-l puteam permite uVision (uVision a fost cumparat mai tarziu de Keil) Pe partea de compilatoare de C free era GNU compiler si proiectul open source AVR Freaks pe care s-a construit Arduino. - probabil ca multi utilizatori de pe forum au porinit-o la drum cu MCU de la Arduino (din cauza ca-s tineri) si au impresia ca Arduino a inventat ceva nou. - a simplificat ceva existent pana la limita prostiei. RR "Apoi un alt aspect important este biblioteca de librarii" - cred ca e suficient sa le spui biblioteci sau daca preferi in engleza - libraries (care e exact acelasi lucru) - bibliotecile agnostice (care nu tin cont de CPU) de exemplu cele matematice ale limbajului C au fost scrise in anii '70 cand noi Romanii eram ocupati cu "Cantarea Romaniei" si cantam prin scoli "Noi in anul 2000 cand nu vom mai fii copii..." cu cravata de pionieri la gat.
  5. Totul depinde de ce ti-ai propus pe termen lung. Daca nu ti-ai propus pe termen lung sa devii programator (adica sa faci cariera) atunci Arduino e bun - simplifica (adica ascunde) o gramada de detalii, ai multe exemple la indemana (superficiale si ele ce-i drept) si poti obtine repede rezultate (sub optimale sau mediocre). Arduino a fost creat pentru a preda mai usor studentilor ceva programare in timpul redus avut la dispozitie de profesori in universitati. Din pacate ascunzand multe detalii (cu rolul de a simplifica) au ascuns si detalii importante fara de care nu poti devenii programator adevarat. IDE-ul l-au simplificat atat de mult ca devenit un fel de editor de text prost, iar partea de adaugare a unei biblioteci si vizibilitatea bibliotecilor a fost praf ani la rand (acum e mai buna) Printre lucrurile bune a fost bootloder-ul care a eliminat necesitatea unui cablu de programare si a simplificat enorm procesul de scriere in flash. (booloader-ul l-a scris atmel si era folosit de cel putin 5 ani inainte de Arduino pe cam toate placile de dezvoltare de la atmel STK500 fiind cea mai cunoscuta) - din pacate nu ai nici o facilitate de debug tocmai din cauza lipsei cablului de programare, un compromis din nou, pentru ca nu exista programare fara debug. In concluzie Arduino iti va oferii un drum foarte scurt de la nimic la primul program care face un led sa se stinga/aprinda si iti va da iluzia ca esti foarte destept dar in realitate nu ai invatat mare lucru. Daca un candidat la un job serios de embedded software scrie pe CV ca stie sa programeze Arduino s-a descalificat singur. Atmel studio - ani la rand a fost o varza, acum e ceva mai bun da e genul de IDE care e prea incarcat cu tot felul de chestii specifice (la fel ca Mikroe si IDE-ul pentru PIC) care inseamna timp irosit ca le inveti. Avantajul fata de Arduino e ca ai facilitati de debug puternice si poti refolosii o parte din cunostiintele dobandite la alte IDE-uri pentru alte microcontrollere sau chiar la programare pentru PC. Un sfat personal pentru cei ce vor sa invete programare cu adevarat este sa decupleze partea de programare de cea de MCU. Sa invete programare pe un PC tastand exemple dintr-o carte buna de programare folosind un editor de text simplu si un make file. (un make file este un script care e un fel de reteta de compilare) dupa ce a inteles mecanismul compilator/asamblor/linker numai atunci sa se apuce de invatat despre microcontrollere si IDE, altfel va fi pierdut in mesaje de eroare care vor fi criptice si nu va stii de la ce i se trage de la compilator de la IDE sau de la MCU. Daca nu scrii de mana (tastand) programe nu vei invata programare. Tastand vei face greseli si te vei corecta pe parcurs si incet incet o sa faci toate greselile posibile si vei intelege ce se petrece. Daca copiezi exemple bune cu copy & paste ele se vor complila din prima si nu vei invata nimic. RR
  6. Dan, sa alegi un microcontoller nu e numai o chestiune de pret. (sau de moda) e o decizie de business care are multi prametrii si pretul e forate jos in lista de parametrii. Pretul nu mai relevant decat la proiecte foarte simple fara mult software. Cand calculezi partea economica la un proiect ai urmatoarele costuri cheltuieli initiale (in engleza. NRE - non recurring cost - traducere. costuri care nu se repeta) - costuri cu inginerii care fac proiectul, licente software, costul prototipurilor. (si variabila timp care se inmulteste cu toate acese costuri) costuri de productie - aici ai costul BOM-ului (al pieselor) costul de productie (asamblare) costul cu testarea. Costuri de vanzare - ai costuri cu ambalajul, etichete, transport - daca vinzi online ai costuri cu cei ce proceseaza comenzile iar daca vinzi cu distribuitori ai costul cu distribuitorii (ca adaosul lor apare ca un cost pentru tine) Revenind la alegerea unui MCU - aceasta are impact in urmatoarele puncte cheltuieli initiale - daca alegi un MCU care are o gramada de biblioteci software testate (software robust) si compilatoare bune atunci salvezi o gramada de timp (care sunt bani de salarii la ingineri) - si pui produsul pe piata mult mai repede. Costul BOM-ului : aici pretul MCU conteaza - dar atentie conteaza numai daca produci cantitati mari altfel e doar o falsa economie. Alegerea capsulei poate sa influenteze costurile PCB-ului (un pcb pentru o capsule BGA cu distanta 0.4mm intre pad-uri si via in pad-uri costa mai mult decat pentru o caspula TQFP). Un alt lucru important e sa stii cum se acorda reducerile de pret la cantitati si sa vezi daca poti obtine reducerile de pret dorite. Si cel mai important cat de repede poti obtine MCU-ul respectiv din momentul cand plasezi comanda. (degeaba folosesti un MCU ieftin care nu-l poti gasii in cantitati mari cand ai nevoie sa asamblezi) De cele mai multe ori algerea unui MCU intr-o firma e si o chestiune de traditie. - daca ai facut inca 20 de produse cu o anumita familie de MCU si inginerii sunt familiarizati cu arhitectura si cu tool-urile software, mai mult decat sigur ai scris si testat o gramada de software care o sa-l refolosesti atunci trebuie sa fii nebul sa schimbi microcontrollerul sau furnizorul. Microcontrollerele bazate pe ARM (cortex) fac mai usoara migratie de la un fabricant la altul pentru ca intern sunt destul de similare (diferentele sunt combinatia de periferice, capsula, viteza) iar tool-urile software sun aceleasi (merg cam la toate) Roadrunner PS - am scris o tona si n-am raspuns la intrebare. In colectia vara-toamna de microcontrolere pentru anul acesta se poarta ARM 32 de biti asortate cu compliatoare GCC (free) si cu nuante de TQFP 32 - 48 pini sau casule BGA pentru cei mai pretentiosi. Ca acessorii se pt folosii 2 quarz-uri unul pentru clk cpu iar al doilea pentru RTC-ul integrat. RR
  7. La partea de ADC (la MCU de 8 Biti ca la ele se refera topicul) AVR-ul si PIC-ul nu se diferentiaza prea tare, la fel de bune sau la fel de limitate depinde de unde privesti. Codul arata foarte similar la AVR - alegi viteza (care influenteaza precizia) - alegi modul de aliniere al rezultatului (left/right justified) - alegi canalul - si setezi bitul de start. Astepti bitul de conversie completa sau te duci mai departe daca lucrezi cu intreruperi. (culegi rezultatul in rutina de intrerupere) Din pacate ambele AVR si PIC 8 biti - sunt depasite din toate punctele de vedere performante/pret de MCU moderne (Cortex M0 M4 etc.) - Atmel s-a prins de treaba asta si a inceput acum 17 ani sa faca si MCU cu ARM (seria SAM) - aia de la PIC au ramas blocati in lumea lor, cu tool-uri slabe si compilatoare care mergeau numai pe PIC-uri. Cand Microchip si-au dat seama ca au ramas in urma au cumparat ATMEL (dupa ce au aruncat cu rahat unii in altii 25 de ani) de fapt 70% la suta din piata de MCU e cu ARM la ora actuala si microchip avea nevoie de o felie din piata. RR
  8. @gsabac In ce limbaj e scris codul de mai sus ca nu se potriveste cu sintaxa de C din manual (ANSI C) ? RR
  9. Mi-a sarit ceva in ochi uitandu-ma la codul C de mai sus adcVal = ADRESH; writebuf[5]= adcVal; adcVal = ADRESL; writebuf[6]= adcVal; nu era mai simplu ? writebuf[5]= ADRESH; writebuf[6]= ADRESL; RR
  10. Se pare ca Romania are cresterea buna in EU a industriei de electronica (procentual) - din cauza salariilor mici. articolul de unde provine informatia https://www.eenewseurope.com/news/how-electronics-jobs-will-be-created-across-europe?news_id=116280 Electronics employment across the 28 member states of the European Union stood at 2.4 million in 2018 or about 8 percent of total manufacturing employment. It had climbed quite sharply from 2.2 million in 2015. Going forward it is expected to continue growing more slowly at 0.2 percent per year over the period 2018 to 2023. The lessons of the past have been that most of the growth in recent years (2011 to 2018) has come in Eastern Europe – at more than 5 percent per annum in Romania and Latvia while it has decreased in the UK, Ireland, France, Italy and Sweden.
  11. @Ionut dioda 1n4007 este tot o singura dioda (si nu e noua - e din anii '70-'80) - pe o dioda cu siliciu (cum e si 1n4007) cade o tensiune de 0.6-0.7V la polarizarea directa daca conectezi cateva in serie obtii un multiplu de 0.7 V (de ex. 3 diode in serie 2.1V) http://www.mccsemi.com/up_pdf/1N4001-1N4007(DO-41).pdf RR
  12. erau diferente mari de calitate din cauza vitezei de transport mai mare 19cm/s fata de 4.75cm (parca) la Caseta Compact. de unde si latimea de banda mai mare a semnalului reprodus. Cand aveam 16 ani am primit un Comodore64 (calculator personal) care avea un casetofon al lui pentru a stoca programele pe banda magnetica. (pe care nu l-am primit din pacate) - modul de stocare era modularea in latime a bitilor. Durata de incarcare a unui program era de aprox 10 min. Exista si un mod "turbo" care reducea latimea impulsului care se inregistra (adica se dubla banda de frecvente a semnalului) - se reducea timpul de incarcare/ salvare la jumatate dar crestea rata rateurilor. Neavand casetofonul mi-am adaptat magnetofonul majak 205 din dotare si am modificat latimea impulsurilor (cu un mic program scris in limbaj de asamblare care l-am gasit intr-o revista dein Germania) - am obtinut viteza de 4 ori mai mare si fara erori (practic viteza de 19cm/s de transport a benzii m-a ajutat) Totusi cea mai de efect treaba era ca Majak-ul avea pauza electomagnetica care era adusa la un conector DIN si Comodore64 avea un semnal logic care alimenta casetofonul special expus pe conectorul din spate. Am adaugat un NPN si doua rezistente pe o placuta mica ce care am inglobat-o in cablu dintre comodore si Majak si cand tastam comanda "load" pornea Majak-ul automat si se oprea automat la terminarea incarcarii. Mergea struna si arata ca un calculator din misiunea Apollo. RR
  13. Mi-mi place topicul asta (cut tot cu paranteze si offtopic) - uneori un topic ca asta inflacareaza tinerii (in sensul bun) si-i face poate sa vada lucrurile mai pozitiv. Sunt destule exemple ca se pot face lucruri bune si in Romania umele ma amatoricesti altele mai profesionale (nu poti devenii profesionist daca nu ai fost amator) E interesant sum ies la iveala oameni si proiecte interesante si auzim puncte de vedere de la generatii diferite, sau auzim o gramada de scuze si cenusa pusa-n cap si gasim tot felul de vinovati la nereusitele noastre (altii decat noi) Ma enerveaza ca am primit mesaje pe privat de la niste incepatori care se tem sa puna intrebari pe forum ca sunt luati peste picior. (ma enerveaza ca sunt luati peste picior nu pentru ca -mi pun intrebari) Pe privat eu le pot da o opinie personala (nu neaparat obiectiva) si cred ca ar fi mai buna o opinie colectiva decat una singulara. Va propun sa le raspundendem mai mult la incepatori si sa lasam tot felul de mici lupte personale si crize de egoism. Daca nu avem timp sau consideram ca nu merita sa raspundem mai bine nu raspundem. Hai sa cantarim mai atent riscul ca un incepator sa renunte la ceva din cauza unei postari nasoale la adresa lui. RR PS - mi-am amintiti de pozele puse de Viobio cu auditia de amplificatoare - si m-am adus aminte de atmosfera de la Radioclubul (radioamatori) din Brasov - eu aveam zece ani si toti erau de la 20 in sus pana la 82 de ani (presedintele clubului) - anul 1978
  14. ADC - urile de la PIC si AVR sunt exact asa cum sunt descrise in datasheet-urile lor. Nu merg nici mai bine nici mai prost. Din proprie experienta pot spune ca e destul de usor de atins performanta descrisa in datasheet. (Amble au application notes ANxxx care descriu partea de hardware si de software ca sa obtii ce trebuie de la ele) RR
  15. si noi suntem mandrii de tine. (la modul cel mai serios) Amplif-urile astea cu tuburi sunt low quantitities - high margin. (si trebuie facute de mana cu multa rabdare si dragoste) exceptional! RR PS - m-am grabit sa postez ca aveam o urgenta aici la munca - vroiam sa mai adaug o chestie care eu zic ca e importanta: asta e industria de electronica de azi din Ro - firme mici si multe.
×
×
  • Create New...

Important Information

We use cookies and related technologies to improve your experience on this website to give you personalized content and ads, and to analyze the traffic and audience of your website. Before continuing to browse www.tehnium-azi.ro, please agree to: Terms of Use.