<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title><![CDATA[AVR-NEWS]]></title><description><![CDATA[Teksty]]></description><link>http://avr-news.freehostia.com/</link><copyright><![CDATA[Copyright AVR-NEWS]]></copyright><generator>sNews CMS</generator><item><title><![CDATA[Własny bootloader do AVR - krok po kroku]]></title><description><![CDATA[  
Mikrokontolery serii ATMega wyposażone zostały w instrukcje pozwalające programować pamięć Flash z poziomu aplikacji. Dzięki temu istnieje możliwość zmiany oprogramowania w mikrokontrolerze poprzez dowolny, wybrany interfejs.  
  
Poniżej przedstawiony zostanie sposób implementacji prostego   bootloadera   sterowanego poprzez interfejs   RS232  .  
  
  Wstęp    
Pamięć programu w mikrokontrolerach ATMega podzielona została na dwa obszary. Pierwszy z nich to tzw. obszar aplikacji, natomiast drugi to obszar programu ładującego (BLS). Program umieszczony w obszarze BLS może przeprogramować obszar aplikacji. Nasz   bootloader   musi być więc umieszczony w obszarze BLS.
  
  
  Program    
Program został napisany dla mikrokontrolera ATMega88, jednak dostosowanie do innych układów jest bardzo proste.  
  
Zapis programu:
    
  
boot_write:

	rcall	RS232_send_char

	rcall	RS232_receive_char
	cpi	acc,'f'
	brne	boot_write_ee

	rcall	RS232_send_char

	rcall	RS232_receive_char
	mov	yh,acc

	rcall	RS232_receive_char
	mov	yl,acc

	clr	zl
	clr	zh

boot_write_flash_loop_1:

	mov	xl,zl
	mov	xh,zh
	ldi	temp2,PAGESIZE

boot_write_flash_loop_2:

	rcall	RS232_receive_char
	rcall	RS232_send_char

	mov	r0,acc

	rcall	RS232_receive_char
	rcall	RS232_send_char

	mov	r1,acc

	ldi	spm_cmd,(1  < < SELFPRGEN)
	rcall	spm_do

	adiw	z,2

	cp	zh,yh
	brlo	boot_write_flash_no_end
	cp	zl,yl
	brsh	boot_write_flash_end

boot_write_flash_no_end:

	dec	temp2
	brne	boot_write_flash_loop_2

boot_write_flash_end:

	push	zl
	push	zh

	mov	zl,xl
	mov	zh,xh

	ldi	spm_cmd,(1  < < PGWRT | 1  < < SELFPRGEN)
	rcall	spm_do

	pop	zh
	pop	zl

	cp	zh,yh
	brlo	boot_write_flash_loop_1
	cp	zl,yl
	brlo	boot_write_flash_loop_1

	ldi	spm_cmd,(1  < < RWWSRE | 1  < < SELFPRGEN)
	rcall	spm_do

	ldi	acc,'d'
	rcall	RS232_send_char

boot_loop_go:

	rjmp	boot_loop
  

  
Zapis programu odbywa się w przedziale pamięci od 0 do yh:yl. Parametry określające górną granicę przekazywane są poprzez 
interfejs RS232 przez użytkownika.  
Dane zapisywane są słowami, dlatego pobierane są dwa bajty i umieszczane w rejestrach r0 oraz r1. Następnie wywoływana jest funkcja smp_do, która dokonuje właściwego zapisu do pamięci Flash mikrokontrolera.    
Funkcja spm_d0 wygląda następująco:
  
  
  
spm_do:

	in	spm_wait,SPMCSR
	sbrc	spm_wait,SELFPRGEN
	rjmp	spm_do

spm_do_wait_ee:

	sbic	EECR,EEPE
	rjmp	spm_do_wait_ee

	out	SPMCSR,spm_cmd
	spm

	ret
  
  
Oczyt danych:
    
  
boot_read:

	rcall	RS232_send_char

	rcall	RS232_receive_char
	cpi	acc,'f'
	brne	boot_read_ee

	rcall	RS232_send_char

	clr	zl
	clr	zh

boot_read_loop:

	lpm	acc,z+

	rcall	RS232_send_char

	cpi	zh,high((RWW_STOP_ADDR + 1)  < < 1)
	brne	boot_read_loop
	cpi	zl,low((RWW_STOP_ADDR + 1)  < < 1)
	brne	boot_read_loop	

	rjmp	boot_loop
  
  
Kasowanie zawartości pamięci:    
  
boot_erase_chip:

	rcall	RS232_send_char

	clr	zl
	clr	zh
	clr	acc
	clr	temp
	ldi	temp2,PAGE_SIZE

