Sari la conținut
ELFORUM - Forumul electronistilor

Povestea unui Atmega328P


Vizitator

Postări Recomandate

De obicei , iei aplicatia o pui in simulator , debugger o testezi  si vezi daca apar varfuri de tensiune si curent la schimbarea starilor . Foarte interesanta mi s-a parut partea asta despre cum ionizarea aparuta din diferite fenomene poate defecta jonctiunile tranzitorilor CMOS : Posted Image

Se creeaza perturbatii in reteaua atomica si apar cai de curent pe care nu le mai poate controla nimeni . Ca la biliardul din carciuma :

 

Posted Image

 

Sunt cateva capitole interesante in cartea asta : http://www.cse.yorku.ca/visor/resources/MSc_thesis_Henok.pdf

Editat de unuldinei
Link spre comentariu

Din experiențele mele cu controlere avr care au funcționat neîntrerupt ani de zile am sesizat o singură problemă. Coruperea datelor din eeprom. De aceea nici nu prea am încredere în memoria eeprom din mcu în general. Într-o aplicație unde se afla și un ds1307 am tot avut probleme cu eepromul și am scpăpat de ele ținînd datele în sram-ul din 1307.

Link spre comentariu

Eu am avut mai multe aplicatii cu microcontrollere AVR care nu au functionat pentru mult timp.

 

Am niste bancuri de test cu ATmega32 care au mers o perioada, dar acum, dupa cateva mii de cicluri de program (testez niste valve de siguranta) se blocheaza. Cam la toate am folosit eepromul pentru stocarea datelor si a parametrilor din meniu (nu date de program, deci eepromul se scrie doar cand se introduc parametrii PID si numarul de cicluri pe care trebuie sa le faca testul). In ultima vreme am avut probleme cu ATmega32 pentru niste bancuri test valve de siguranta, mi se blocau si nu mai citeau nici fuse.

Edit: la un moment dat reincepea sa mearga citirea fuse dar apoi iar nu mai mergea, schimbam micro.

 

Am folosit ATmega32 pentru ca am multe si le pun in soclu. De cate ori am ocazia, folosesc placi gata facute, de tipul Arduino Mini sau Nano (pentru ca le pot pune in soclu, Nano are serial-usb), programate in C. Pentru bancurile de test valve am folosit AVRPLC16v6 de la Microelektronica, deci exclud probleme de cablaj.

 

In ultima vreme am probleme cu AVR Studio, acum Atmel studio nu reusesc sa fac debug calumea, nu porneste de unde trebuie, se blocheaza interfata (am AVRISP mkii si 2 AvrDragon) si nu mai pot programa Uneori se blocheaza, schimb interfata, merge, iar se blocheaza. Am incercat sa schimb computerul, merge o perioada, apoi iar am probleme. Ultima oara am instalat pe un computer "curat", dupa ce am schimbat interfata Dragon cu AVRISPmkii, mi-a dat o eroare (ceva legat de un .exe care , cautat pe net, am descoperit ca e legat de Dragon). Problema este ca aceasta eroare ma impiedica sa mai programez controllerul cu celalalt programator.

 

Imi pare rau ca trebuie sa schimb, dupa investitii facute in placi si compilator, dar desi AVR aducea destule avantaje (cost redus, periferice, interfete relativ ieftine), in productie cam da probleme. Acum evaluez TMS320 seria Piccolo, dar va mai trece ceva timp pana cand voi avea un rezultat pe termen lung.

 

Nu pot afirma ca AVR sunt bune sau nu, dar instrumentele cu care am lucrat au inceput sa dea probleme si nu vreau sa imi bat capul cu aparate care se intorc inapoi.

 

Microcontrollere am cumparat si de la chinezi si de la distribuitori autorizati. Am remarcat diferente in modul de inscriptionare a chip-urilor, oricum probleme am avut mai degraba cu chip-urile "originale".

