Platforma SB200

SB200 SB200 jest platformą rozwojową dla projektów referencyjnych serii SB20x . Platforma zapewnia szybki start z nowymi rozwiązaniami (smart battery) firmy Atmel.

Ogniwa baterii 16340/CR123A umieszczane są w przeznaczonych do tego podstawkach w platformie SB200, a SB20x umieszczany jest w dedykowanym złączu. Takie rozwiązanie tworzy zestaw zasilający z określoną liczbą ogniw, zabezpieczeniem przeciwzwarciowym i systemem monitorującym stan rozładowania. W zestawie mogą być zastosowane inne ogniwa – należy je przylutować, ponieważ nie będą pasowały w zamontowane podstawki. Aby zasymulować działanie zestawu zasilającego, platforma SB200 może go naładować, a następnie rozładować udając aplikację pobierającą prąd z baterii.

Cechy platformy:
  • w pełni kompatybilna z aplikacjami referencyjnymi,
  • gniazdo SB20x pozwalające na dołączenie rozwiązań referencyjnych,
  • brama komunikacyjna pomiędzy PC a układami smart battery (UART, TWI / SMBus),
  • ładowarka (19V, 2A, automatyczne ograniczanie napięcia oraz prądu ładującego, automatyczne zakończenie ładowania),
  • regulowany prąd rozładowywania (do 4A).

Komentarze (0) dodane przez admin January 22, 2009 (12:06PM)

AVR Studio 4.15

AVR StudioAVR Studio® 4 jest profesjonalnym zintegrowanym środowiskiem rozwojowym (IDE) pozwalającym na tworzenie i debugowanie aplikacji wykorzystujących mikrokontrolery AVR®.

AVR Studio zawiera w sobie asembler oraz symulator i działa w systemach Windows® 9x/NT/2000/XP.

Program jest dostępny na stronie firmy ATMEL.

AVR Studio w wersji 4.15 obsługuje najnowsze układy z rodziny AVR. Nowością jest także obsługa AVR ONE! (narzędzie do programowania i debugowania on-chip). Przy wykorzystaniu tego narzędzia mamy możliwość bieżącego przyłaczania/odłączania się do działającego procesu.
W pakiecie znajduje się także AVR Battery Studio v1.0.

Komentarze (0) dodane przez admin January 22, 2009 (11:39AM)

Błąd w ATMega88

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)