опис
Дізнайтеся про практичне застосування периферійних пристроїв для мікроконтролера AVR!
Дізнайтеся, як працюють зовнішні твердотільні накопичувачі
Навчіться користуватися компараторами, АЦП та ЦАП
Вивчіть техніку відтворення зображення та звуку
Мікроконтролери без периферійних пристроїв становлять нішу, розроблену переважно ентузіастами електроніки, для яких програмування є самоціллю. Практичне застосування таких гаджетів можливе лише після додавання масових накопичувачів, буквено-цифрових та графічних дисплеїв, аналого-цифрових та цифро-аналогових перетворювачів, а також датчиків. Завдяки цим системам мікроконтролери AVR спілкуються зі світом, збирають інформацію, зберігають дані та можуть служити нам у повсякденному житті як метеостанції, цифрові медіаплеєри або контролери опалення.
Якщо ви вже маєте певні знання про мікроконтролери AVR і хотіли б розширити свої знання цікавими способами застосування периферійних пристроїв, візьміть унікальну книгу «AVR: Периферійні пристрої». Вона призначена для читачів, які хочуть розширити свої практичні навички програмування для мікроконтролерів AVR, зокрема з сімейства XMEGA. Це природне продовження чудового посібника «AVR: Практичні проекти», орієнтованого на менш досвідчених програмістів. Книга також охоплює елементи мови C, специфічні для мікроконтролерів AVR.
Поєднання коду C і асемблера та налагодження програми
Підтримка інтерфейсів доступу до зовнішньої пам'яті
Створення та використання файлової системи
Використання АЦП, ЦАП та компараторів
Підтримка алфавітно-цифрових і графічних дисплеїв
Обробка аудіо та відео даних
Створюйте практичні рішення за допомогою мікроконтролерів AVR та периферійних пристроїв!
Зміст
Вступ (9)
- Обладнання (10)
- Приклади (11)
- Абревіатури одиниць (12)
Розділ 20. Уповільнення, або коли необхідні затримки (13)
- Затримки та XMEGA (18)
- Використання таймерів для реалізації затримок (20)
Розділ 21. Поєднання C і коду на асемблері (23)
- ABI (25)
- Ключове слово asm (27)
- Типи операндів (29)
- Доступ до портів вводу-виводу (30)
- Доступ до багатобайтних даних (31)
- Доступ до індикаторів (32)
- Список змінених регістрів (32)
- Багаторазове використання монтажної вставки (33)
- Файли .S (34)
- Використання регістрів в асемблері (34)
- Директиви асемблера (40)
- Виклик функції C з асемблера (41)
Розділ 22. Алфавітно-цифрові РК-дисплеї (43)
- Підтримка буквено-цифрового дисплея (45)
- Функції бібліотеки (50)
- Визначення власних персонажів (56)
- Підтримка транзакцій LCD (58)
Розділ 23. Інтерфейс SPI та USART SPI (71)
- Режими роботи SPI (74)
- Конфігурація інтерфейсу SPI (75)
- Конфігурація USART у режимі SPI (76)
- Пам'ять DataFLASH (77)
- Організація пам'яті (77)
- Інтерфейс пам'яті SPI (79)
- Доступ до пам'яті (81)
- Команди (81)
- Реєстр ідентифікації пам'яті (87)
- Команди читання з пам'яті (88)
- Команди читання та запису буфера (89)
- Команди передачі пам'яті в буфер (91)
- Спеціальні реєстри (94)
- Трансакційний доступ до SPI (95)
- Підключення DMA до SPI (96)
- Зворотні дзвінки (98)
- Транзакції (103)
- Блок живлення (109)
Розділ 24. Побудова файлової системи (111)
- Найпростіша файлова система (111)
- Ініціалізація пам'яті (119)
- Файлова система FAT/FAT32 (128)
- Підтримка FAT (131)
- Прототипи з diskio.h (136)
- Демонстрація (139)
- Бібліотека PetitFS (144)
- Конфігурація PetitFS (149)
Розділ 25. Ще більше пам'яті, тобто SD-карти, SDHC-карти та інші (151)
- Трохи про структуру картки (152)
- Режими роботи карти (153)
- Плата живлення (154)
- Зв'язок (156)
- Режим роботи SPI (157)
- Формат протоколу (157)
- Відмінності між картами (160)
- Ініціалізація картки (161)
- Картки спеціальних реєстрів (169)
- Операції запису та читання секторів (173)
- Операції читання (173)
- Операції запису (176)
- Контрольна сума (178)
- Потенційні проблеми (179)
- FATFS на картку (180)
Розділ 26. Налагоджувач (183)
- Конфігурація відладчика (185)
- Налаштування проекту для налагодження (186)
- Налагоджувач апаратного забезпечення (187)
- Програмний налагоджувач (симулятор) (190)
- Файл для стимуляції (191)
- Пастки (197)
- Точки стеження (203)
- Умовні пастки (205)
- Перегляд пам'яті (207)
- Вид стека викликів (209)
- Визначення часу моделювання (209)
- Розбірне вікно (210)
- Змінне вікно попереднього перегляду (211)
- Визначення макросу ASSERT (214)
- Налагодження переривань (218)
- _delay_xx і симулятор (219)
Розділ 27. Аналого-цифровий перетворювач (221)
- Потоковий конвертер проти. циклічний (222)
- Опорна напруга (223)
- Конфігурація контактів IO (225)
- Вхідний мультиплексор (226)
- Система посилення сигналу (227)
- Що таке LSB? (228)
- Калібрування АЦП (229)
- Вимірювання (231)
- Роздільна здатність перетворювача (231)
- Режими роботи перетворювача (231)
- Результат вимірювання (236)
- Калібрування зсуву (237)
- Вимірювання напруги живлення та температури мікроконтролера (239)
- Зменшення енергоспоживання (242)
- АЦП преділителя (243)
- Запуск конверсій за допомогою системи подій (245)
- Регістр EVCTRL у XMEGA з АЦП без конвеєра (248)
- Реєстр порівняння (249)
- Термометр LM35 (250)
- Збираємо термометр з сигналізатором (251)
- Режим безперервного перетворення (252)
- Розгортка входу (253)
- Переривання (254)
- Використання прямого доступу до пам'яті (DMA) для передачі результатів (254)
- Передискретизація (258)
- Усереднення (259)
- Децимація та інтерполяція (259)
- Інтерполяція та децимація в XMEGA (260)
- Як підвищити точність вимірювання? (260)
- Створюємо реєстратор даних (261)
- Термістори як вимірювачі температури (262)
- Програма Datalogger (265)
Розділ 28. Аналоговий компаратор (279)
- Компаратор - трохи теорії (279)
- Час поширення (281)
- Гістерезис (281)
- Аналогові компаратори XMEGA (282)
- Вхідні мультиплексори (283)
- Віконний компаратор (284)
- Переривання (286)
- Запуск компаратора (287)
- Реєстр статусу компаратора (287)
- Компаратор як генератор (287)
- Термостат з використанням компараторів (290)
Розділ 29. DAC (293)
- Буферизація виводу (294)
- Опорна напруга (295)
- Тактування (296)
- Події (297)
- Використання DMA (298)
- 8-бітна семпліфікація (300)
- Двоканальний режим (301)
- Одночасне генерування двох форм хвиль (301)
- Економ версія (304)
- Інші способи ініціювання конверсій (305)
- Режим енергозбереження (306)
- Калібрування ЦАП (306)
Розділ 30. Монохромні графічні дисплеї (309)
- Підключення LCD до мікроконтролера (311)
- Будова та функції контролера ST7565R (313)
- Спеціальні функції контролера (319)
- Інверсія та тестування зображень (319)
- Обертання зображення (319)
- Регулювання контрастності (321)
- Номер першого рядка, що відображається (321)
- Шрифти (322)
- Мала оптимізація (330)
- Подвійна буферизація (332)
- Початкова адреса відображення зображення (333)
- Меню (335)
- Меню на основі піктограм (342)
Розділ 31. Файли даних - як їх додати в проект? (349)
- Компіляція бінарних файлів (350)
- Зв'язування об'єктних файлів з проектом (352)
- Доступ до бінарних даних (356)
- Класичний спосіб доступу до даних (358)
- Доступ до даних за допомогою адресних просторів (359)
Розділ 32. Шина зовнішньої пам'яті (361)
- Підключення пам'яті (362)
- Конфігурація портів вводу-виводу (362)
- Призначення сигналів інтерфейсу EBI портам вводу-виводу (363)
- 4-портова конфігурація (364)
- Пам'ять SRAM (366)
- Пам'ять SRAM в режимі LPC (371)
- Пам'ять SDRAM (372)
- Конфігурація сигналу CS (377)
- Визначення базової адреси та розміру пам'яті (377)
- Схема керування сигналом вибору режиму SRAM (379)
- Схема керування сигналом вибору режиму SDRAM (379)
- Приклад конфігурації SDRAM (381)
- Конфігурація годинника (383)
- Доступ до пам'яті з C (384)
- Доступ до пам'яті менше 64 КБ (384)
- Доступ до пам'яті понад 64 КБ (386)
Розділ 33. Створення відеозображення (391)
- Створення відеозображення VGA (393)
- VGA-штекер та перетворення сигналу (396)
- Монохромний текстовий режим VGA (397)
- Монохромний графічний режим VGA (407)
- Генерація композитного сигналу (409)
- Стандарт PAL (410)
- Режим монохромного тексту (413)
- Режим монохромної графіки (416)
- Створення накладень (OSD) (417)
- Час фарбувати (424)
- Кольорове кодування (425)
- Цифро-аналоговий перетворювач (426)
- Генератор композитного зображення (426)
- За допомогою EuroSCART (428)
- Кольорове зображення на телевізорі (430)
Розділ 34. Нехай грає музика (439)
- Формати аудіофайлів (440)
- Частота дискретизації (441)
- Формат файлу (442)
- Обробка звуку (443)
- Зухвалість (443)
- Програма SoX (445)
- Підсилювач (446)
- Відтворюємо музику за допомогою DAC (447)
- Інший спосіб подвоїти буферизацію (457)
- Генерація звуку за допомогою ШІМ (461)
- ШІМ - трохи теорії (461)
- ШІМ фільтрація сигналу (468)
- Відтворюємо звук за допомогою 8-бітної ШІМ (472)
- Розширення HiRes і PWM з вищою роздільною здатністю (477)
- Стиснення аудіо (480)
- Нелінійна вибірка (480)
- Компресія ADPCM (482)
- Стиснення IMA ADPCM (482)
- Запис мови з використанням стиснення ADPCM (486)
- Алгоритм Dialogic ADPCM (492)
Розділ 35. А може mp3? (495)
- Mp3 співпроцесор (496)
- Способи підключення до XMEGA (496)
- Доступ до системних регістрів (499)
- формат файлу wav (500)
- Регістри GPIOR (502)
- Системні тести (502)
- Базовий зв'язок із співпроцесором (504)
- Регістри VS1003B (508)
- Реєстр режимів роботи (508)
- Реєстр статусу системи (510)
- Регістр керування басами (510)
- Реєстр SCI_CLOCKF (511)
- Журнал часу пісні (512)
- Реєстр звукових форматів (512)
- Регістри доступу до оперативної пам'яті (513)
- Реєстр адрес плагіна (513)
- Регістр керування гучністю (513)
- Музикуємо (513)
- Відтворюємо музику через DMA (518)
- Цифровий магнітофон (528)
- VS100XX як магнітофон (529)
- Спеціальні плагіни (535)
- DTMF як приклад вашого власного плагіна (535)
- Створення власного плагіна (541)
- Створення масиву з кодом результату (543)
- Розробка плагінів (544)
- Власний додаток, тобто декодер DTMF (548)
Розділ 36. Запобіжники та замки (557)
- Запобіжники (558)
- Fusebit JTAGEN (558)
- Запобіжник RSTDISBL (559)
- Запобіжник BOOTRST (559)
- Запобіжники SUT (559)
- Fusebit TOSCSEL (559)
- Система виявлення збою живлення (559)
- Сторожовий пес (560)
- Fusebit EESAVE (561)
- замки (561)
- Підпис виробництва процесорів (563)
- Серійний номер (563)
- Вафельний номер (563)
- Локація на вафлі (564)
- Залишок байтів конфігурації (564)
- Підпис користувача (565)
- Доступ до даних з програми користувача (568)
- Калібрувальні байти (569)
- Налаштування fuse та lockbits у AVR-libc (570)
- Блокіти в AVR-libc (570)
- Fusebits в AVR-libc (571)
Додаток А. Список розділів книги «AVR. Практичні проекти» (573) Індекс (575)