ATmega328P vs PB a samovolny prepis flash a EE pri zarus.clk

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
RayeR
Příspěvky: 1167
Registrován: 02 srp 2009, 02:00
Bydliště: Praha
Kontaktovat uživatele:

ATmega328P vs PB a samovolny prepis flash a EE pri zarus.clk

#1 Příspěvek od RayeR »

Ty Atmely me neprestavaji prekvapovat. Zvazuju v jednom projektu nahradu ATmega328P za novejsi ATmega328PB (zejmena kvuli cene a dobe dodani, nepotrebuju nove funkce), dostal sem 3ks vzorku (primo od MCP, zadna Cina) na otestovani a rikal sem si, ze vyzkousim i novou funkci CFD (STMka to uz maji davno). Tak sem zapnul prislusny fuse bit a pri nastaveni XFDIF flagu sem si nahodil nejaky cyklicky ladici vypis na UART. Pustil sem program a pinzetou parkrat sahnul na xtal-in nohu abych navodil vypadek hodin. V terminalu na me vypadl nejaky chaos znaku a konec, procesor se uz nenahodil, prepnul sem baudrate na nizsi rychlost odpovidajici safe mode RC osc. a proste nic. Tak sem ho resetnul a k memu prekvapeni program skocil do bootloaderu protoze doslo k chybe CRC hlavniho programu. Tak jsem to preprogramoval a zkusil znovu a zase po par sahnuti na xtal jsem program dokoanle zadrel. Dokonce mi nedalo moc prace poskodit i bootloader. Kdyz sem si vytahl dump Flash a EE, byly tam evidentne prepsane casti app i boot. dokonce i v EEPROM byly nake nahodne Byte, ktere se tam nemely normalne jak zapsat. No a nejlepsi je, ze kdyz sem ten CFD fuse vypnul, tak se to chovalo dost podobne, neustale dochazelo k rozbiti flash. Sahnul jsem po stare desce s MCU ATmega328P a tam k nicemu takovemu nedochazi, po dotyku xtal-in se nanejvys zastavi nebo resetuje program, ale zadny prepis. Nesetkal se s tim nekdo u novo rady PB?

Jeste doplnim, napajeni je 3.3V, xtal 8MHz a zkousel sem i zapnout brownout 2.7V. Behem normalniho chodu programu se do flash ani EE nezapisuje.

UPDATE: podrobnejsi info sem hodil na web http://rayer.g6.cz/programm/programm.ht ... APB_XO_BUG
Naposledy upravil(a) RayeR dne 29 říj 2019, 17:24, celkem upraveno 1 x.

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#2 Příspěvek od FHonza »

Zkoušel jsem to na desce ATmega328PB Xplained Mini (kterou jsem dostal). Ale měl jsem jako zdroj hodin "Ext. clock", takže jsem výpadek simuloval mnohem míň drasticky. Fungovalo to podle popisu, prostě se nahodil příslušný bit v XFDCSR registru. Program byl nekonečná smyčka, při nastaveném bitu se rozsvítila LEDka, co je na desce. Přes přerušení jsem to nezkoušel. S tím UARTem mě napadá, jestli při běhu na interní oscilátor už nebyla příliš velká chyba generátoru hodin (UBRR).

Závěr byl "hmm, funguje to, dobrý". Dál jsem to nezkoumal. Někde má Microchip ke stažení "App Notes", podle kterého jsem to zkoušel.

Uživatelský avatar
RayeR
Příspěvky: 1167
Registrován: 02 srp 2009, 02:00
Bydliště: Praha
Kontaktovat uživatele:

#3 Příspěvek od RayeR »

A na te desce neni mozne nahodou pripajet krystal? Nastaveni fusi pro ext. xtal sem nemenil. To ze v safe mode ujede bitova rychlost bych bral, jenze to by to na ten seriak porad blilo aspon nake paznaky, ale ono se to umlcelo uplne. A hlavne ta flashka, mi proste neda spat...

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#4 Příspěvek od FHonza »

To už bohužel nezkusím, neb jsem z toho vyrobil levný debugger:
http://www.elektromys.eu/clanky/avr_deb ... lanek.html

U Farnella deska stojí kolem 250,-

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#5 Příspěvek od ZdenekHQ »

Tak ho ještě zkus zamknout a tímto postupem odemknout (klidně s chybou), zveřejni to a nebudeš se stačit divit. :D
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

Uživatelský avatar
RayeR
Příspěvky: 1167
Registrován: 02 srp 2009, 02:00
Bydliště: Praha
Kontaktovat uživatele:

#6 Příspěvek od RayeR »

Ha, kdyz do flashky nenapalim bootloader obsahujici SPM instrukci, tak to vypada, ze se fleska nezkorupti. Ale porad pri tuknuti pinzetou na xin program ruzne bloudi, takze muze vykonat nejakou osklivou vec, treba nahodny zapis do EEPROM - to se mi ted take povedlo (delam prubezne dumpy pameti). Vypada to, jako kdyby pri tom dotyku nasledoval JMP na uplne nahodnou adresu programu...

UPDATE: Tak ten CFD nejak funguje, kdyz se pinzetou napred dotknu zeme a pak az Xin, tak se to spravne prepne na RC 1MHz, ale kdyz jako prvni sahnu na xin a naindukuju ruseni, tak je to v prdeli... Tak to si muzou cely CFD nacpat...

