С Днём Победы! 1941-1945 Помним Гордимся Наследуем
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Форум » ХабароведЪ » Свободное общение » Наши Хобби » AVR (AVR и прочие микроконтроллеры)
AVR
adminДата: Четверг, 08.09.2016, 09:40 | Сообщение # 1 | habaroved.net
Главный админ
Группа: Администраторы
Имя:Евгений
Сообщений: 5875
Награды: 1 [ 440 ]
Статус: Offline
Микроконтро́ллер (англ. Micro Controller Unit, MCU) — микросхема, предназначенная для управления электронными устройствами.

Типичный микроконтроллер сочетает на одном кристалле функции процессора и периферийных устройств, содержит ОЗУ и (или) ПЗУ. По сути, это однокристальный компьютер, способный выполнять относительно простые задачи.

Отличается от микропроцессора интегрированными в микросхему устройствами ввода-вывода, таймерами и другими периферийными устройствами.

AVR — семейство восьмибитных микроконтроллеров фирмы Atmel.

Микроконтроллер AVR содержит: быстрый RISC-процессор, два типа энергонезависимой памяти (Flash-память программ и память данных EEPROM), оперативную память RAM, порты ввода/вывода и различные периферийные интерфейсные схемы.

Устройство микроконтроллеров семейства ATmega



Семейство микроконтроллеров на AVR atmega не заканчивается и не начинается, их большое множество:

MCS 51 (Intel)
MSP430 (TI)
ARM (ARM Limited)
ST Microelectronics STM32 ARM-based MCUs
-Atmel Cortex, ARM7 и ARM9-based MCUs
-Texas Instruments Stellaris MCUs
-NXP ARM-based LPC MCUs
-Toshiba ARM-based MCUs
-Analog Devices ARM7-based MCUs
-Cirrus Logic ARM7-based MCUs
-Freescale Semiconductor ARM9-based MCUs
AVR (Atmel)
-ATmega
-ATtiny
-XMega
PIC (Microchip)
STM8 (STMicroelectronics)
С8051F34x
RL78 (Renesas Electronics)
и т.д.
Прикрепления: 6437937.png(67.6 Kb)


 
 
adminДата: Четверг, 08.09.2016, 09:44 | Сообщение # 2 | habaroved.net
Главный админ
Группа: Администраторы
Имя:Евгений
Сообщений: 5875
Награды: 1 [ 440 ]
Статус: Offline
Ну собственно поделюсь своими экспериментами в этой области пока на примере Atmel atmega32L

ATmega32, ATmega32L - 8-битные AVR микроконтроллеры с 32К Байт внутрисистемно программируемой FLASH памяти.

Характеристики:
Высокопроизводительные, мало потребляющие AVR 8- битные микроконтроллеры
Развитая RISC архитектура:
- 131 исполняемых команд, большинство за один машинный такт
- 32 рабочих регистра общего назначения
- полностью статический режим работы
- производительность до 16 MIPS при 16 МГц
- встроенный 2-х тактовый умножитель
Энергонезависимая память программ и данных
- 32К байт внутрисистемно самопрограммируемой FLASH памяти с количеством циклов перепрограммирования до 10 000.
- Опционно загрузочная область памяти с независимыми ключевыми битами, внутрисистемное программирование встроенной загрузочной программой, правильное чтение в процессе записи.
- 1024 байт EEPROM с допустимым количеством циклов стирания записи до 100 000.
- 2К байт внутренней SRAM
- программируемый ключ защиты программ
JTAG (IEEE1149.1 совместимый) интерфейс
- Сканирование памяти в соответствии с JTAG стандартом
- Встроенная поддержка отладчика
- Программирование FLASH, EEPROM, охранных и ключевых бит через JTAG интерфейс
Периферийные функции
- два 8-битных таймера/счётчика с программируемым предделителем и режимом сравнения
- один 16-битный таймер/счётчик с программируемым предделителем, режимом сравнения и захвата
- счётчик реального времени с программируемым генератором
- четыре ШИМ генератора
- 8-и канальный, 10-и битный АЦП
- байт- ориентированный, двухпроводный интерфейс
- программируемый USART
- Master/Slave SPI последовательный интерфейс
- Программируемыи Watchdog таймер с программируемым генератором
- Встроенный аналоговый компаратор
Специальные функции
- Reset по включению питания и выключение при снижении напряжения питания
- Внутренний калиброванный RC генератор
- Внешние и внутренние источники прерывания
- Шесть экономичных режимов: Idle, подавления шумов АЦП, экономичный, режим Выкл. , режим ожидания и режим расширенного ожидания.
32 программируемых вывода вход-выход и 1 вход
40 выводной корпус PDIP, 44 выводной корпус TQFP, и 44 контактный MLF
Напряжение питания:
- 2.7 В до 5.5 В для ATmega32L
- 4.5 В до 5.5 В для Atmega32
Тактовая частота:
0-8 МГц Atmega32L
- 0-16 МГц Atmega32

