jak uwalić atmegę przez ISP ?

Oct 09, 2014 21 Replies

Nastał u mnie sezon cudów...



Jest tak :



Urządzenie z atmegą 128. Programuję sobie z użyciem MkAvr Calculatora (bo wygodny), albo np. SinaProg oraz programatora USBASP.



No i od czasu do czasu zdarza się, że coś się przy programowaniu wywali, po czym oczywiście atmega przestaje dawać oznaki życia.



Ok, zatem za pomocą zestawu program + kabelek do LPT + generator 4Mhz stawiam atmegę na nogi. Znaczy resetuję fusy. (tutaj zapodany program dosowy i schemat kabelka ;

formatting link
Wracam zatem do SinaProga - atmega się zgłasza, ustawiam ponownie fusy poprawnie.



Wydaje się, że będzie OK. Ale nieeeeee - programowanie flesha wywala przy weryfikacji błędy. Programowanie eeprom - ok.



I tak sobie próbuję n-razy ten flash zaprogramować. Zawsze błąd weryfikacji. Po którymś razie - wywala się AVRDUDE, i atmega znowu wylatuje w kosmos. Znaczy fusy spieprzone.



I tak można się bawić w kółko macieju.



Mógłbym podejrzewać, że USBASP coś nie halo - ale jak wymienię atmegę na nową - będzie ok. (przerabiałem to).



Może ktoś mi to wyjaśnić ??


Jeszcze spróbuję to samo z AVRDRAGON, bo mam pod ręką. Ale jakoś przeczucie mi mówi, że nic to nie zmieni...

A jeszcze słowo dodatkowe ;

ostatnie wywalenie zrobiłem z MkAVrCalculator, i przy programowaniu flasha miałem włączony podglad AVR DUDE.

I tenże mi wyświetlił na koniec programowania, że fusy zostały zmienione ; znaczy poprzednio była jakaś wartość (np. 3F) a teraz 00, i czy chcę przywrócić poprzednie wartości y/n.

Oczywiście dałbym Yes, ale to okienko podglądu w MkAvrCalculator nie jest responsywne, więc oczywiście dupa i atmega padła.

Ale - ważniejsze jest, że wygląda na to, że podczas programowania są czasem zmieniane wartości fusów i to jest ciekawe - dlaczego ??

Tak trochę offtopicznie (nie znam się na atmegach stąd pytam). Co to za problem, że atmega przy programowaniu "sie wywali"? Że jakoś specjalnie trzeba stawiać na nogi po błędnym flaszowaniu? Nie można po prostu jeszcze raz zaprogramować? Opisujesz to tak, jakby samym procesem programowania można było coś popsuć.

No bo można. Błędne ustawienie fusów powoduje, że programowanie ISP przestaje działać.

W lepszym przypadku daje się to przywrócić przez podłączenie zewnętrznego generatora i odpowiednią operację na ISP.

W gorszym - tylko wyciąganie układu i programowanie go równoległe (w moim przypadku to bez sensu, bo atmega 128 jest TQFP 64 więc jak wylutuję, to łatwiej wstawić nową niż walczyć ze starą...)

Myślałem, że ISP jest podstawowym i zawsze działającym programowaniem bez względu na konfigurację.

no niestety nie. Ale że Atmel nie zrobił jakoś prościej możliwości zerowania MCU , to imo nieporozumienie.

Oprócz ISP jest jeszcze (w mniejszych modelach) "szeregowe programowanie wysokonapięciowe", z jakąś rozsądną ilością pinów, ale duże atmegi imo mają tylko "pełne" programowanie równoległe jak ratunek, a to w przypadku procesorów TQFP jest jakieś nieporozumienie.

Jeśli się mylę, to niech ktoś wyprostuje...

użytkownik Marek napisał:

Nie znasz megi/tiny:) Sa 2 mozliwosci, jak ustawisz reset na IO lub wylaczysz ISP, a tak se wymyslili. Pomaga przerobka programatora i podanie na reset zamiast 5V - 12V, tak jak w picakach.

