Aktuelno : Kako oživjeti "umrli" Atmel |
|
|
Mikrokontroleri firme Atmel , su u
principu jeftiniji za snagu koju pružaju i lako dostupni. Pod
elektronikom sam ipak savjetovao početak sa PIC-ovima. Razlog su
Atmelovi FUSES bitovi za osnovne postavke kontrolera. Ovdje ću pokušati
pojasniti problem i kako ga pokušati riješiti, iz vlastitog iskustava. Većina amatera , kao i ja, koristi jednostavne serijske programatore i "Ponyprog". Primjer; recimo kontroleri ATmega8 (16 ili32), vrlo moćni za jednog amatera. Imaju sve što vam srce poželi , osim MCU-a za USB komunikaciu, a i što će vam to za početničke korake. Standardno dolaze sa postavkama FUSES da kontroler koristi interni oscilator od 1MHz , a vi bi željeli koristiti vanjski recimo na 8 MHz. Sad počinje koma, čitate DataSheet od kontrolera, lijepo i opširno. FUSES bitova ima ih16, plus Loock bitovi. Za sad neću ići u širinu, većinu toga ,uz malo Engleskog, pročitae u Datasheet-u. Najčešće greške se događaju što se totalno zbunite u;; "programed = 0" , "unprogramed = 1" kod "Ponyprog", sve nešto naopako prema logici, ja osobno još uvijek moram dobro razmisliti dali da negdje stavim "kvačicu" ili ne kod FUSES-a u Ponyprog. Pravilo;; u Datasheet 0 u Pnyprog "kvačica" i obratno . Prva pogreška i sljedeće 'upucavanje' programa ne ide , više ne pozna kontroler. Samo vam probije znoj sa čela, što sad? Nemate više pojma kako ste postavili FUSES bitove i gdje ste pogriješili. Sjetite se silnih sati i truda da napravite elektronički dio, te novaca koliko ste odvojili za svoj projekat.. Savijet; Najčešće ste pogrešno postavili CKSELx bitove , i uputili ga da koristi, tko zna koji oscilator i frekvenciju, samo ne vaš koji želite. Sad, kad se malo smirite od šoka , obrišite suze, i metodom pokušaja i promašaja mu morate ponuditi sve opcije oscilatora koje podržava. Nema ih puno!! Na internom nije sigurno, jer bi onda radio. Ostaju Eksterni. Ako je ostao na RC-oscilatoru , pokušajte preko otpornika od 4,7 Koma dovesti 5V na pin-13 (XTAL1 - ATmega16) , kondenzator mu ne treba, jer ima svoj unutarnji. FUSES postavite na početne tvorničke vrijednosti (piše u Datasheet) i pokušajte zapucati to u kontroler. Ako nakon toga možete očitati memoriju , super, riješili ste problem , ako ne, idemo dalje ,, Treba sad pokušati sa vanjskim oscilatorom (1 do 4 MHz) opet na pin-13 (za ATmega16). Oscilator ili napravite od jednog tranzictora sa nekim kristalom ili ako imate gotov iz nekog TV-a ili videa, prizmatičnog metalnog kučišta sa četiri nožice. Slika sa strane sa oznakama pinova. Zatim upucavanje početnih FUSES postavki kao i kod RC-oscilator, uz molitvu. Ako ni ovo ne pomogne , onda je veći problem, jer ste vjerojatno 'napucali' Loock bit (zaključavanje od nepoželjnog čitanja) koji više ne znate ili kod nekih Atmela možete isključiti RESET-pin , da bude obični I/O port, i onda više serijski programatori ne vrijede, jedino FullParallel, a to je komplicirano (i obično ne besplatno) za amatere. U tom je slučaju najpametnije odustati i drugi puta paziti, a kontroler staviti u zbirku promašenih projekata. I ja ih imam. Sve ovo možete vjerojatno naći na NET-u, ali dosta hobista ne zna Engleski , pa se trudim da i njima pomognem, a neke stvari nema ni na NET-u , jednostavno sam ih sam otkrio metodom pokušaja i promašaja. Dodatna pojašnjenja može preko E-maila. |