pl:avrc:art:0x05
Differences
This shows you the differences between two versions of the page.
pl:avrc:art:0x05 [2012/09/29 13:46] – created mkucia | pl:avrc:art:0x05 [2012/11/17 20:03] (current) – mkucia | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Fusebity ====== | ||
+ | Jak zaznaczałem wielokrotnie zabawa fusebitami może skutecznie zablokować nasz układ. Jednak są one bardzo ważne. Jeżeli otworzymy stronę [[http:// | ||
+ | {{ : | ||
+ | Po kolei objaśniam znaczenie wszystkich pól wyboru: | ||
+ | ^ Pierwsza lista - lista wyboru źródła sygnału taktującego ^ | ||
+ | |Ext. Clock - Sygnał zegarowy doprowadzamy do pinu XTAL1, XTAL2 nie podłączony (z jakiegoś generatora)| | ||
+ | |**Int. RC Osc. - Sygnał z wewnętrznego oscylatora RC [opcja domyślna]**| | ||
+ | |Ext. RC Osc. - Sygnał z zewnętrznego oscylatora RC.| | ||
+ | |** Ext. Crystal - Sygnał z zewnętrznego oscylatora kwarcowego.**| | ||
+ | ^__Brown-out detection enabled__ ^ | ||
+ | |Jeżeli zaznaczymy to pole w układzie zostanie aktywowany układ monitorujący napięcie zasilania. Jeżeli spadnie ono do określonego poziomu, układ wejdzie w stan resetu który zostanie zwolniony dopiero po ponownym uzyskaniu wymaganego napięcia.| | ||
+ | ^__Brown-out...__^ | ||
+ | |Wybieramy czy układ ma pracować od napięcia zasilania 2.7 czy 4 [V].| | ||
+ | ^__Boot Reset vector Enabled__ ^ | ||
+ | | Zaznaczamy jeżeli układ posiada bootloader.| | ||
+ | ^__Boot Flash ...__ ^ | ||
+ | | Wybieramy pozycję bootloadera w pamięci.| | ||
+ | ^__Preserve EEPROM memory through the Chip Erase cycle__ ^ | ||
+ | | Operacja kasowania układu nie będzie kasowała zawartości pamięci EEPROM.| | ||
+ | ^__CKOPT fuse (operation dependent of CKSEL fuses)__ | ||
+ | ^__Serial program downloading (SPI) enabled__ ^ | ||
+ | | Odczyt programu z układu możliwy tylko jeżeli ta opcja jest aktywna.| | ||
+ | ^__Watch-dog Timer always on__ ^ | ||
+ | | Jeżeli to zaznaczymy to watchdog będzie aktywowany po resecie.| | ||
+ | ^__Reset Disabled (Enable PC6 as i/o pin)__ ^ | ||
+ | | W małych układach pinów IO jest mało, możemy użyć pinu nr 1 jako portu we/wy ale tracimy możliwość programowania| | ||
+ | Na razie zrozumienie wszystkich wymienionych opcji nie jest konieczne. | ||
+ | ===== Zmiana częstotliwości taktowania wewnętrznego generatora RC ===== | ||
+ | W sekcji __Current Settings__ możemy zobaczyć wartości fusebitów oraz linię komendy dla AVRDude. Wartości domyślne to: LO 0xE1 HI 0xD9.\\ | ||
+ | Zmieńmy na pierwszej liście częstotliwość na 8 [MHz] z wewnętrznego generatora RC (z +64 ms startup). Powinniśmy zobaczyć: < | ||
+ | |||
+ | ===== Taktowanie zewnętrznym generatorem kwarcowym ===== | ||
+ | Ponieważ wewnętrzny generator RC nie oferuje dużych częstotliwości taktowania a co gorsza jest niestabilny. Jeżeli będziemy pracować z interfejsami wymagającymi stabilnego taktowania (np USART) nie możemy opierać się na wewnętrznym generatorze.\\ | ||
+ | {{: | ||
+ | Kondensatory jakie należy zastosować powinny mieć wartość 10 lub 22 [pF]. Zastosowanie oscylatora kwarcowego pozbawia nas jednak 2 portów IO. Aby układ zaczął pracować z oscylatorem należy zaprogramować fusebity analogicznie jak w powyższym przykładzie wybierając odpowiednie źródło. Zagadnieniom taktowania poświęcona jest cała sekcja 8 noty katalogowej __System Clock and Clock Options__. | ||
+ | |||
+ | |||
+ | ====== avr libc ====== | ||
+ | Po pierwsze i najważniejsze, | ||
+ | AVR-libc jest częścią łańcucha narzędzi GNU, dostarcza funkcje z [[wp> | ||
+ | ===== Nagłówki ===== | ||
+ | Kilka modułów specyficznych dla AVR z którymi warto się zapoznać: | ||
+ | ^ Nagłówek ^ Opis ^ | ||
+ | | ''< | ||
+ | | ''< | ||
+ | | ''< | ||
+ | | ''< | ||
+ | | ''< | ||
+ | | ''< | ||
+ | | ''< | ||
+ | | ''< | ||
+ | | ''< | ||
+ | | ''< | ||
+ | | ''< | ||
+ | | ''< | ||
+ | | ''< | ||
+ | ====== Informacje dodatkowe ====== | ||
+ | * [[http:// |