boot_erase_chip_loop:

	ldi	spm_cmd,(1  < < PGERS | 1  < < SELFPRGEN)
	rcall	spm_do
	
	add	zl,temp2
	adc	zh,temp

	inc	acc
	cpi	acc,RWW_PAGES
	brne	boot_erase_chip_loop

	ldi	spm_cmd,(1  < < RWWSRE | 1  < < SELFPRGEN)
	rcall	spm_do

	ldi	acc,'d'
	rcall	RS232_send_char

	rjmp	boot_loop
  
  
  Pliki    
Cały program oraz aplikacja na PC sterująca bootloaderem dostępne są poniżej:
  bootloader.asm    
  jAVRBoot.zip      
  Podsumowanie    
Bootloader działa na mikrokontrolerze ATMega88 z zegarem 12MHz, 
dla innego zegara i mikrokontrolera należy dokonać odpowiednich zmian. Programując mikrokontroler należy także pamiętać o ustawieniu Fuse Bitów tzn. uaktywnienie bootloadera i wskazanie jego adresu w pamięci (dla proponowanego rozwiązania adres to: 0x0C00).    
Mikrokontroler po włączeniu czeka chwilę na komendę uaktywniającą bootloader, jeśli ta się nie pojawi rozpoczyna się wykonywanie właściwego programu.
  
  
    
  
  
  ]]></description><pubDate>Wed, 27 Aug 2008 10:59:23 +0000</pubDate><link>http://avr-news.freehostia.com/tutoriale/wasny-bootloader-do-avr-krok-po-kroku/</link><guid>http://avr-news.freehostia.com/tutoriale/wasny-bootloader-do-avr-krok-po-kroku/</guid></item><item><title><![CDATA[Craft - pokaz możliwości mikrokontrolerów AVR]]></title><description><![CDATA[  
  Craft   jest demonstracją multimedialną stworzoną na minimalistycznej platformie sprzętowej opartej o mikrokontroler   ATMega88  .  
  
Mikrokontroler generuje obraz   VGA   wyświetlany na monitorze oraz dźwięk z częstotliwością próbkowania   31496kHz  .
  
  
Schematy, dokładny opis sposobu generowania obrazu oraz dźwięku znajdują się na stronie projektu.
  
  
Poniższy film przedstawia Craft'a w akcji. Efekty jakie zostały osiągnięte są naprawdę imponujące, co ukazuje jaka moc drzemie w mikrokontrolerach AVR.
  
  
                
  
  
Strona projektu:   http://www.linusakesson.net/scene/craft/index.php  
  
  
    
  
  
  ]]></description><pubDate>Sun, 24 Aug 2008 19:15:35 +0000</pubDate><link>http://avr-news.freehostia.com/projekty/craft-pokaz-moliwoci-mikrokontrolerw-avr/</link><guid>http://avr-news.freehostia.com/projekty/craft-pokaz-moliwoci-mikrokontrolerw-avr/</guid></item><item><title><![CDATA[ATtiny167 - mikrokontroler do zastosowań motoryzacyjnych (sieć LIN)]]></title><description><![CDATA[  
  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.  
  
    
  
  
  ]]></description><pubDate>Fri, 15 Aug 2008 13:57:10 +0000</pubDate><link>http://avr-news.freehostia.com/avr/attiny167-mikrokontroler-do-zastosowa-motoryzacyjnych-sie-lin/</link><guid>http://avr-news.freehostia.com/avr/attiny167-mikrokontroler-do-zastosowa-motoryzacyjnych-sie-lin/</guid></item><item><title><![CDATA[Odtwarzacz MP3 na ATMega128 - MP3stick]]></title><description><![CDATA[  
  MP3stick   jest prostym, przenośnym odtwarzaczem   MP3  . Sercem projektu jest mikrokontroler   ATMega128  . Dekodowanie MP3 realizowane jest za pomocą układu firmy VLSI   VS1011b  . Pliki (MP3, playlisty, skórki) składowane są na karcie MMC/SD. Odtwarzacz zasiany jest napięciem o wartości 3,6V z akumulatora LiIo/LiPo. Akumulator można ładować w odtwarzaczu dzięki zastosowaniu układu   MAX1811  . Projekt został wyposażony w   kolorowy wyświetlacz grafczny LCD   od telefonu Nokia (rozdzielczość 128x128, 256 kolorów). Odtwarzacz działa w trybie tekstowym, a gdy dostępna jest skórka także w trybie graficznym. Port dokujący pozwala na podłączenie zewnętrznych sygnałów sterujących, sygnałów audio oraz ładowarki.  
  
  Wymiary odtwarzacza  : 22x39x64mm
    
