Programovanie AVR Mega32 pre SIO2SD. Programming AVR Mega32 for SIO2SD.

By Administrator at October 25, 2012 13:13
Filed Under: Atari

 

Ak robíte zo SIO2SD časom sa dostanete k tomu, že buď chcete napáliť novú verziu, alebo si chcete postaviť zariadenie podľa svojich predstáv. Jedna vec Vám bude ale stále chýbať a to je naprogramovanie procesoru AVR Mega32-16. Pokúsim sa to popísať krok za krokom aby ste sa vyvarovali nejakých nepríjemných vecí - poučil som sa sám na sebe.

 

Upozornenie:

Zásahy do zariadenia sú na vlastné riziko majiteľa zariadenia. Autor týchto stránok nenesie žiadnu zodpovednosť za škody  spôsobené používaním zariadení postavených podľa tu uverejnených schém alebo zobrazených úprav.

 

 

Stane sa trebárs to, že v nevhodný okamžik (počas čítania, alebo zápisu na SD kartu - nemalo by sa to stať - ale predsa len sa to stáva) vypnete počítač a keďže SIO2SD je napájané tak isto z počítača môže prísť k nedefinovanému zápisu a na displeji zostanú len štvorčeky, alebo presnejšie obdĺžničky a máte po funkčnom zariadení.


 

Potom je to stav na infarkt, alebo ak si viete poradiť pustíte sa do opravy. Vlastne oprava spočíva v novom naprogramovaní mikroprocesora. Samozrejme ako vravia Murphyho zákony stane sa to v absolútne najnevhodnejší okamih - môj prípad.

 

Môžete zháňať niekoho kto Vám to naprogramuje, alebo si pomôžete sami - o tejto možnosti to celé bude:


1 - pripravíte si potrebný súbor (firmware) na napálenie

2 - stiahnete si software PonyProg

3 - postavíte si vlastnoručne jednoduchý programátor pre program PonyProg, programátor používa LPT port - ktorý sa dnes už nevyužíva, ale ešte je k dispozícii

4 - potom už len naprogramujete procesor a je hotovo



Hneď ešte teraz upozorňujem, že existujú dve verzie SIO2SD - jedna pracuje s X-talom 7.32Mhz, druhá pracuje s X-talom 14.31818Mhz, tu popisujem tú druhú možnosť. Jediná vec je rozdielna v tom, že pri použití X-talu o nižšej frekvencii treba použiť iné nastavenie poistiek na napálenie do procesora. Pretože zlé nastavenie poistiek môže značiť "likvidáciu" procesora budem sa tým zaoberať podrobnejšie v ďalšom popise. Síce sa aj taký procesor dá zachrániť, ale treba k tomu ďalšie doplnky a nie je to celkom jednoduché a lacné - teda tá záchrana, treba ďalší hardware a často aj ďalší software - zase raz platí 3x skontroluj a až potom spúšťaj !


Poznámka: rozumejte pod tou likvidáciou že potom potrebujete mať k dispozícii špeciály prípravok, ktorý vymaže kompletne mikropocesor a nastaví ho do východzieho stavu kedy sa dá znova naprogramovať a toto sa určite doma nikde len tak nepovaľuje na polici.

 

1

Program pre napálenie si stiahneme z domovskej stránky projektu SIO2SD:

http://sio2sd.gucio.pl/wiki/SoftwareAVR_en

Sťahujeme najnovšiu binárnu verziu 3.1 RC2, (momentálne je to najnovšia verzia) pre istotu je to zdôraznené aj na obrázku o ktorý súbor sa presne jedná:


 

Súbor si po stiahnutí do počítača premenujte na AVR31RC2.bin, proste potrebujem kratší názov, pretože súbor musíme preložiť do hexa kódu a ten pôvodný názov mi pre ten účel nevyhovuje.


Na stránke (celkom dolu - je tam download) si stiahnete dosovskú verziu konvertora bin2hex, nebojte sa funguje aj pod WinXP:

http://www.ht-lab.com/freeutils/bin2hex/bin2hex.html


Potom nakopírujte do jedného adresára (u mňa je to adresár c:\test) súbory bin2hex.exe a náš premenovaný súbor AVR31RC2.bin a pomocou príkazu cmd skočte do dosového okna:



Napíšte nasledovný príkaz:



Potvrďte klávesou Enter, príde k prekladu a na obrazovke sa objaví nasledujúce:



Gratulujem, teraz v adresári pribudol aj súbor s názvom AVR31RC2.hex - tento súbor v ďalšom použijete na napálenie do mikroprocesora !

Dobre si ho odložte, aby ste ho v pravý čas našli a mali k dispozícii.

 

2

Nasleduje download programu PonyProg, ktorý potom prevádza vlastné naprogramovanie, stiahnete si ho tu:

http://www.lancos.com/ppwin95.html

Program si v pohode môžete nainštalovať dopredu na svoj počítač, použite poslednú najnovšiu verziu.

 

3

Teraz prichádza na radu stavba jednoduchého ISP programátora pre AVR procesor MEGA32. Je určený na programovanie cez LPT port. Treba skutočne len pár súčiastok - 4x 270Ω, konektor CANON25 pin samček, malý kúsok univerzálnej dosky a nejaké staré prepojovacie piny zo starého nepoužívaného počítača. Ja som použil 3x 2piny konektory z vyradeného PC. Napájanie vlastného procesora pri programovaní zabezpečuje napojenie cez USB konektor - používa sa len zem a +5V. Na naprogramovanie potrebujeme len pár vývodov, používajú sa len 4 vodiče mimo +5V a zeme. Jedná sa SCK, MOSI, RESET a MISO. Na už postavenej doske SIO2SD je pri pohľade zpredu zapojenie ISP konektora nasledovné - potom to už budeme prepájať presne podľa popísaných farieb:


 

Pretože samozrejme môžete mať aj inakšiu verziu vždy si najprv skontrolujte či naozaj požadované vývody sú na svojom mieste !


Teraz už máme predstavu kde ktorý signál ide a tak nasleduje vlastný programátor:



Tých súčiastok naozaj nie je veľa. Zostáva prepojiť medzi sebou programátor a dosku SIO2SD. Sami vidíte že do napájania som pridal ešte kondenzátor 50uF/10V a do cesty napájania je vradený vypínač. Tak isto som pridal aj LED-ku napájania - toto všetko ale nie je treba, je to na Vás či si tieto veci do zariadenia pridáte. Tu je vidieť kedy je pripojené napätie +5V. Upozorňujem že vypínač nie je nutný pri stavbe ! Na foto je vidieť aj použité dvojkábliky.


Dĺžka káblikov nepresahuje 10cm, na to pozor, je to dôležité pre správnu funkciu !

Samozrejme napájací káblik môže byť dlhší, tam to rolu nehrá.

 

 

 

 

Ak programujete priamo cez dosku SIO2SD choďte priamo na bod č.4, ak chcete programovať procesor mimo dosky čítajte aj nasledujúci odsek.

___________________________________________________________

Doplnok - nie je nutný ako SIO2SD programujeme priamo cez ISP konektor s procesorom priamo v doske SIO2SD!

Môžeme naprogramovať cez ISP konektor priamo procesor v doske SIO2SD, kto ale chce naprogramovať ďalší procesor, alebo ho potrebuje na iné účely si môže postaviť dodatočné zariadenie na programovanie AVR MEGA32 mimo dosky. Priznám sa, že X-tal 4Mhz som doma nemal, v pohode mi tam ale beží X-tal 4.194304 Mhz.


 

Potom programátor pre programovanie mimo dosky SIO2SD vyzerá takto:


 

Vložený mikroprocesor pripravený na programovanie:

 

________________________________________________________________________________

 

4

 