Блок-схема:


Данный МК выпускается в двух корпусах PDIP и TQFP/MLF
Распиновка:
Прикрепления: 6092501.gif(19.2 Kb) · 6370883.gif(11.7 Kb) · 2952480.gif(10.0 Kb)


 
 
adminДата: Четверг, 08.09.2016, 09:56 | Сообщение # 3 | habaroved.net
Главный админ
Группа: Администраторы
Имя:Евгений
Сообщений: 5875
Награды: 1 [ 440 ]
Статус: Offline
Ну и не посредственно немного практики

Спаял программатор (USBasp), написал прошивку, прошил МК и заставил его мигать светодиодами



Программатор USBasp был ранее заказан как конструктор, его оставалось только спаять правильно и испытать.
Испытание программатора как видим прошло успешно :)
Слева на видео программатор, справа тестовая плата с контроллером JY-MCU JY-MEGA32-DEMO V1.3 , минимальной обвязкой.
Программатор подключен к ПК, тестовая платка с МК в свою очередь подключена к программатору.
На плате без прошивке горит 1 красны светодиод сигнализирующий о питании, на программаторе аналогично.
Далее на ПК нажимаю кнопку прошить МК, на программаторе загорается зеленый светодиод (что сигнализирует об обмене ПК программатора и МК), на плате с МК в процессе прошивки тоже помигивают первые светодиоды, по завершении процесса прошивки зеленый светодиод на программаторе тухнет, и на плате с МК начинают мигать светодиоды согласно прошитой в него программы.


 
 
adminДата: Четверг, 08.09.2016, 09:59 | Сообщение # 4 | habaroved.net
Главный админ
Группа: Администраторы
Имя:Евгений
Сообщений: 5875
Награды: 1 [ 440 ]
Статус: Offline
Продолжил я свои эксперименты с микроконтроллерами.
Состав практичсеки не изменился, программатор USBasp, мк atmega32l и добавился ультразвуковой излучатель и приемник HC-SR04.

atmega32l генерирует импульс длительностью 10 мс и отправляет его на излучатель, после отправки сигнала начинает слушать уз приемник, как только в уз приемнике появится отраженный сигнал начинается расчет в МК растояния замерив разницу во времени и зная скорость распространения УЗ вол в воздухе, получает значение растояния, после чего зажигает нужный светодиод, нет объекта в зоне видимости все светодиоды потушены, чем ближе объект тем больше светодиодов горит. Можно конечно вывести конкретное значение растояния до объекта например в см на ЖК экран, но его под рукой не оказалось.
На видео сначала прошивка, как тухнет зеленый светодиод на программаторе запускается уже прошитая прога в МК, несколько секунд в качестве диагностики мигают светодиоды, потом тухнут ну и начинается демонстрация.
Прога чуть нетокаллиброванна, но принцип думаю понятен



Чем ближе объект, тем больше светодиодов горит, чем дальше тем меньше, нет объекта в зоне видимости, светодиоды не горят. Далеко отодвинуть объект не удавалось, так как одной рукой снимал, второй отодвигал объект.
Впринципе все работает.


 
 
adminДата: Среда, 21.09.2016, 13:12 | Сообщение # 5 | habaroved.net
Главный админ
Группа: Администраторы
Имя:Евгений
Сообщений: 5875
Награды: 1 [ 440 ]
Статус: Offline
Нашел в инете распиновку JY-MCU JY-MEGA32-DEMO V1.2 (обратите внимание версия 1.2) я использую JY-MCU JY-MEGA32-DEMO V1.3 (версия 1.3) распинвка чуть отличается, по крайней мере заметил что у меня кнопка SW4 подключена к PD6 а не к PD7 как в версии платы 1.2
На версии 1.3 кнопки подключены к PD3 - PD6
Прикрепления: 3440563.jpg(42.1 Kb)


 
 
adminДата: Среда, 21.09.2016, 18:26 | Сообщение # 6 | habaroved.net
Главный админ
Группа: Администраторы
Имя:Евгений
Сообщений: 5875
Награды: 1 [ 440 ]
Статус: Offline
Поэкспериментировал с обработкой нажатия кнопочек, как индикатор нажатия воспользовался имеющимися светодиодами.

Нажимаем на кнопку загорается светодиод, ещё раз нажимаем тухнет, такой алгоритм прописан на все 4 кнопки подключенные к PD3-PD6



Ну а тут чуть попроще, соответствующий светодиод просто вспыхивает при нажатии на кнопку.



В обоих случаях подтягивающие резисторы для кнопок использовались внутренние, т.е. программно активированные из состава самой меги


 
 
