Błąd w ATMega88

Pewnie można wymienić jeszcze wiele zalet wspomnianego układu, ale czas na łyżkę dziegciu.
Ostatnio tworzyłem program, który korzystał z watchdoga będącego wewnętrzną częścią układu ATMega88. W trakcie testów okazało się, że po zresetowaniu układu przez watchdog, mikrokontroler nie chce wystartować – potrzebne jest odłączenie i ponowne podłączenie zasilania, ponieważ zewnętrzny reset nie pomagał. Długo szukałem błędu we własnej aplikacji, aż w końcu doszedłem do wniosku, że wina nie leży po mojej stronie. Okazało się, że mikrokontroler, po resecie wywołanym przepełnieniem licznika watchdoga, nie wyłączał układu watchdog, a dodatkowo ustawiał czas jego przepełnienia na najmniejszą wartość (około 15ms). Z tego powodu układ ciągle się resetował i aplikacja nie startowała (ściślej: startowała na 15ms). Mało tego, pracując w WinAVR i próbując wyłączyć watchdoga w funkcji main() problem nie znikał. I dlatego trochę zniechęciłem się do tego układu.
Na szczęście istnieje rozwiązanie, choć mam żal do projektantów układu, że popełnili taką gafę.
Aby skutecznie wyłączyć watchdoga w aplikacji pisanej pod avr gcc należy dodać następujący kod:
void get_mcusr(void) __attribute__((naked)) __attribute__((section(".init3"))); void get_mcusr(void) { MCUSR = 0; wdt_disable(); }
Pisząc w assemblerze, wystarczy gdzieś na początku wykonywania programu wyłączyć ten nieszczęsny watchdog.
Komentarze (1) dodane przez admin October 16, 2008 (11:27AM)
Układy FPSLIC™ (AVR i FPGA)

Rodzina układów FPSLIC Secure (AT94S) oferuje zabezpieczenie przed skopiowaniem aplikacji zrealizowane poprzez zintegrowanie w strukturze szeregowej pamięci konfiguracyjnej.
Dostępne układy FPSLIC posiadają:
- od 5K do 40K bramek logicznych typu AT40K,
- 8-bitowy rdzeń mikrokontrolera AVR (20 MIPS),
- wiele peryferii
- do 36KB pamięci SRAM.
Oprogramowanie projektowe FPSLIC (System Designerâ„¢) zawiera zmodyfikowanÄ… wersjÄ™ oprogramowania rozwojowego FPGA oraz AVR studio.
Obecnie dostępna jest wersja 3.1.
Komentarze (0) dodane przez admin October 9, 2008 (8:11AM)
ATtiny167 - mikrokontroler do zastosowań motoryzacyjnych (sieć LIN)

ATtiny167 jest pierwszym układem optymalizowanym do pracy w trybie slave sieci LIN. W połączeniu z transceiverem LIN typu ATA662x lub ATA666x stanowi kompletne rozwiązanie dla czujników skrzyni biegów, systemu wydechowego, pomp itp.
Wiele podsystemów automotive typu: centralny zamek, sterowanie oknami, wycieraczki, oświetlenie, czujniki słońca i deszczu - są połączone za pomocą sieci LIN. Potrzebny był kontroler LIN wyposażony w przetwornik analogowo-cyfrowy do konwersji sygnałów z czujników na postać cyfrową, 16-bitowy kanał PWM do kontroli sterowników silników typu ATA6831/32 lub ATA6223.
ATtiny167 posiada sprzętowy LIN UART z automatyczną synchronizacją prędkości w trybie slave. Przetwarzanie ramki wymaga tylko dwóch przerwań: jedno sygnalizujące obecność identyfikatora LIN, drugie sygnalizujące zakończenie nadawania lub odbierania pakietu.
Cechy ATtiny167:
- 16KB ISP Flash,
- 512B EEPROM,
- 512B SRAM,
- 6 lini wejscia/wyjścia ogólnego przeznaczenia,
- 32 rejestry ogólnego przeznaczenia,
- jeden licznik 8-bitowy z trybami porównania, jeden 8-bitowy szybki licznik,
- uniwersalny interfejs szeregowy (USI),
- kontroler LIN,
- przerwania zewnętrzne i wewnętrzne,
- 4-kanałowy, 10-bitowy przetwornik analogowo-cyfrowy,
- programowalny Watchdog taktowany wewnętrznym oscylatorem,
- trzy programowalne tryby oszczędzania energii.
Komentarze (0) dodane przez admin August 15, 2008 (1:57PM)
<< Pierwsza < Poprzednia [1 / 3] Następna > Ostatnia >>