Pripojíme programátor na LPT port (doska SIO2SD je pripojená cez ISP rozhranie na programátor, káblik na pripojenie k ATARI je pre istotu úplne odpojený), zapneme jeho napájanie a spustíme software PonyProg.

Potvrdíme vstupnú hlášku cez OK, nezabudneme vypnúť zvuk - to erdžanie nie je veľmi príjemné:


 

potom nastavíme interface Setup, potvrďte:


 

Nastavte paralelný port podľa obrázku, ak máme pripojený programátor, pripojené napájanie na programátor a je zapojený mikroprocesor v doske môžeme kliknúť potom na Probe, ak je všetko v poriadku dostaneme potvrdenie o funkčnosti - pokračujeme ďalej.

 

 

Nastavíme PonyProg, po prvom štarte spustíme kalibráciu - stačí to previesť jeden krát, ale nesmiete na to zabudnúť !

 

 

Objaví sa nasledovná hláška, potvrďte:

 

 

po zbehnutí kalibrácie sa vypíše:

 

 

(Potom môžete cez Command spustiť Erase - mazanie, ale nemám pocit že to treba.)

 

Fajn, potom nastavte vpravo AVR micro a ATmega32, na to nebudem dávať ďalší obrázok.

Ako ďalší krok nahráte do PonyProg náš upravený program:

 

 

Nájdeme náš AVR31RC2.hex súbor a potvrdíme to kliknutím na Otvoriť:

 

 

Súbor sa natiahne do PonyProgu a nás čaká jeho napálenie.

 

 

Klikneme na zápis Flash, presne na označenú ikonu:

 

 

Objaví sa nasledujúce okno, pri jeho potvrdení (YES) sa program nahraje do AVR ATMEGA32:

 

 

Ak je všetko v poriadku začne zápis, po jeho ukončení prebehne verifikácia, ten obrázok vynechám.

 

 

A máme napálený software, pozor ešte nie je všetko za nami, musíme ešte nastaviť a napáliť poistky = fuses. Práve táto časť je "najošidnejšia" a najčastejšie sa poserká procesor práve pri tomto úkone. Takže pozorne čítajte ďalej. Ideme teda na Security and Configuration Bits:

 

 

Tu musíme nastaviť konfiguračné bity, fuses = poistky. Ak to tu poseriete, máte zarobené na malér. Naše konfiguračné bity sú nasledovné: Low=0x3F, High=0xC3 - je to pre hardware version 2.0. Vtip je v tom, že sa zapisuje ich negovaný tvar a preto zaškrtnuté políčka zodpovedajú =0, nezaškrtnuté políčka =1. Čiže je to presne naopak ako človek očakáva (pritom by stačilo poriadne čítať čo je tam napísané ...) a preto je aj toľko problémov pri napaľovaní. Na obrázku sú už fuses bity nastavené správne na napálenie. Prosím poriadne skontrolovať, ak sa uklepnete a dáte zapísať zlé nastavenie je už neskoro ! Zapíšete to pomocou Write, teda nie cez OK.

 

Pre tých ktorí si chcú pozrieť ako si správne nastaviť poistky (fuses) existuje výborná stránka, zadáte typ procesoru a potom na stránke len zadáte Low A High byte:

http://www.engbedded.com/fusecalc

 

 