adminДата: Четверг, 20.10.2016, 08:40 | Сообщение # 7 | habaroved.net
Главный админ
Группа: Администраторы
Имя:Евгений
Сообщений: 5875
Награды: 1 [ 440 ]
Статус: Offline
Несколько слов о подключении USB to TTL конвертера к AVR board JY-MCU JY-MEGA32-DEMO V1.3
Исходя из распиновки МК конвертер подключаем к 9 и 10 пину PD0(RXD), PD1(TXD)
Пин ковертера RXD к пину МК TXD, пин ковертера TXD к пину МК RXD

Описание касательно используемого мной конвертера YP-02 USB to TTL на CH340



Мало ли, так на всякий случай обратил на это внимание.
В других конвертерах может быть несколько иная распиновка в плане RXD и TXD пинов

Данный конвертер может служить для программирования arduino pro min так как у них на плате отсутствуют какие либо железные возможности для этого, также используется для обмена данными между МК и например ПК через терминал ну и т.д.
Прикрепления: 3337256.jpg(11.8 Kb)


 
 
adminДата: Четверг, 20.10.2016, 11:23 | Сообщение # 8 | habaroved.net
Главный админ
Группа: Администраторы
Имя:Евгений
Сообщений: 5875
Награды: 1 [ 440 ]
Статус: Offline
Немного поигрался с 3х осевым магнитометром HMC5883L (GY-271)

Магнитометр — это прибор, который измеряет напряженность магнитного поля. Все современные электронные магнитометры изготавливаются по
технологии МЭМС и позволяют проводить измерения сразу по
трем перпендикулярным осям. А углом проекций этих осей будет угол направления на север.

На рисунке изображен простой случай, когда компас расположен горизонтально поверхности земли на экваторе. Красной стрелкой отмечено
направление к северному полюсу. Пунктиром отмечены проекции этой стрелки
на соответствующие оси.



На этом пока закончу, ибо рассуждения о магнитных волнах, магнитизме, полюсах, направлении, особенностях земного шара и т.д. - очень обширная тема.
Данный прибор сам по себе измеряет магнитное поле, в комплексе с другими в сочетании с акселерометром и/или гироскопом представляют собой инерциальную систему, способную точно определять местоположение в
трехмерном пространстве и т.д.

Теперь о самом магнитометре HMC5883L
HMC5883L может измерять магнитное поле в диапазоне от –8 до +8 гаусса. Благодаря изменяемому коэффициенту
усиления (GN) чувствительность датчика может варьироваться от 0.73
мГс/LSB (милигаусс на младший значащий разряд) до 4.35 мГс/LSB при
изменении GN от 0 до 7, соответственно. Настройка и считывание данных
происходит по шине I2C. Всего имеется 12 восьмиразрядных регистров. Два регистра настройки (Register A и Register cool позволяют
изменять частоту выдачи данных, режим измерения, количество выборок за
время одного замера и коэффициент усиления. С помощью регистра режима <br / angry Mode Register) можно выбрать режим функционирования датчика: либо он
будет измерять непрерывно (Continuous-Measurement Mode), либо проведет
измерение один раз и перейдет в режим ожидания (Single-Measurement
Mode). В шесть регистров, расположенных по адресам с 0x03 по 0x08,
помещаются результаты измерений. На одну ось выделяется по два регистра <br / angry Output Register A и Output Register cool , причем регистр A является
старшим по отношению к регистру B. Полученное значение представляется
12-разрядным числом. Регистр статуса (Status Register) имеет всего два
бита – бит готовности (RDY) и бит «защелки» (LOCK). Бит готовности
устанавливается после того, как данные будут записаны во все шесть
выходных регистров. Для осуществления не программного, а аппаратного
опроса, его функция дублируется выводом DRDY. Бит «защелки»
устанавливается, когда данные из одного или нескольких (но не из всех)
выходных регистров были считаны, либо когда был считан регистр режима.
Оставшиеся три регистра представляют собой идентификационные регистры <br / angry Identification Registers), позволяющие управляющему устройству при
необходимости определить этот датчик.
Доступ к магнитометру осуществляется по шине I2C. Запись производится по адресу 0x3C, а чтение – 0x3D. Для удобства
считывания данных имеется функция автоматического инкремента адреса
выходных регистров с последующим переходом на адрес 0x03 (старший
регистр оси X) по завершении считывания данных из всех выходных
регистров. Необходимо также отметить, что выходные регистры расположены в
«неправильном» порядке, то есть при последовательном считывании сначала
будут взяты данные оси X, затем оси Z, и в последнюю очередь оси Y. Это
необходимо учитывать в программе.
На этом также тормозну, ибо дальше мы опять перейдем к физике, математике и другим наукам.

