Mikrokontrolery AVR ATA8741/42/43
Mikrokontrolery ATA8741/42/43 należą do rodziny układów zaprojektowanych do zastosowań w obszarze komunikacji bezprzewodowej.
Rdzeń tych układów stanowi dobrze znany mikrokontroler AVR ATtiny44V, dzięki któremu projektant ma do swojej dyspozycji naprawdę solidną jednostkę. Mikrokontroler wraz z układem transmitera, mieści się w małej obudowie typu QFN24 o wymiarach 5 mm x 5 mm. Dzięki temu układy ATA8741/42/43 mogą być stosowane wszędzie tam, gdzie miniaturyzacja ma zasadnicze znaczenie. Nowe układy pracują w najpopularniejszych pasmach ISM (ATA8741: od 868 do 928 MHz, ATA8742: 433 MHz, ATA8743: 315 MHz) z prędkością transmisji sięgającą 32 kBit/s.
Główne zastosowania: systemy zdalnego dostępu, systemy alarmowe, telemetria, systemy pomiaru energii oraz automatyka domowa.
W Polsce układy te nie są jeszcze dostępne. Mam nadzieję, że ta sytuacja szybko się zmieni.
Komentarze (0) dodane przez admin October 11, 2009 (10:00PM)
Mikrokontrolery AVR do sterowania silnikami
Mikrokontrolery ATmega16M1, ATmega32M1 oraz ATmega64M1 zostały stworzone z myślą o uzyskaniu dużej dokładności w kontroli modulacji szerokości impulsu (PWM). Ich przeznaczeniem jest zaawansowana kontrola silników w aplikacjach z interfejsem CAN i LIN.Nowa rodzina układów wyposażona została w:
- pamięć Flash od 16 do 64 KB,
- wejścia / wyjścia ogólnego przeznaczenia,
- przetwornik analogowo-cyfrowy,
- komparatory analogowe,
- Power Stage Controller,
- liczniki / timery 8- oraz 16-bitowe.
Nowe mikrokontrolery oparte o 8-bitowy rdzeń AVR o architekturze RISC, zawierają w swej strukturze wszystkie podstawowe narzędzia niezbędne przy implementacji algorytmów kontroli silnika.
Komentarze (0) dodane przez admin September 4, 2009 (1:39PM)
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 (2) dodane przez admin October 16, 2008 (11:27AM)
<< Pierwsza < Poprzednia [1 / 4] Następna > Ostatnia >>