((Je úplne rovnocenné či zapisujete cez ISP rozhranie priamo na dosku SIO2SD, alebo cez ten ďalší pripravok (popísaný nad bodom č.4)). No a to je vlastne všetko, ukočíte program PonyProg, vypnite napájanie programátora (alebo vytiahnite USB konektor) a prepojte naspäť všetky potrebné kábliky.

 

A nakoniec ešte foto - napaľovanie softu priamo do SIO2SD cez ISP konektor:


 

Odpojený programátor od LPT portu a pripojené napájanie cez USB - SIO2SD zase žije ...

 

 

Založte SD kartu, pripojte konektor k ATARI a veselo fičíte ako keby sa nič nestalo. Ospravedlňujem sa za nekonečne dlhý popis niektorých vecí, ale snažil som sa aby bol popis "blbuvzdorný". Ak to niekomu pomôže, tak budem spokojný - mne to pomohlo tiež.


S tými fuses som sa sekol aj ja, načo čítať  - že, tiež som si myslel že zaškrtnuté bude logicky znamenať =1, ale do pekla..., procesor v prdeli (v tom okamžiku) a kupoval som ďalší ...


Síce budem mať zariadenie na odblokovanie takýchto procesorov, ale dorazí mi to tuším za 2 týždne ... a toľko sa mi nechcelo čakať. Len tak mimochodom konštatujem, že je možné cez to vyššie popisované prídavné zariadenie s tým 4Mhz X-talom ( nad bodom č.4) programovať aj procesor AT MEGA16, ten sa síce na SIOSD nehodí, ale je to zadara a tak to tu pripomínam. Využitie je samosebou širšie, nielen pre naprogramovanie SIO2SD, ale to je už na Vás. Pretože som to potreboval špeciálne na atari, tak je to v tejto sekcii - síce trošku nespravodlivo, ale kedy je čo spravodlivé...

 

Odkaz na moje články o SIO2SD:

http://blog.3b2.sk/igi/post/ATARI-SIO2SD.aspx

http://blog.3b2.sk/igi/post/Modifikacia-SIO2SD-Modification-SIO2SD.aspx

____________________________________________________________________

07.11.2012

Tak už mám k dispozícii Fuse Fixer, dnes som naprogramoval 3 kusy doteraz zablokovaných procesorov AVR32 ktoré sa mi dostali do rúk, absolútne bez problémov to išlo odblokovať.

Fuse fixer dokáže odblokovať a znova uviesť do továrenského nastavenia z výroby procesoru nasledovné typy procesorov, robí sa to tzv. veľkonapäťovým programovaním (teda je to len 12V, ale tak sa to oficiálne volá):

 

ATmega16 ATtiny2313 ATmega8515 ATmega8 ATtiny26
ATmega16L ATtiny2313A ATmega8515L ATmega8A ATtiny26L
ATmega32 ATtiny2313V Atmega128**** ATmega8L ATtiny261
ATmega32L ATtiny4313 ATmega162 ATmega48 ATtiny261A
ATmega161 ATmega162V ATmega48A ATtiny261V
ATmega161L ATmega48V ATtiny461
ATmega164 ATmega48P ATtiny461A
ATmega164A ATmega48PA ATtiny461V
ATmega164P ATmega48PV ATtiny861
ATmega164V ATmega88 ATtiny861A
ATmega164PV ATmega88A ATtiny861V
ATmega164PA ATmega88P
ATmega324 ATmega88PA
ATmega324A ATmega88V
ATmega324P ATmega88PV
ATmega324PA ATmega164
ATmega324V ATmega164A
ATmega644 ATmega164P
ATmega644A ATmega164PA
ATmega644P ATmega168
ATmega644V ATmega168A
ATmega644PA ATmega168V
ATmega644PV ATmega168P
ATmega8535 ATmega168PA
ATmega8535L ATmega168PV
ATmega1284 ATmega328P
ATmega1284P ATmega328PV


Takže viem "oživiť" všetky tieto tu uvedené a  blbo naprogramované a bloknuté mikroprocesory.

Netýka sa to samozrejme poškodených mikroprocesorov.

__________________________________________________________________

Vaše hodnotenie, Rate post:

Comments

10/6/2018 3:51:42 PM #

trackback

Directory  Atari.

Directory  Atari.

Igi blog |

Comments are closed

Info o autorovi

Volám sa Igor Gramblička, bydlisko: Bratislava, Slovakia. Môj nick: Igi. Tento blog slúži na zobrazenie mojich záujmov - je to môj vlastný pohľad na veci, napriek  tomu dúfam že na mojich stránkach nájdete aj to čo hľadáte ...