BÅ‚Ä…d w ATMega88
Mikrokontroler ATMega88 jest według mnie jednym z najbardziej udanym konstrukcyjnie układem firmy Atmel. Jest mały i wręcz idealny do zastosowań w średnio skomplikowanych aplikacjach. Posiada wewnętrzny oscylator RC, dzięki czemu może pracować praktycznie bez elementów zewnętrznych (gdy nie jest wymagana wysoka stabilność częstotliwości pracy). Wyposażony w sprzętowe interfejsy: I2C (TWI w nomenklaturze Atmela), SPI, USART pozwala na prostą implementację komunikacji z otoczeniem. Przerwania zewnętrzne dostępne praktycznie na każdym pinie dają sporą dowolność przy projektowaniu płytki drukowanej docelowej aplikacji.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)
Układy AT94K oraz AT94S są układami w których zintegrowano mikrokontroler AVR, pamięć oraz logikę programowalną. Producent określa te scalaki jako System Level Integrated, czyli zintegrowane na poziomie systemu. Połączenie takie daje możliwość szybkiego projektowania aplikacji złożonej z mikrokontrolera, pamięci oraz dodatkowych, dowolnych peryferiów (implementowanych w logice programowalnej przez użytkownika).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)
LIN (Local Interconnect Network) jest tanim rozwiązaniem sieciowym stosowanym w aplikacjach automotive (motoryzacja).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 >>