Editat de one
Link spre comentariu

Din experiențele mele cu controlere avr care au funcționat neîntrerupt ani de zile am sesizat o singură problemă. Coruperea datelor din eeprom. De aceea nici nu prea am încredere în memoria eeprom din mcu în general. Într-o aplicație unde se afla și un ds1307 am tot avut probleme cu eepromul și am scpăpat de ele ținînd datele în sram-ul din 1307.

Problema asta o poti avea in orice cofiguratie de controller/eeprom extern sau intern, posibil cateodata inclusiv din cauza softului. Io dupa ce m-am fript imi aleg eepromu sau controlleru in asa fel incat sa am spatiu cel putin dublu fata de cat am nevoie pentru salvat date, fac crc pe tot pachetu de date si il salvez in 2 zone diferite. La incarcare daca una din zone ii corupta si crc calculat difera ce cel memorat odata cu pachetu de date, trece la a2a zona si daca si aici am eroare incarca niste valori default cu care sa-mi functioneze aplicatia.

 

 

 

Link spre comentariu

Mda , cum zice colegul , nu e o problema legata de Atmel , se intalneste la orice microcontroler , microprocesor coruperea datelor din EEPROM , fie intern sau extern . Socurile de tensiune si regimul tranzitoriu la cuplarea si decuplarea alimentarii sunt principala cauza , atunci microcontrolerul poate executa comenzi aiurea .

Link spre comentariu

Așa este, la mine problemele erau cauzate de căderile parțiale/totale scurte/lungi a rețelei de 220. La oraș la bloc am avut problemel mai rar da am avut, inclusiv cu PIC, dar la țară la casă, rețeaua enel mai problematică, problemele s-au acutizat. Degeaba are el power on reset, brown out detector &stuff că dacă enelu face fițe atmelu e prins nepregătit. Am ajuns la concluzia că acolo unde se poate, soluția analogică este mai sigură.

Link spre comentariu

Problema este din schema de aplicatie, nu cautati vina in procesor.

 

Diferenta intre a construi ceva la nivelul de model sau prototip, care demonstreaza posibilitatea, si nivelul de serie mica  este foarte mare. Pentru functionare sigura trebuie sa iei foarte multe rezerve in toate conditiile de lucru.

Am proiectat si executat multe dispozitive si pot spune ca la nivelul de prototip apar cele mai multe probleme care trebuiesc rezolvate inainte de a trece la productia de serie, mult mai multe decat la nivelul de concept.

Unele din dispozitivele proiectate de mine au trebuit sa treaca probele de rezistenta la perturbatii in care pe alimentare am aplicat impulsuri de 4kV atat pe modul diferential cat si pe modul de mod comun. 

Un exemplu mai clar este faptul ca principiul si rolul motorului in patru timpi este mult mai simplu de explicat  decat principiul si rolul oricarei piese din cele cateva mii din compunerea lui . Daca sti cum functioneaza nu inseamna ca reusesti sa construiesti unul care si rezista in functionare.

Editat de Fulgerik
Link spre comentariu

Ca fapt divers, avand un montaj cu un PIC alimentat dintr-o sursa de 13,8V cu acumulator de 12V/7Ah si apoi redusa la 5V cu un 7805. Pe timp de furtuna mare cu traznete si multe zgomote, PIC-ul s-a oprit/blocat din functionare si a pus in HIGH o iesire. Avea ca intrari o tastatura 4x4 si cateva iesiri LED si un BUZZER. In miezul noptii BUZZER-ul a inceput sa sune si nu s-a mai aprit pana cand nu i-am oprit alimentarea PIC-ului. 

 

BUZER-ul ar fi trebuit sa sune daca alarma (ca asta facea PIC-ul) era armata in urma introducerii unui cod de 4 cifre.

 