Uživatelský avatar
Crifodo
Příspěvky: 14471
Registrován: 11 říj 2005, 02:00

#7 Příspěvek od Crifodo »

RayeR píše:Tak to si muzou cely CFD nacpat...
https://forum.arduino.cc/index.php?topic=360407.15
" imo this chip is a piece of crap."

Když Atmela požral Microchip, jaký by měl dál důvod si udržovat schizofrenní sortiment.

Uživatelský avatar
FHonza
Příspěvky: 1443
Registrován: 20 lis 2012, 01:00
Bydliště: Praha

#8 Příspěvek od FHonza »

No myslím že s výpadkem hodin při použití krystalu se moc nepočítá. Na rozdíl od externího zdroje.
Crifodo píše: Když Atmela požral Microchip, jaký by měl dál důvod si udržovat schizofrenní sortiment.
Řekl bych že důvodem bude velká uživatelská (nebo jak to napsat) základna. Naopak mi přijde, že sérii AVR dál rozšiřuje. Např. Attiny416 a nový Event systém a CCL.

Trochu smutný je pohled na Errata, není tam toho zas tak málo.

Uživatelský avatar
Mahoney
Příspěvky: 347
Registrován: 26 říj 2019, 02:00

#9 Příspěvek od Mahoney »

Otázka je, co se děje v Microchipu poslední dobou... Já jsem odjakživa spíš PICař (nic proti ničemu ostatnímu), s PICy jsem začínal a můžu říct, že starší typy bývaly daleko víc odladěné než jsou ty nové - například pohled na Errata sheet takového PIC18F26K22 nebo PIC24FJ64GA002 je také poměrně dosti dlouhé čtení. Ale nestěžujme si, snad se zas polepší a vychytají to... nezbývá než doufat.

Uživatelský avatar
RayeR
Příspěvky: 1167
Registrován: 02 srp 2009, 02:00
Bydliště: Praha
Kontaktovat uživatele:

#10 Příspěvek od RayeR »

Crifodo píše: https://forum.arduino.cc/index.php?topic=360407.15
" imo this chip is a piece of crap."

Když Atmela požral Microchip, jaký by měl dál důvod si udržovat schizofrenní sortiment.
No potes, tak oni to maj jebnuty uz tak dlouho a nevydali zadnou opravenou revizi a v errata taky nic. A to je prosim automotive grade cip (ta verze, kterou testuju). Na tom foru resi spis full swing oscillator (koukam, ze uz snad zadny novy AVR FSO nema), na starsi P verzi se mi to chovalo mravne i bez FSO, proste se program jen zastavil, ale zadny nahodny skok. Poslal sem MCP bugreport, ale zatim se pouze dohaduju s nejakym Indem, abych mu vysvetlil, co po nem vlastne chci, je to marny, je to marny...

Jinak mi ale nepripada, ze by se MCP snazil zabit radu AVR, naopak vydali pomerne hodne novych AVRek od tiny po megy s novyma funkcema. Ale co je to na plat, kdyz se clovek nemuze spolehnout na tak zakladni vec, jako oscilator. Treba STM32 ma proti Atmelu errata docela nabity, ale zas tam nejsou takovyhle fundamentlani faily...

Uživatelský avatar
RayeR
Příspěvky: 1167
Registrován: 02 srp 2009, 02:00
Bydliště: Praha
Kontaktovat uživatele:

#11 Příspěvek od RayeR »

Hm, tak zatim jedine, na co se zmohla indicka podpora MCP je citace z DS:

“Crystal Oscillator is a low-power oscillator, with reduced voltage swing on the XTAL2 output. It gives the lowest power consumption, but is not capable of driving other clock inputs, and maybe more susceptible to noise in noisy environments.”
Hence, Low-Power Crystal Oscillator is not advisable for noisy environments.

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#12 Příspěvek od ZdenekHQ »

U jiného obvodu používám uzemnění krystalu přes jumper, protože je to jediná metoda,jak ho na chvilku zastavit, aby mně nekecal do programování periferní EEPROM (nemá reset), ale určitě se nikdy nestalo, že by program zabloudil. Kde skončí, tam pokračuje. A je sakra low-power.
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

Uživatelský avatar
RayeR
Příspěvky: 1167
Registrován: 02 srp 2009, 02:00
Bydliště: Praha
Kontaktovat uživatele:

#13 Příspěvek od RayeR »

Ano, kdyz se XTAL1 setrne prizemni, tak k problemu nedojde. Zkus to ale jentak potukat pinzetou, sroubovackem nebo tak necim. Me se to tu deje docela opakovatelne.

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#14 Příspěvek od ZdenekHQ »

Jo, podobný pokusy jsem zkoušel, protože chlap tvrdil, že mu SW blbne, až jsem zjistil, že blbne on a páchá v SW příšerný věci. Od té doby svůj SW přede mnou víceméně tají a jen o něm vypráví... :D
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

Uživatelský avatar
RayeR
Příspěvky: 1167
Registrován: 02 srp 2009, 02:00
Bydliště: Praha
Kontaktovat uživatele:

#15 Příspěvek od RayeR »

To je mozne, ale v pripade, ze ti je procak sam schopen nahodne skocit na SPM instrukci, tak to nijak softwarove neosetris. Leda ze tam SPM nedas a prides tak ale o moznost prehrani SW bootloaderem...
Za sebe jsem radsi navrh na zmenu MCU zamitl a radsi ozelime ten delsi dodaci cas...

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“