Теперь практика.
Собственно что имеем:
3х осевой магнитометром HMC5883L (GY-271)
AVR board на atmega32L работающую от внешнего кварца на 16мГц
программатор USBasp
UART USB to TTL конвертер для вывода полученной информации в терминал ПК

Всё это соответственно нужным образом подключено, программа управления для AVR board расчитывающая и интерпретирующая значения магнитного поля по осям написана и зашита в МК, ну и собственно все запущено

Результат



Скрин терминала



В терминале видны поступающие значения магнитной напряженности по 3м осям, а так же угол проэкции по осям, так называемое направления на север (Азимут).
Вместо терминала инфу можно вывести на ЖК экран и т.д.
Прикрепления: 3325539.jpg(6.2 Kb) · 4272332.jpg(159.3 Kb)


 
 
adminДата: Понедельник, 24.10.2016, 10:14 | Сообщение # 9 | habaroved.net
Главный админ
Группа: Администраторы
Имя:Евгений
Сообщений: 5875
Награды: 1 [ 440 ]
Статус: Offline
Поэкспериментировал сегодня с модулем датчика DHT11 (цифровой датчик температуры и влажности)

Характеристики
  • Напряжение питания: 3–5 В
  • Потребляемый ток при запросе данных: 2,5 мА
  • Потребляемый ток в ожидании: 100 мкА
  • Диапазон температур: 0–50 °С
  • Погрешность температуры: ±2 °С
  • Диапазон влажности: 20–90%
  • Погрешность влажности: ±5%


В процессе столкнулся с некими кривотолками при его подключении.
Вкратце, если подключаем просто датчик (имеет 4 пина) на прямую к МК, то нужно использовать подтягивающий резистор, как собственно везде и описано, если же подключаем модуль с датчиком DHT11(имеет 3 пина) то подтягивающий резистор не нужен, он уже имеется на плате.

Прикрепления: 7388991.jpg(17.4 Kb)


 
 
adminДата: Среда, 23.11.2016, 10:21 | Сообщение # 10 | habaroved.net
Главный админ
Группа: Администраторы
Имя:Евгений
Сообщений: 5875
Награды: 1 [ 440 ]
Статус: Offline
Решил я для своих экспериментов с микроконтроллерами обзавестись дисплейчиком, посимпатичнее, более наглядно и более удобочитаемо воспринимать разного роду инфу от мк, плюс комп не нужен для вывода информации.

Выбор пал на компактный графический OLED дисплей (симпатичный, приятнее воспринимается информация, возможность отображение графики и т.д.).
Вот и приехал он ко мне
OLED дисплеем 128х64 работающий по шине I2c на SSD1306
На плате дисплея имеется вот такая надпись GM009605
Фото конкретного экземпляра (их большая куча разновидностей)





Стал разбираться...
Для работы понадобилось две библиотеки:
glcdSSD1306-I2C.lib (для дисплея)
i2c_twi.lbx (для шины I2C)
ну и набор шрифтов, можно самим шрифты изготовить, а можно взять готовые
font6x8.font (я использовал 6х8)
В общих чертах разобрался, написал программу для микроконтроллера, прошил МК, ну и все как сказать заработало, результат на видео ниже



Мерцание на дисплее - результат видео съемки, глазом нет никакого мерцания

В архиве I2C_SSD1306_Lib_Font.rar библиотеки и шрифт
Прикрепления: 3801978.jpg(246.3 Kb) · 3859573.jpg(525.6 Kb) · I2C_SSD1306_Lib.rar(7.2 Kb)


 
 
Форум » ХабароведЪ » Свободное общение » Наши Хобби » AVR (AVR и прочие микроконтроллеры)
  • Страница 1 из 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Поиск:
Последние 10 ответов на форуме
Тема Дата, Время Автор Раздел
Ножи РИ и СССР 17.09.2019, 10:13 Kersh Наши Хобби
Читать
ТАГАЗ С 190 16.09.2019, 09:42 admin Наш транспорт/Гараж
Читать
Кулинарим 13.09.2019, 17:00 Kersh Провизия/Еда/Пища
Читать
Рыбалка Охота 11.09.2019, 17:00 Kersh Наши Хобби
Читать
Грибы, ягоды и другие запасы..... 09.09.2019, 17:00 Kersh Наши Хобби
Читать
Поздравляю! 20.08.2019, 22:44 Kersh Поздравляю!
Читать
Baofeng UV-82 19.08.2019, 23:18 ilien Связь
Читать
AVR 30.07.2019, 10:29 torn_eb Наши Хобби
Читать
Топоры 29.07.2019, 08:06 admin Чистка/Консервация находок
Читать
Мои детективы о копателях &quo... 15.07.2019, 10:33 admin Наши Хобби
Читать