Oprogramowanie:
  
  napisane w C dla kompilatora   WinAVR   (avr-gcc v3.4.5 lub nowszą z avr-libc v.1.4.3 lub nowszą),  
  obsługa systemu plików   FAT32  ,  
  bezpośrednia obsługa playlist M3U  
  obsługa tagów ID3 v1 & v2 (tytuł, artysta, album, długość tytułu[v2]),  
  obsługa kolorowych skórek kompatybilnych z   Yampp3USB  /  Yampp7  ,  
  regulowany kontrast, podświetlenie oraz czas automatycznego wyłączenia wyświetlacza LCD, regulacja basów, głośności i balansu,  
  wszystkie ustawienia przechowywane są w pamięci   EEPROM  ,  
  obsługa jednym klawiszem,  
  monitorowanie poziomu napięcia baterii,  
  automatyczne wyłączanie przy niskim stanie naładowania baterii,  
  obsługa zdalna poprzez interfejs szeregowy.  
  
Strona projektu:   http://www.mictronics.de/?page=mp3stick  
    
    
  
  
  ]]></description><pubDate>Tue, 22 Jul 2008 13:15:21 +0000</pubDate><link>http://avr-news.freehostia.com/projekty/odtwarzacz-mp3-na-atmega128-mp3stick/</link><guid>http://avr-news.freehostia.com/projekty/odtwarzacz-mp3-na-atmega128-mp3stick/</guid></item><item><title><![CDATA[Procyon AVRlib - biblioteka funkcji dla mikrokontrolerów AVR]]></title><description><![CDATA[  
  Procyon AVRlib   jest prostą w użyciu biblioteką funkcji C przeznaczoną dla mikrokontrolerów AVR. Założeniem projektu   AVRlib   jest umożliwienie programiście szybkiego osiągnięcia celu, przez zredukowanie czasu potrzebnego na napisanie funkcji obsługujących podstawowe peryferia. Większość plików nagłówkowych (*.h) zawartych w projekcie   AVRlib   posiada opis, jak używać dostarczonych funkcji. Pliki z kodem (*.c) uzupełnione są o komentarze, pomagające zrozumieć zasadę ich działania.
    
Lista bibliotek wchodzących w skład pakietu   AVRlib  :
    
Do zastosowań ogólnych:
  
  bufor bajtowy (cykliczny)  
  bufor bitowy (liniowy)  
  printf i inne funkcje formatowanego wyjścia  
  wyjście terminala VT100  
  interfejs linii komend  
  system plików   FAT16/32   (tylko odczyt)  
  protokół pakietowy STX/ETX  
  zminennoprzecinkowe funkcje w bibliotece matematycznej (podstawowe operacje)  
  
Obsługa peryferii układów AVR:
  
  układy licznikowe (timer),  
  układy transmisji (uart),  
  przetworniki analogowo-cyfrowe,  
  interfejs I2C w trybie master oraz slave,  
  interfejs SPI.  
  
Obsługa urządzeń zewnętrznych:
  
  wyświetlacze   LCD   (z kontrolerem HD44780),  
  pamięci   EEPROM   z interfejsem I2C,  
  pamięci   EEPROM   z interfejsem SPI,  
  karty pamięci   MMC/SD   (w tybie SPI),  
  enkodery kwadraturowe,  
  serwomechanizmy RC (do 8 kanałów),  
  układ STA013 - dekoder MP3,  
  odbiorniki GPS (komunikacja porzez port szeregowy):  
  
  protokół NMEA-0813,  
  protokół TSIP.  
  
  graficzne wyświetlacze LCD:  
  
  z kontrolerem KS0108/HD61202,  
  z kontrolerem T6963,  
  znaki i symbole LCD.  
  
  
Implementacje programowe interfejsów i peryferiów AVR:
  
  I2C w trybie Master,  
  UART (oparty o przezwania z licznika),  
  wyjście impulsowe,  
  magistrala pamięci typu Intel (adres, data, nRD, nWR).  
  
Obsługa sieci:
  
  sterowniki urządzeń:  
  
  sterownik Ethernet (10Mb/s) do   Realtek RTL8019AS  ,  
  sterownik Ethernet (10/100Mb/s)  ASIX AX88796L  ,  
  sterownik Ethernet (10Mb/s)   Crystal CS8900  ,  
  sterownik WLAN   PrismII 802.11b  .  
  
  protokoły sieciowe:  
  
  ARP,  
  IP,  
  ICMP,  
  UDP,  
  DHCP.  
  
  stos sieciowy  
  
Ostatnia wersja biblioteki pochodzi z końca 2006 roku, więc projekt nie jest już prawdopodobnie rozwijany oficjalnie.
    
    
  
  
  ]]></description><pubDate>Mon, 21 Jul 2008 12:59:05 +0000</pubDate><link>http://avr-news.freehostia.com/projekty/procyon-avrlib-biblioteka-funkcji-dla-mikrokontrolerow-avr/</link><guid>http://avr-news.freehostia.com/projekty/procyon-avrlib-biblioteka-funkcji-dla-mikrokontrolerow-avr/</guid></item></channel></rss>