Witam
Mam problem z ATMEGA16-16PI 40PIN. Chce go zaprogramowac przez SPI przy pomocy programatora ktory napisalem w Linuksie i LPT. Poza jednym felerem wszystko dziala ok.
Odczyt bit fuse-ow, odczyt pamieci sa w porzadku, wszystko sie zgadza. Jedynie programowanie pamieci daje ciala. Postepuje zgodnie(a przynajmniej tak mi sie wydaje) z instrukcjami Atmela zamieszczonymi w datasheet. Gdy mam juz zestawione polaczenie
i przeslalem polecenie Programming Enable (0xAC 0x53 0x00 0x00). Nastepnie wypelniam
bufor (nie caly, powiedzmy 4 pierwsze slowa). Najpierw wysylam mlodszy bajt (0x40 00 0n moj_mlodszy_bajt), a nastepnie starszy bajt (0x48 00 0n moj_starszy_bajt), poczym przesylam kolejne slowa dla adresow n+1, n+2. Na koniec wykonuje Write Programm Memory Page (0x4C 00 00 00 - bo zapisuje pierwsze 64 slowa) i czekam 100ms zanim co kolwiek zrobie z spi. Wykonuje nastepnie zrzut pamieci i dostaje glupote. Starsze slowa sa tak jak nalezy, natomiast mlodsze slowa przyjmuja wartosc jaka mial mlodszy bajt drugiego slowa przesylany do bufora. Wiecej , zapisane bajty pojawiaja sie co 64 slowa, do konca pamieci, tylko ze na mlodszych bajtach pojawiaja sie wartosc 0xFF. Qrcze nie wiem co jest nie tak. Czy najpierw trzeba co ustawic? Moze wpierw trzeba wykonac jakas inna instrukcje? Jezeli mam cos zapisane cos w pamieci to najpierw wykonuje Chip Erase, program konczy dzialanie. Nastepnie uruchamiam program z opcja programowania pamieci.
Do czego sluzy instrukcja Load Extended Adress Byte (0x4D 00 adres 00), bo tylko w dokumentacji ATmega16 na nia natrafilem, a brak jakiegokolwiek opisu do niej? Czy mozliwe ze mam uszkodzony chip?
Prosze o pomoc.
Dziekuje
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięBledy w programowaniu ATMega16
Moderatorzy:Jacek Bogusz, Moderatorzy
- Futrzaczek
- -
- Posty:782
- Rejestracja:4 gru 2005, o 17:48
- Lokalizacja:Piotrków Tryb
- Kontaktowanie:
Poradzilem, sobie. Blad byl jednak w oprogramowaniu. Ale teraz wszystko jest ok. Tak mi sie wydaje bo nadal co 0x100 podczas odczytu pojawia mi sie zawartosc zaprogramowana. Nie wiem czy tak ma byc jezeli zaprogramowalem mniej 256 bajtow, czy to kolejny blad w sofcie programatora z ktorym bede sie musial uporac.
-
- -
- Posty:651
- Rejestracja:13 sty 2005, o 18:38
- Lokalizacja:Krasnystaw
- Kontaktowanie:
Linux + standardowe biblioteki do C. Rzadnych cudow, bajerow. Dziala w trybie teksowym. Mysle o przeniesieniu na DOS i Win. Funkcjonalnie przypomina uISP na linuxa, z tego co widzialem kod uISP. Narazie moge:zaprogramowac flash/eeprom, obejrzec zawartosc pamieci. Obejrzec fuse bity. odczytac sygrnature, skasowac pamiec. Prosty bo zaimplementowalem tylko funkcje ktore potrzebowalem. Rzadnego programatora nie potrzeba. Wystarczy podpiac AVR przez rezystory do LPT. Jakby ktobyl zainteresowany jakas rozbudowana wersja czy co to mam zamiar umiescic go na stronie http://tempac.okwf.fuw.edu.pł/~tszan/index.html Na razie jest w trakcie budowy wiec nic tam nie bedzie przez najblizsze 2-3tyg, tak sadze. Jakby komus bardzo zalezalo to kontakt przez maila.
-
- -
- Posty:651
- Rejestracja:13 sty 2005, o 18:38
- Lokalizacja:Krasnystaw
- Kontaktowanie:
Kto jest online
Użytkownicy przeglądający to forum: Bing [Bot] i 44 gości