Buimac cum eram :56 , mi-a luat ceva vreme pana sa inteleg de ce nu mai raspundea PIC-ul. Dupa realimentare a functionat bine mersi, ca de altfel si in ziua de azi. PIC-ul are cam 2 ani de functionare 24/7. Un clasic 16F628a.

 

Imi e greu de inteles ce s-a intamplat. N-are nici o legatura la impamantarea casei, fiind izolat dupa transformator si avand acel acumulator ca filtru.

in august am avut o experienta cu 3 pic-uri care a-u fost trasnite find alimentate doar din acc 12v7,5Ah(baterie cu plumb acid)reteaua decuplanduse de frica trasnetelor 

picurile au fost

16 f648 decedat nerecunoscut de clona pickit 2 

16f877 decedat idem 

su un smd care nu il retin 

toate au fost pe un incubator care era undeva langa casa intrun fel de remiza 

pe langa ele au fost decedate urmatoarele 

tranzistorii de comanda relee 

diodele de protectie relee 

senzori ds18b20 

senzor de umiditate 

lm7805 3 bucati 3 led din 9 cate erau pe incubator 

cu alte cuvinte tot ce a fost semiconductor sa dus 

 

si nu in ultimu rand fintele ce erau in interior in proportie de 80 % verificat fiecare ou (aici ceva nu e ok pentru ca ele erau in carcasa de tabla (cusca lui faradei))

incubatoru era in ziua 18 de cand era pus la eclozat deci mai avea 3 zile 

acu intrebarea mea cu toate ca aici se vorbeste de (atmega) ce sa putut intampla acolo?

precizez ca a fost un fulger undeva la 300-400 metri intrun gorun facut scobitorele 

Editat de pop_ady44
Link spre comentariu

hh

apoi tot puternic trebuie sa fi fost daca si ouale care au fost in asa zisa cusca a lui faradei au decedat in jurul senzorilor cam pe 25-30 cm  si cei ce a-u ramas a-u fost afectati la sistemul locomotor si o parte la sistemul de crestere (nu a-u crescut )

Editat de pop_ady44
Link spre comentariu

Asta n-are legatura cu ce discutam , din moment ce s-au ars toate piesele e clar ca a trecut pe acolo o parte din descarcarea fulgerului nu numai impulsul electromagnetic ... pentru asta numai paratraznetul poate oferi ceva protectie

Chiar si cu cusca lui Faraday facuta calumea daca sunt fire de alimentare care ies in exterior ma indoiesc ca ai protectie

Editat de Depanatoru
Link spre comentariu

multe multe idei..

eu subscriu cam la ce spunea One.

uC l-am cumparat de la TME , produs original. aplicatia nu folosea eeprom, pentru ca nu era necesar sa salvez date utilizator sau altceva.

era cea mai banala aplicatie posibila. sa citeasca un senzor (100k NTC) si sa faca un PWM pe IRL540N. Nu prea avea ce sa fie gresit la asa tip de aplicatie. totul era intr-o cutie de aluminiu...nu prea avea nici ce il deranja..Nici macar reteaua, pentru ca mergea la o baterie 12V7A

 

in fond, crapa ele piese de oricare..

asta este..

Editat de Vizitator
Link spre comentariu
  • 4 săptămâni mai târziu...

Salutare,

 

intre timp am descoperit ca problema de la bancul pentru valve nu era o problema hard, ci de software.

Era o eroare a mea, mai precis, in rutina de intrerupere, nu am dezactivat alte intreruperi, gandindu-ma ca este suficient timp pentru iesire inainte de aparitia alteia (aveam doar intrerupere de la timer in timpul functionarii).

In realitate, intrucat facea niste calcule mai complexe pentru PID, se intampla uneori sa apara o intrerupere inainte de terminarea celei in curs, dar asta se intampla rar, astfel incat dupa cateva mii de cicluri se ajungea in stack overflow.

Am dezactivat intreruperile pe durata exacutiei rutinei de intrerupere timer si problema a disparut....

Link spre comentariu

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 cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări