Тег: avr
Прошивка AVR мікроконтролерів за допомогою Raspberry Pi
А чому не спробувати прошити мою ATmega за допомогою Raspberry Pi? Така думка стрельнула мені в голову, коли я зробив невеличку плату розширення для Raspberry Pi. Raspberry Pi має протокол SPI, тому це проблема виключно програмного плану. Я відразу встановив свого улюбленого Avrdude. Про Avrdude для Windows я вже писав у статті AVRDUDE Windows. Але стандартний Avrdude не знає про ноги SPI, тому, трохи покопавшись в Інтернеті, знайшов рецепт. Існує проект https://github.com/kcuzner/avrdude , в якому avrdude допиляли для Raspberry Pi.
I2C Slave. Приклад для AVR мікроконтролера Atmega
I2C Шина (TWI)
I2C - послідовна шина даних для зв`язку інтегральних схем, що використовує дві двонаправлені лінії зв`язку (SDA і SCL). Використовується для з`єднання низькошвидкісних периферійних компонентів. Назва є абревіатурою слів Inter-Integrated Circuit. TWI (Two Wire Interface) або TWSI (Two Wire Serial Interface) по суті та ж сама шина I2C, але використовує іншу назву з ліцензійних причин. I2C використовує дві двонаправлені лінії, підтягнуті до напруги живлення і керовані через відкритий колектор або відкритий стік - послідовна лінія даних (SDA, англ. Serial DAta) і послідовна лінія тактування (SCL, англ. Serial CLock). Стандартні напруги живлення +5 В або +3,3 В.
Стрелочные приборы
Сегодня мы поговорим об архаичных, но все еще не вышедших со строя вещах - о стрелках. Точнее - о стрелочных приборах. Казалось бы, в наше время - время современных технологий такой устаревший способ отображения информации, как стрелочные приборы, уходит в прошлое. Но, как ни странно, иногда заменить стрелочного "динозавра" просто нечем. Если во время управления, каким либо транспортом или механизмом необходимо обеспечить быстрое считывание информации - стрелочный прибор незаменим. Для считывания цифровой информации человеческому мозгу требуется значительно больше времени, а иногда чрезмерное отвлечение от основного процесса управления может привести к потери контроля над ситуацией. Поэтому, на приборных досках автомобилей (и не только) "стрелка" будет жить долго, хотя постепенно и вытесняется графическими дисплеями, имитирующими стрелку. Если у Вас возникла необходимость отображать информацию графическим способом, а не цифровым, Вы можете столкнуться с некоторыми проблемами. Современные графические дисплеи могут "слепнуть" на ярком солнечном свете. Линейки светодиодов не решают проблему по той же причине. Остается старая добрая "стрелка". Как же можно реализовать механическую стрелку?
AVRDUDE Windows
AVRDUDE (http://www.nongnu.org/avrdude/) - мощная программа для прошивки микроконтроллеров Atmel серии AVR. Разработчик Brian S. Dean. Программа поддерживает множество программаторов. AVRDUDE кросплатформенная. Многих, особенно начинающих, пугает тот факт, что программа консольная, и использовать ее нужно с командной строки. И напрасно, ничего сложного в этом нет.
Большинство "оконного" ПО, которое я опробовал, было убогим. Кажущаяся простота графического интерфейса не позволяла в полной мере работать с микроконтроллером. Кроме того, для каждого программатора (железяки), требовалась своя программа-программатор. Часто случалось, что ПО программатора не поддерживает нужный мне микроконтроллер. Все это породило массу неудобств. Эти проблемы ушли после перехода на AVRDUDE. AVRDUDE поддерживает огромное количество программаторов, работающих по параллельному порту (LPT), последовательному порту, USB-программаторы. Теперь у меня один AVRDUDE на все 3 вида используемых программаторов (см. Программаторы микроконтроллеров AVR).
Микроконтроллеры ATMEL. Фьюзы. Fuses.
Фьюзы (Fuses) - это несколько специальных байт, которые можно прошить только программатором, и отвечают они за разные настройки микроконтроллера. У разных микроконтроллеров фьюзы могут отличаться. Поэтому более подробную информацию смотрите в документации. Поскольку это делается в последнюю очередь, я приведу здесь краткое описание фьюзов и перечислю наиболее часто встречающиеся ошибки при работе с фюзами.
DS1302 Побеждаем время. ds1302.c для WinAVR (GCC)
DS1302 - это микросхема реального времени. Она обеспечивает ход времени, даже когда основное устройство отключено от питания.
Основные характеристики:
- - простота подключения к микроконтроллеру по трехпроводному интерфейсу.
- - питание от 2 до 5.5 В.
- - из внешних элементов часовой кварц 32768 Гц и батарейка резервного питания 3В (я использую RC2032). Батарейки хватает надолго, микросхема потребляет около 300 нА (наноампер)!
- - считает секунды, минуты, часы, день месяца, месяц, год, день недели. Учитываются високосные года. Микросхема сможет работать до 2100года. Дальше не хватит счетчика лет. Это, несомненно, опечалило меня. :)
- - отображение времени в 12 или 24 часовом режимах с отображением AM или PM
Использование cимвольных жидкокристаллических LCD дисплеев. Пример на GCC (WinAVR) для Atmega 8
Основными достоинствами символьных жидкокристаллических индикаторов (дисплеев) являются простота использования, не большая потребляемая мощность, рабочие напряжения 3..5 В, долговечность (до 15 лет непрерывной работы). На данный момент очень популярны ЖКИ компания Winstar. Не то чтобы популярны, соотношение цена/качество у них наиболее приемлемое. Winstar производить широкую линейку ЖКИ в том числе и графические индикаторы, но сегодня мы говорим о символьных. (см. также Графический дисплей WG12864A)
Простая отладочная плата
Мой брат занялся микроконтроллерами. У меня есть AVR-Easy, но, во-первых, я ее зажал :), во-вторых, она большая по габаритам. Ему я сделал небольшую отладочную плату под мега популярную ATMega8. Специально, чтобы в кармане на работу носить и в свободное время под столом чего-то мудрить. В общем, ничего особенного, пустяшная штуковина, чего про нее писать!? Но настолько удачная получилась, что я и решил себе сделал как мобильный боевой вариант. Делалась под имеющиеся программаторы (AVR910 USB Programmer) Вот решил поделиться. Печатная плата здесь. Схему даже не рисовал.
P.S. Сергей Федоров прислал простую отладочную плату для Mega16 на борту RS-232, питание от программатора.
Подключаем микроконтроллер к компьютеру. Com-порт (RS-232), USB
В Микроконтроллерах Atmel есть интерфейс UART. Фактически это тот же RS-232, но с другими логическими уровнями. Используя его подключим наш микроконтроллер к компьютеру.
Программаторы микроконтроллеров AVR
Неболшой обзор используемых на практике программаторов для микроконтроллеров AVR. AVR ISP Prorgammer и USB программатор AVR / 89S совместимый с AVR910.
Ю.А. Шпак Программирование на языке С для AVR и PIC микроконтроллеров
Одна из самых полезных книг. Очень подробные и понятные описания. Множество примеров на C. Краткое оглавление: Глава 1. Архитектура Микроконтроллеров AVR и PIC Глава 2. Компиляторы и средства разработки Глава 3. Язык С и директивы препроцессора Глава 4. Программные примеры для микроконтроллеров AVR Глава 5. Программные примеры для микроконтроллеров PIC Приложение А. Таблица символов ASCII Приложение Б. Преобразование из одной системы счисления в другую Приложение В. Система команд микроконтроллеров AVR Приложение Г. Система команд микроконтроллеров PIC Приложение Д. Библиотечные функции и макроопределения
Гребнев В.В. Микроконтроллеры семейства AVR фирмы Atmel
Очень толковая книга. Написана доступно, понятно. В книге рассмотрены все, что касается семейства AVR. От их структуры до средств разработки, включая схемы внутрисистемных программаторов, и работа с ними.
Недавні записи
- LCD Display ST7567S (IIC)
- Розпізнавання мови (Speech recognition)
- Selenium
- Комп'ютерний зір (Computer Vision)
- Деякі думки про точність вимірювань в електроприводі
- Датчики Холла 120/60 градусів
- Модуль драйверів напівмосту IGBT транзисторів
- Драйвер IGBT транзисторів на A316J
- AS5600. Варіант встановлення на BLDC мотор
- DC-DC для IGBT драйверів ізольований 2 W +15 -8 вольт
Tags
battery soldering java-script ngnix adc rs-232 flask esp8266 watchdog web exti solar mongodb rtc sms pwm usart books ethernet smd git websocket meteo css python dc-dc displays led ssd1306 eeprom gpio barometer max1674 mpx4115a brushless motor mpu-6050 timer sensors remap servo bldc atmega pmsm 3d-printer flash encoder examples dma raspberry-pi tim ssd1331 piezo mpu-9250 rfid eb-500 foc bme280 gps nvic dht11 bluetooth hih-4000 stm32 st-link docker uart avr html wifi bmp280 bkp nodemcu options usb lcd programmator i2c capture
Архіви