powtarzalność AVR-ów

Czy ktoś się spotkał z takim czymś, że program działa inaczej na różnych egzemplarzach tego samego AVR-a? W moim konkretnym przypadku to jest tiny15L, jeden mam w układzie testowym, na którym pisałem i sprawdzałem program, drugi w prawie identycznym urządzonku.

Trudno mi sprecyzować na czym polega problem, nie będę tu wrzucał całego programu, którego i tak nikt nie rozszyfruje (nawet ja), objawy są takie, że ten drugi nie zawsze prawidłowo wraca z obsługi przerwania zewnętrznego INT0, wyzwalanego przyciskiem. Przycisk uruchamia urządzenie, układ wyłączony jest w stanie "sleep", naciśnięcie przycisku generuje przerwanie, w obsłudze przerwania wyłączam przerwanie zewnętrzne, potem jest małe opóźnienie, po którym znowu sprawdzam stan przycisku i jeśli nadal jest wciśnięty, to włączam urządzenie i program leci dalej. Na płytce testowej to działa bez zarzutu, a w "prawdziwym" układzie czasem powrót z tego przerwania jakoś się nie udaje i nie wiem dlaczego. Samo przerwanie jest zawsze generowane (sprawdzam to buzzerem, podłączonym do jednego z wyjść, wstawiam "pikanie" w różne miejsca programu). Czy źródłem problemu może być zasilanie? Miałem miejsce tylko na malutki kondensator SMD 10nF za stabilizatorem, w układzie testowym jest jeszcze elektrolit 10uF. Na co jeszcze zwrócić uwagę?

Paweł

Reply to
Paweł Paroń
Loading thread data ...

Paweł Paroń napisal(a):

Nie wiem czy Ci pomoze to co napisze, ale moze: tego typu problemy miewalem 'long time ago' w PLD / FPGA gdy pomylkowo wyzwalalem sie na blednym zboczem zegara. Wtedy uklad w prototypie dzialal, a potem zaczynaly sie problemy w serii, gdy ktores urzadzenie naraz zaczynalo dziwnie dzialac. Moze masz podobny problem u siebie? Znaczy, cos dziala na granicy i wtedy rozne egzemplarze moga rozne dzialac.

Reply to
Marcin E. Hamerla

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.