AVR. Układy peryferyjne
Dowiedz się, jak działają zewnętrzne pamięci półprzewodnikowe
Naucz się korzystać z komparatorów oraz przetworników ADC i DAC
Poznaj techniki wyświetlania obrazu i odtwarzania dźwięku
Mikrokontrolery bez urządzeń peryferyjnych stanowią niszę rozwijaną głównie
przez pasjonatów elektroniki, dla których programowanie jest celem samym w sobie.
Praktyczne zastosowanie takich gadżetów jest możliwe dopiero po dołączeniu pamięci
masowej, wyświetlacza alfanumerycznego i graficznego, przetworników analogowo-cyfrowych
i cyfrowo-analogowych oraz czujników. Dzięki tym układom mikrokontrolery AVR
komunikują się ze światem, zbierają informacje, magazynują dane i mogą służyć nam
w codziennym życiu jako stacje pogodowe, odtwarzacze cyfrowe czy sterowniki ogrzewania.
Jeśli masz już pewną wiedzę na temat mikrokontrolerów AVR i chciałbyś ją
wzbogacić o wiadomości dotyczące ciekawych zastosowań urządzeń peryferyjnych,
sięgnij po jedyną w swoim rodzaju książkę AVR.
Układy peryferyjne. Jest ona adresowana do czytelników, którzy chcą poszerzyć
swoje praktyczne umiejętności programowania mikrokontrolerów AVR, w tym
mikrokontrolerów z rodziny XMEGA. Stanowi naturalną kontynuację doskonałego
podręcznika AVR. Praktyczne projekty, kierowanego do mniej zaawansowanych programistów.
Książka omawia także specyficzne dla mikrokontrolerów AVR elementy języka C.
Łączenie kodu C i asemblera oraz debugowanie programu
Obsługa interfejsów dostępu do pamięci zewnętrznej
Tworzenie i używanie systemu plików
Korzystanie z przetworników ADC i DAC oraz komparatorów
Obsługa wyświetlaczy alfanumerycznych i graficznych
Przetwarzanie dźwięku i danych wideo
Wstęp (9)
- Sprzęt (10)
- Przykłady (11)
- Skróty jednostek (12)
Rozdział 20. Zwalniamy, czyli kiedy opóźnienia są konieczne (13)
- Opóźnienia i XMEGA (18)
- Wykorzystanie timerów do realizacji opóźnień (20)
Rozdział 21. Łączenie kodu C i asemblera (23)
- ABI (25)
- Słowo kluczowe asm (27)
- Typy operandów (29)
- Dostęp do portów IO (30)
- Dostęp do danych wielobajtowych (31)
- Dostęp do wskaźników (32)
- Lista modyfikowanych rejestrów (32)
- Wielokrotne użycie wstawki asemblerowej (33)
- Pliki .S (34)
- Wykorzystanie rejestrów w asemblerze (34)
- Dyrektywy asemblera (40)
- Wywołanie funkcji języka C z asemblera (41)
Rozdział 22. Wyświetlacze LCD alfanumeryczne (43)
- Obsługa wyświetlaczy alfanumerycznych (45)
- Funkcje biblioteczne (50)
- Definiowanie własnych znaków (56)
- Transakcyjna obsługa LCD (58)
Rozdział 23. Interfejs SPI i USART SPI (71)
- Tryby pracy SPI (74)
- Konfiguracja interfejsu SPI (75)
- Konfiguracja USART w trybie SPI (76)
- Pamięci DataFLASH (77)
- Organizacja pamięci (77)
- Interfejs SPI pamięci (79)
- Dostęp do pamięci (81)
- Polecenia (81)
- Rejestr identyfikacyjny pamięci (87)
- Polecenia odczytu pamięci (88)
- Polecenia odczytu i zapisu bufora (89)
- Polecenia transferu pomiędzy pamięcią a buforem (91)
- Rejestry specjalne (94)
- Transakcyjny dostęp do SPI (95)
- Łączymy DMA ze SPI (96)
- Wywołania zwrotne (callbacks) (98)
- Transakcje (103)
- Zasilanie (109)
Rozdział 24. Budujemy system plików (111)
- Najprostszy system plików (111)
- Inicjalizacja pamięci (119)
- System plików FAT/FAT32 (128)
- Obsługa FAT (131)
- Prototypy z diskio.h (136)
- Demonstracja (139)
- Biblioteka PetitFS (144)
- Konfiguracja PetitFS (149)
Rozdział 25. Jeszcze więcej pamięci, czyli karty SD, SDHC i spółka (151)
- Trochę o budowie karty (152)
- Tryby pracy karty (153)
- Zasilanie karty (154)
- Komunikacja (156)
- Tryb pracy SPI (157)
- Format protokołu (157)
- Różnice pomiędzy kartami (160)
- Inicjalizacja karty (161)
- Rejestry specjalne karty (169)
- Operacje zapisu i odczytu sektorów (173)
- Operacje odczytu (173)
- Operacje zapisu (176)
- Suma kontrolna (178)
- Potencjalne problemy (179)
- FATFS na karcie (180)
Rozdział 26. Debuger (183)
- Konfiguracja debugera (185)
- Konfiguracja projektu do debugowania (186)
- Debuger sprzętowy (187)
- Debuger programowy (symulator) (190)
- Pułapki (197)
- Punkty śledzenia (203)
- Pułapki warunkowe (205)
- Podgląd pamięci (207)
- Podgląd stosu wywołań (209)
- Określenie czasu symulacji (209)
- Okno dezasemblera (210)
- Okno podglądu zmiennych (211)
- Łańcuchy formatujące (212)
- Makrodefinicja ASSERT (214)
- Przerwania w trakcie debugowania (218)
- _delay_xx i symulator (219)
Rozdział 27. Przetwornik analogowo-cyfrowy (221)
- Przetwornik potokowy vs. cykliczny (222)
- Napięcie referencyjne (223)
- Konfiguracja pinu IO (225)
- Multiplekser wejściowy (226)
- Układ wzmacniania sygnału (227)
- Co to jest LSB? (228)
- Kalibracja ADC (229)
- Pomiar (231)
- Rozdzielczość przetwornika (231)
- Tryby pracy przetwornika (231)
- Wynik pomiaru (236)
- Kalibracja offsetu (237)
- Pomiar napięcia zasilania i temperatury mikrokontrolera (239)
- Redukcja poboru energii (242)
- Preskaler ADC (243)
- Wyzwalanie konwersji z wykorzystaniem systemu zdarzeń (245)
- Rejestr EVCTRL w XMEGA z ADC bez potoku (248)
- Rejestr porównania (249)
- Termometr LM35 (250)
- Budujemy termometr z alarmem (251)
- Tryb ciągłej konwersji (252)
- Przemiatanie wejść (253)
- Przerwania (254)
- Wykorzystanie DMA do transferu wyników (254)
- Nadpróbkowanie (258)
- Uśrednianie (259)
- Decymacja i interpolacja (259)
- Interpolacja i decymacja w XMEGA (260)
- Jak zwiększyć precyzję pomiarów? (260)
- Budujemy datalogger (261)
- Termistory jako mierniki temperatury (262)
- Program dataloggera (265)
Rozdział 28. Komparator analogowy (279)
- Komparator - trochę teorii (279)
- Czas propagacji (281)
- Histereza (281)
- Komparatory analogowe XMEGA (282)
- Multipleksery wejścia (283)
- Komparator okienkowy (284)
- Przerwania (286)
- Uruchomienie komparatora (287)
- Rejestr stanu komparatora (287)
- Komparator jako oscylator (287)
- Termostat z wykorzystaniem komparatorów (290)
Rozdział 29. DAC (293)
- Buforowanie wyjścia (294)
- Napięcie referencyjne (295)
- Taktowanie (296)
- Zdarzenia (297)
- Wykorzystanie DMA (298)
- Próbkowanie 8-bitowe (300)
- Tryb dwukanałowy (301)
- Generowanie jednocześnie dwóch przebiegów (301)
- Wersja oszczędna (304)
- Inne sposoby wyzwalania konwersji (305)
- Tryb oszczędzania energii (306)
- Kalibracja DAC (306)
Rozdział 30. Monochromatyczne wyświetlacze graficzne (309)
- Podłączenie LCD do mikrokontrolera (311)
- Budowa i funkcje kontrolera ST7565R (313)
- Funkcje specjalne kontrolera (319)
- Inwersja i testowanie obrazu (319)
- Obracanie obrazu (319)
- Regulacja kontrastu (321)
- Numer pierwszej wyświetlanej linii (321)
- Czcionki (322)
- Mała optymalizacja (330)
- Podwójne buforowanie (332)
- Adres początku wyświetlania obrazu (333)
- Menu (335)
- Menu oparte na piktogramach (342)
Rozdział 31. Pliki z danymi - jak je dodawać do projektu? (349)
- Kompilacja plików binarnych (350)
- Łączenie plików obiektowych z projektem (352)
- Dostęp do danych binarnych (356)
- Klasyczny sposób dostępu do danych (358)
- Dostęp do danych z wykorzystaniem przestrzeni adresowych (359)
Rozdział 32. Magistrala pamięci zewnętrznej (361)
- Podłączenie pamięci (362)
- Konfiguracja portów IO (362)
- Przyporządkowanie sygnałów interfejsu EBI do portów IO (363)
- Konfiguracja 4-portowa (364)
- Pamięć SRAM (366)
- Pamięć SRAM w trybie LPC (371)
- Pamięć SDRAM (372)
- Konfiguracja sygnału CS (377)
- Określenie adresu bazowego i wielkości pamięci (377)
- Układ sterowania sygnałem wyboru w trybie SRAM (379)
- Układ sterowania sygnałem wyboru w trybie SDRAM (379)
- Przykładowa konfiguracja pamięci SDRAM (381)
- Konfiguracja zegara (383)
- Dostęp do pamięci z poziomu języka C (384)
- Dostęp do pamięci poniżej granicy 64 kB (384)
- Dostęp do pamięci powyżej granicy 64 kB (386)
Rozdział 33. Generowanie obrazu wideo (391)
- Generowanie obrazu wideo w standardzie VGA (393)
- Wtyczka VGA i konwersja sygnałów (396)
- Monochromatyczny tryb tekstowy VGA (397)
- Monochromatyczny tryb graficzny VGA (407)
- Generowanie sygnału composite (409)
- Standard PAL (410)
- Monochromatyczny tryb tekstowy (413)
- Monochromatyczny tryb graficzny (416)
- Tworzenie nakładek (OSD) (417)
- Czas na kolor (424)
- Kodowanie koloru (425)
- Konwerter cyfrowo-analogowy (426)
- Generator obrazu composite (426)
- Wykorzystanie EuroSCART (428)
- Kolorowy obraz na TV (430)
Rozdział 34. Niech zagra muzyka (439)
- Formaty plików dźwiękowych (440)
- Częstotliwość próbkowania (441)
- Format pliku (442)
- Obróbka dźwięku (443)
- Program Audacity (443)
- Program SoX (445)
- Wzmacniacz (446)
- Odtwarzamy muzykę z wykorzystaniem DAC (447)
- Inny sposób na podwójne buforowanie (457)
- Generowanie dźwięku z wykorzystaniem PWM (461)
- PWM - trochę teorii (461)
- Filtrowanie sygnału PWM (468)
- Odtwarzamy dźwięk za pomocą 8-bitowego PWM (472)
- Rozszerzenie HiRes i PWM o większej rozdzielczości (477)
- Kompresja dźwięku (480)
- Próbkowanie nieliniowe (480)
- Kompresja ADPCM (482)
- Kompresja IMA ADPCM (482)
- Nagrywanie mowy z wykorzystaniem kompresji ADPCM (486)
- Algorytm ADPCM firmy Dialogic (492)
Rozdział 35. A może mp3? (495)
- Koprocesor mp3 (496)
- Sposoby podłączenia do XMEGA (496)
- Dostęp do rejestrów układu (499)
- Format pliku wav (500)
- Rejestry GPIOR (502)
- Testy układu (502)
- Podstawowa komunikacja z koprocesorem (504)
- Rejestry układu VS1003B (508)
- Rejestr trybu pracy (508)
- Rejestr stanu układu (510)
- Rejestr kontroli basów (510)
- Rejestr SCI_CLOCKF (511)
- Rejestr czasu utworu (512)
- Rejestr formatu audio (512)
- Rejestry dostępu do pamięci RAM (513)
- Rejestr adresu wtyczki (513)
- Rejestr kontroli głośności (513)
- Odtwarzamy muzykę (513)
- Odtwarzamy muzykę z wykorzystaniem DMA (518)
- Magnetofon cyfrowy (528)
- VS100XX w roli magnetofonu (529)
- Własne wtyczki (535)
- DTMF jako przykład własnej wtyczki (535)
- Budujemy własną wtyczkę (541)
- Tworzenie tablicy z kodem wynikowym (543)
- Budowa wtyczki (544)
- Własna aplikacja, czyli dekoder DTMF (548)
Rozdział 36. Fusebity i lockbity (557)
- Fusebity (558)
- Fusebit JTAGEN (558)
- Fusebit RSTDISBL (559)
- Fusebit BOOTRST (559)
- Fusebity SUT (559)
- Fusebit TOSCSEL (559)
- Układ detekcji awarii zasilania (559)
- Watchdog (560)
- Fusebit EESAVE (561)
- Lockbity (561)
- Sygnatura produkcyjna procesora (563)
- Numer serii (563)
- Numer wafra (563)
- Położenie na wafrze (564)
- Pozostałe bajty konfiguracyjne (564)
- Sygnatura użytkownika (565)
- Dostęp do danych z poziomu aplikacji użytkownika (568)
- Konfiguracja fuse- i lockbitów w AVR-libc (570)
- Lockbity w AVR-libc (570)
- Fusebity w AVR-libc (571)
Dodatek A. Spis rozdziałów książki "AVR. Praktyczne projekty"
(573)
Skorowidz (575)
584 strony, Format: 16.0x23.5cm, oprawa miękka