W dniu 2014-10-09 22:22, sundayman pisze:

Być może masz za długi kabelek od programatora do mikrokontrolera lub ustawiłeś za dużą szybkość programowania. Zapnij zworkę SLOW w USBAsp i zobaczysz, czy błąd się powtarza. Ale będziesz dłuuuuugo czekać.

P.P.

Użytkownik "sundayman" snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news:m16v4t$as6$ snipped-for-privacy@node2.news.atman.pl...

Tak chyba faktycznie w mega było. Od 5 lat używamy Xmega programowanych przez PDI. Nawet nie wiem, czy mają równoległe programowanie.

Coś im początkowo nie wyszło z progami brown-out. OIDP były inne niż w karcie katalogowej. Potem w kartę wstawili te prawdziwe, a potem coś poprawili i teraz znów są te co miały być od początku. Już się sytuacja normuje. Poruszam ten temat bo nieświadomy tego zablokowałem sobie procesor wpisując brown out np. 3V0, co faktycznie oznaczało 3V49 no i przy 3V3 procesor nie chciał gadać. Jak się zorientowałem, że to może być przyczyna podpiąłem do 3V3 w układzie zasilacz laboratoryjny i się z procesorem dogadałem. P.G.

Użytkownik "Marek" snipped-for-privacy@fakeemail.com napisał w wiadomości news: snipped-for-privacy@news.neostrada.pl...

Nie jestem pewien, czy nie mylę szczegółów. ISP związane jest z wykorzystaniem nogi RESET. W niektórych atmelach można tę nogę przełączyć na normalne I/O zyskując dodatkowy pin, ale wtedy przestaje działać ISP. Nawet kiedyś (z braku nóg) tak to zrobiliśmy w normalnym urządzeniu programowanym ISP. Oczywiście w trakcie pracy nad oprogramowaniem funkcjonalność tej nogi (celowo prosta bez szansy na błąd) nie była testowana. W produkcji programowanie było już jednorazowe. P.G.

Ciężko będzie. To wywalenie fusów zdarza się rzadko. Normalnie muszę programować z dużą prędkością, bo program zajmuje całe

128MB, i nawet "na szybko" dłuższą chwilę się ładuje, potem jeszcze weryfikacja.

Robienie tego zawsze na "slow" by mi rozwaliło pracę :)

W dniu 2014-10-10 18:37, sundayman pisze:

Na szybko USBAsp robił mi sieczkę przy kabelku dłuższym niż 15cm. Dragon działał na 25cm.

P.P.

no to mój jest chyba wybitnie odporny, bo działa (no w 95% jak widać) na kabelku ok. 40 cm :)

Idę po nożyczki...

W dniu 2014-10-10 18:44, sundayman pisze:

Marne te programatory macie, ja mam po lpt z buforami w srodku na chyba

74hc125 i kabel ma ponad metr i działa bez problemu, używam programu ISP Adama Dybowskiego.

W dniu 2014-10-11 11:03, janusz_k pisze:

Święta prawda, używałem dokładnie takiego zestawu i nie miałem problemów. USBAsp to nieporozumienie, działa jak sam chce. Teraz mam Dragona, jestem zadowolony.

P.P.

LPT dość dawno w komputerze nie mam :) Dragona mam, ale z nim jest ten kłopot, że o ile działa pod AS, to ciężko go chyba zmusić do współpracy np. z MkAVR.

Przynajmniej u mnie nie działa. Z tego co czytałem, są problemy z sterownikami. No a skoro już mam wybierać, to wolę, żeby mi bezproblemowo działał z AS. Tyle, że AS na razie używam sporadycznie :)

A może ktoś ma doświadczenie z korzystaniem z Dragona jednocześnie spod różnych programów ?

W dniu 2014-10-10 18:37, sundayman pisze:

;)

no niestety, przy komplacji mam teraz 92%... No i dlatego nie chcem ale muszem przejść na ATXMEGE 256.

Rozumiem, sobota (niedziela właściwie), ale... nadal nie widzisz?:D

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required