Moc děkuju za článek. jak už tu v diskusi padlo, Vy ty články píšete s neuvěřitelnou kadencí, to není ani možné. Kde na to berete čas a sílu?
Jinak taky přidám svou trošku do mlýna. Když se objevilo první pico tak jsem si říkal, not bad. Dvě jádra M0, 2 Mega flashky a za ty prachy? Proč ne. A pak jsem objevil ve výčtu periferek tohle PIO a věděl jsem, že to prostě musím mít doma a zkusit si to. Když jsem se prokousával příkladama, mile mě překvapila možnost spojení s DMA a umožnit tak přenos dat přes PIO až na frekvenci jádra. To je supr. Ale první věc co sem s tím udělal bylo one-wire rozhraní pro DS18B20. Zrovna one-wire je takové zajímavé cvičení, protože se musí zajisit oboustraný přenos na jednom pinu. Doporučuju všem :). Na netu se dají najít i další zajímavé příklady. Jako třeba VGA nebo ethernet. PIO je prostě moc pěkná věc a chlapcům z Raspberry se tohle opravdu povedlo.
Co přesně se stalo? Zničil jsi čip, nebo jsi pouze pojistkama změnil režim ve kterým jsi s ním komunikoval a tudíž se ti už atmel neozval?
Mne se před časem povedlo zablokovat si dvě ATMega 168, když jsem se je pokoušel přepnout do režimu DebugWire. Muselo se vypnout ISP. Bohužel mi to nějak nefungovalo a nevím proč, a čip nekomunikoval. Možná proto že co mám programátor JTAG ICE2 nemám originál, ale asi to bude nějaký klon. Nakonec jsem přišel na to, že když ho připojím přes fyzický COM, tak pomocí AVR DUDE dokážu pojistky znovu nastavovat, přes USB to nešlo. Dneska už mám k dispozici i paralelní programátor (pro EPROM, FLASH, vybraný mikrořadiče) a v tom by to mělo jít vždycky - zatím jsem to nezkoušel.
Ta komunikace JTAG-ICE2 přes USB je taková "USBčková". Ve WIN XP to funguje bez problémů, na WIN 10 jsem odzkoušel všechny ovladače a nic. Přes COM to jde bezproblémů i na WIN 10 - USB kabel slouží jen jako napájení.
Jednodušší programátor JTAG-ICE-USB od Olimexu mi funguje bez problémů i ve WIN11, ISP MK2 jen ve WIN XP.
Povedlo se mi to dvakrát. Poprvé zdroj hodin, ale to šlo ještě zachránit připojením externího zdroje hodin. Po druhé to bylo něco co mi zablokovalo ISP, ale vyřešilo se to druhou megou a metodou "doktor/pacient". Jedna mega měla v sobě "doktor" program a k té poškozené se připojila přes paralelní programovací rozhranní. Megy měly možnost buď ISP nebo paralelně a oba režimy fungovaly out-of-the-box. No a vlastně dotkor nahrál nějaký jendoduchý hello-world example s defautlním nastavením pro pojistky a jelo se dál.
Chybne nastavené fuse bity zvyčajne šli s trochou snahy fixnúť. V jednoduchšom prípade stačilo priviesť externé hodiny s vhodnou f prípadne adekvátny kryštál, v komplikovanejšom sa pohrať s časovaním signálov pri programovaní. Ak aj človek nemá po ruke žiadne dielenské vybavenie, ide to v princípe vybaviť prepojením s inou tiny/mega s jednoúčelovým programom.
Akurát RSTDISBL (uvoľnenie RESET pinu pre GPIO) môže byť zapeklitejší prípad, tiež ale ide fixnúť paralelným HV programátorom. A potom SPIEN, ten ale myslím nejde vypnúť cez SPI.
jo ty ceny jsou divoké. Třeba 8051@33MHz s 1kB RAM (jo jeden kB, ne MB - a to je obsluha RAM v padesát jedničce strašně přes ruku) pořád stojí cca stovku. A od stejného výrobce čip s Cortexem M0+ nebo i vyšším a opravdu se stovkami kB RAM, je za stejnou cenu. To RP2040 vychází hodně dobře i v kombinaci v RPI Pico.
Ale přepdokládám, že pokud někdo udržuje design s 51, tak to prostě zaplatí...