Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam

Пикабу Игры +1000 бесплатных онлайн игр

Открой для себя волшебный мир реальной рыбалки. Лови реальную рыбу на реальных водоемах! Исследуй новые рыболовные места и заполучи заветный трофей.

Реальная Рыбалка

Симуляторы, Мультиплеер, Спорт

Играть
Игра «История одной фермы» - увлекательное и бросающее вызов вашим серым клеточкам приключение, от которого невозможно оторваться!

История одной фермы - маджонг

Маджонг, Казуальные, Приключения

Играть
Модное кулинарное Шоу! Игра в ресторан, приготовление блюд, декорирование домов и преображение внешности героев.

Кулинарные истории

Казуальные, Новеллы, Симуляторы

Играть
Игра представляет собой полноценную головоломку и дает возможность расслабиться после дня в тихой и уютной обстановке недалеко от горы Фудзи под деревом сакуры с полноценной игрой Маджонг!

Маджонг: Лепестки Сакуры

Маджонг, Головоломки, Милая

Играть
Динамичный карточный батлер с PVE и PVP-боями онлайн! Собери коллекцию карточных героев, построй свою боевую колоду и вступай в бой с другими игроками.

Cards out!

Карточные, Ролевые, Стратегии

Играть

Топ прошлой недели

  • Oskanov Oskanov 8 постов
  • alekseyJHL alekseyJHL 6 постов
  • XpyMy XpyMy 1 пост
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Atmega

21 пост сначала свежее
0
Azotej
Azotej
6 лет назад
Сообщество Ремонтёров - Помощь

Помогите, пожалуйста, со схемой вольтметра⁠⁠

Доброго времени суток, дорогие жители Пикабу

В радиоэлектронике опыта не много, иногда перепаивал явно неработоспособные элементы, могу читать легкие схемы)) Решил я тут собрать другу в подарок вольтметр в машину на Atmega88 . Вольтметр планируется быть 6 канальным (он занимается автозвуком и хорошо было бы смотреть за напряжением каждой сборки из аккумуляторов) с макс. измеримым напряжением до 30В (это просто на будущее, если что). Сборок аккумуляторов будет 6 штук, по 7.2 вольта каждая (либо 3 сборки по 14.4 вольта, но надо следить за 6 сборками)

До этого момента не имел никакого опыта с Atmega, но всё бывает в первый раз. Схему тоже рисовал, можно сказать, в первый раз.

Подскажите, пожалуйста, правильно ли я развел схему (больше интересуют номиналы резисторов и конденсаторов) и какие компоненты ещё необходимы? В Протеусе всё работает, но хочется быть уверенным перед тем, как заказывать компоненты. В интернете смотрел, разная информация. И можно ли вместо керамических конденсаторов использовать танталовые? Хочется собрать по возможности на SMD компонентах. 

C1=25 или 50V, C2=16V

Большое всем спасибо.

Извиняюсь, если эта тема резжевана или написал не в тот раздел

P.s. Подсказали, что необходима гальваническая развязка земли, но так, как не особо разбираюсь в этом, не совсем до конца понял как это реализовать и для чего. Интернеты читать люблю, но в таком большом потоке информации трудновато собрать все воедино

Помогите, пожалуйста, со схемой вольтметра Atmega, Помощь, Электроника, Схема
Показать полностью 1
[моё] Atmega Помощь Электроника Схема
27
53
andrew.svet
6 лет назад
Arduino & Pi

Точность ICU Atmega16/Atmega328⁠⁠

Всем привет. Я все ещё продолжаю борьбу с декодированием PPM.
кому интересны мои потуги ссылка на предыдущий пост:
https://pikabu.ru/story/kak_ya_spektrum_i_hitec_pyitalsya_po...

С выдачей сигнала вполне успешно справляется Timer2. С дефолтными значениями каналов сервы не дрожат, все просто замечательно. А вот с захватом сигнала все ещё затык :(

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

Точность ICU Atmega16/Atmega328 Arduino, Радиоуправление, Радиоуправляемые модели, Электроника, Atmega, Длиннопост

Скрин работы декодера. Все остальные таймеры отключены.

Нижние 2 строки - максимальные и минимальные значения по каждому из каналов.

Мне подумалось, что возможно в самом передатчике есть какой-то фильтр, который сглаживает пульсации, но нет, если бы было так, то он бы и мой сигнал тоже сглаживался.

Отсюда вывод - либо лыжи не едут, либо точность захвата сигнала у атмеги оставляет желать лучшего :(

Товарищи, кто сталкивался с подобным? Что ещё можно придумать? Как быть дальше?

В принципе все уже вполне функционально, но бесит это дёрганье очень сильно. Начинает казаться, что проще от передатчика оставить только джойстики и работать с аналоговыми входами и все миксы, настройки и доп каналы прописать самому... Оно конечно интересно, но тогда теряется сама суть проекта - дёшево и быстро вдохнуть новую жизнь в старый девайс. Так то за 200$ можно купить Taranis и не париться...

Точность ICU Atmega16/Atmega328 Arduino, Радиоуправление, Радиоуправляемые модели, Электроника, Atmega, Длиннопост

Помогайте, товарищи, а то крыша едет уже...

Показать полностью 2
[моё] Arduino Радиоуправление Радиоуправляемые модели Электроника Atmega Длиннопост
46
114
ComradeBulkin
ComradeBulkin
7 лет назад
Сообщество Ремонтёров

STM32 от Булкина. Atmega и Arduino vs STM32 и HAL⁠⁠

Долго думал над содержанием, но всё-таки решил написать статью-сравнение Atmega vs STM32 и немного пройтись по Arduino vs HAL.


Предыдущие статьи:


Настройка Sublime Text 3, SW4 и STM32CubeMX для разработки STM32 под Windows 10

Настройка Sublime Text 3, SW4 и STM32CubeMX для разработки STM32 под Linux

STM32 от Булкина. Урок 1: Вводный, где мы немножко похулиганим


Вступление


Давайте немного определимся с понятиями и что же мы будем сравнивать.


Для начала зададимся вопросом, а корректно ли сравнивать 8-битную архитектуру МК Atmega/ATtiny и 32-битную ARM STM32?


Собственно, в этой статье я обсуждаю преимущества, которая даёт 32-битная архитектура в целом, а также преимущества МК STM32 относительно МК Atmega/ATtiny в частности. Вопрос из той же оперы, как стоит ли переходить с процессоров i486 на i7.


Я сам занимаюсь автоматикой. Так что и вижу я картину с точки зрения автоматики, в основном промышленной.


Немного теории о 8 битах


Часто сталкивался с заблуждением, что программа на 8-ми битных МК оперирует только 8-ми битными данными, потому смысла в переходе на 32-битные МК нет. На самом деле, например, простые целочисленные данные и указатели в 8-ми битных МК являются 16-ти битными. Поэтому, утрируя, при работе с такими данными, МК тратит дополнительные такты там, где 32-битное ядро тратит всего один. Плюс для доступа к таким данным 8-ми битный МК производит дополнительные операции чтения/записи и операции со стеком. На деле это дополнительно приводит и к увеличению объема прошивки, и к увеличению потребления памяти.


32-битные же МК могут легко оперировать 8-, 16- и 32-битными данными за такт. Плюс наличие готовых команд для доступа к ним и преобразования, т.н. набор команд Thumb.


А что с производительностью?


Тут можно обратиться к сухим синтетическим тестам, например CoreMark. Он хорош ещё и тем, что даёт показатель CoreMark/MHz. Просто навскидку из таблицы:


- ATmega2560 (на частоте 8МГц): 0.53 CoreMark/MHz

- ATmega644 (на частоте 20МГц): 0.54 CoreMark/MHz

- STM32F103RB (на частоте 72МГц): 1.50 CoreMark/MHz

- STM32F051C8 (на частоте 48МГц): 2.20 CoreMark/MHz


Ещё раз подчеркиваю, это показатель производительности на МГц частоты. Общая производительность вообще разгромная:


- ATmega2560 (на частоте 8МГц): 4.25 CoreMark

- ATmega644 (на частоте 20МГц): 10.21 CoreMark

- STM32F103RB (на частоте 72МГц): 108.26 CoreMark

- STM32F051C8 (на частоте 48МГц): 105.61 CoreMark


Я привёл примеры наиболее используемых МК из готовой таблицы.


Если ещё коснуться ARM, то они имеют набор команд Thumb, которые позволяют делать, например, множественные пересылки данных одной командой.


Давайте сюда ещё прибавим модуль FPU, который есть на всех STM32 начиная с серий F3xx. Значительно ускоряет вычисления с плавающей точкой. Конечно, можно изгаляться с псевдо-плавающей точкой, типа умножать такие числа на 1000 и считать их целыми. Но на деле это далеко не всегда возможно и удобно.


И ещё потом добавим DMA, который на порядок ускоряет работу с периферией и не только.


Выходит очень вкусно, я считаю.

А что с потреблением?


Тут всё по канонам. В сравнении с 32-бит, 8-битные МК производят в 4 раза больше циклов обращения к памяти и большее количество команд для копирования того же объема данных. Также, например, ARM позволяют выполнять по 2 команды Thumb за такт. У 32-бит меньше работы, меньше потребление.


Если говорить про переход в спящий режим, то у ARM есть фишка - проснулись по прерыванию, отработали его и сразу заснули. С учётом того, что отработает он быстрее, чем AVR 8-бит, потребление будет значительно меньше.


Также это всё значит, что и работаем на пониженном напряжении. Это 3.3В у STM32 против 5В у Atmega. Конечно, у Atmega можно снизить напряжение, но придётся снижать и частоту в разы. Если брать те же 3.3В, то придётся снизить частоту до 10МГц.


Это кстати, ещё преимущество для STM32. Далеко не вся периферия работает на 5В, поэтому приходится ставить дополнительный регулятор напряжения для неё при использовании ATmega/ATtiny.


Хотя, чего греха таить, я сам предпочитаю использовать импульсный регулятор на входе на 4.5-5В и потом опускаю линейником до 3.3В. Это особенно важно там, где используются ADC/DAC.

Ну и не забудем про такую серию у STM32, как Lxxx. Это МК с ультра-низким потреблением. Хотя они дороговаты. Но у них, зато, есть ещё и EEPROM на борту, как у Atmega/ATtiny.

А что с ценой?


Тут вообще момент прекрасный. Если брать прям вот аналогичный в плане ног и периферии STM32, выигрыш значительный. Плюс можно сэкономить на RTC и USB.


Если брать современную серию STM32 на Cortex M4 и Cortex M7, это F3xx и выше, там цена выше, конечно, но и плюшек море.


Замучил уже, сравнивай в таблице!

Я решил разбить сравнение на 4 части:


Микро: ATtiny861A-SU vs STM32F030F4P6

Мини: ATmega328P-AU vs STM32F103C8T6

Средне: ATmega644PA-AU vs STM32F303CBT6

Макси: ATmega2560-16AU vs STM32F405VGT6


Линейка чипов огромная о обоих производителей. Я выбирал такие чипы, которые схожи по ногам, более менее по памяти и периферии. В каждом пункте ниже дам немного описаний, почему и как.
Я намеренно не сравниваю отладочные платы, особенно с Ali. Их вообще надо использовать только для отладки софта и разработки готового устройства. Мы же серьёзные люди, да?
Я не буду брать цены с Ali, только Российские поставщики. Я не буду давать тут рекламу, могу в комментах ответить, где я покупаю. Всегда есть, где подороже, а где подешевле. Нам важны относительные цены. К тому же, через неделю они могут поменяться, все зависит от курса $.

И ещё. Указать корректное количество каналов PWM может быть не везде просто. Поэтому пишу везде приставку “до”. Я считаю количество тех, которые можно вывести всей кучей на разные ноги.


Я везде в STM32 отмечаю наличие CRC32. Это очень важная и нужная фишка. Позволяет считать контрольные суммы налету. Очень нужно, если пишете свой протокол обмена данными, например. Для того же Modbus можно приспособить.


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

Микро: ATtiny861A-SU vs STM32F030F4P6


Собственно решение для минимальных задач. Выбирал МК по доступности, количеству ног ну и более-менее нормальной периферии.

STM32 от Булкина. Atmega и Arduino vs STM32 и HAL Stm32, Atmega, Attiny, Arduino, Длиннопост

Слева ATtiny, справа STM32. Разница в размерах впечатляет, особенно как узнаешь возможности этой финтифлюшки.

STM32 от Булкина. Atmega и Arduino vs STM32 и HAL Stm32, Atmega, Attiny, Arduino, Длиннопост

Мини: ATmega328P-AU vs STM32F103C8T6

STM32 от Булкина. Atmega и Arduino vs STM32 и HAL Stm32, Atmega, Attiny, Arduino, Длиннопост

Слева ATmega, справа STM32. При схожих размерах, ног у STM32 больше.

STM32 от Булкина. Atmega и Arduino vs STM32 и HAL Stm32, Atmega, Attiny, Arduino, Длиннопост

Средне: ATmega644PA-AU vs STM32F303CBT6


По опыту прошлой разработки знаю, что первым делом, когда 328-й уже не хватает, но 2560 ещё как-то слишком, ATmega644 лучший вариант. 44 ноги, периферия побогаче, памяти побольше и стоит по-божески. Думал включить сюда ATmega1284, но стоит у нас непотребных денег, решил всё-таки учесть цену.


Относительно STM32F303CB стоит заметить, что это очень сбалансированный чип по всем параметрам. Богатая периферия, много памяти, нормальная цена. Есть FPU, аппаратная поддержка RS485 (умеет аппаратно дёргать ногой направления передачи данных) и куча других плюшек.

STM32 от Булкина. Atmega и Arduino vs STM32 и HAL Stm32, Atmega, Attiny, Arduino, Длиннопост

Слева ATmega, справа STM32. При сравнимом количестве ног, размер у STM32 меньше.

STM32 от Булкина. Atmega и Arduino vs STM32 и HAL Stm32, Atmega, Attiny, Arduino, Длиннопост

Макси: ATmega2560-16AU vs STM32F405VGT6


Ну выбор МК от AVR в этой категории очевиден. STM32F405 выбрал также из-за его сбалансированности. А ещё вкусной цене при таких-то характеристиках.

STM32 от Булкина. Atmega и Arduino vs STM32 и HAL Stm32, Atmega, Attiny, Arduino, Длиннопост

Выводы


Конечно, сложно сравнивать такие вещи. Если делать подробный анализ, утонешь в тоннах текста. Если чего-то не обсудить, куча людей будет возмущаться, а почему про это не сказал, а почему это не отметил. Всё куплено!


Где-то года полтора назад я сам наткнулся на подобное сравнение и был ошарашен. К тому моменту уже больше года у меня было несколько отладочных плат на STM32 и я всё никак не мог к ним подступиться. Но тогда твёрдо решил добить. Отложил дела и потратил месяц на изучение. Через вопли, бури возмущения, сопли и ярость. А теперь не понимаю, как я раньше жил на Atmega’х и Arduino.


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


Плюсы Arduino и вообще.


Конечно же сама экосистема. Огромная база знаний, огромное коммьюнити.

Библиотеки есть подо всё, прям вообще.

Доступность шилдов подо всё и вся.

Чрезвычайно низкий порог вхождения, вот для любого.

На борту есть EEPROM, это очень удобно и круто.

Отдельно стоит отметить, что даже без Arduino программировать под Atmel довольно легко. Библиотеки, Atmel Studio и прочее.


Но есть и глобальные недостатки.


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

На Arduino нет нормальной отладки. Serial.print() - это нефига не отладка.

С Atmega никогда не получишь нормальной производительности. Нормального планировщика не воткнёшь. Они есть, конечно, даже FreeRTOS можно воткнуть, но памяти и так мало, а планировщики очень голодные. Потому не сделаешь нормальный интерфейс с хорошим откликом, не сделаешь контроллер с сотней прерываний и несколькими десятками устройств на периферии.

Куча народу (не все, конечно) возомнили себя крутыми спецами и штампуют дерьмо на отладочных платах и шилдах. Частенько промышленное дерьмо. Это, у меня лично, вызывает дикое негодование.

Сама по себе платформа, не смотря даже на то, что и STM32 тоже может работать с Arduino, подразумевает усреднение. Отсюда даже на нормальных чипах ты получаешь кастрата. И по-любому приходится лезть в дебри. Ну и в чём смысл тогда?

Если касаться Atmel Studio - это тяжелейший монстр, который даже на моем i5 с 24Gb и SSD тормозит так, как Quake на 486-м.


А что сказать хорошего про STM32?


Платформа изначально очень производительная. Как я писал выше, нет кучи недостатков 8-битных МК.

У тебя всегда изначально куча периферии. И ты выбираешь, на какие ноги её вешать и плату разводишь, как тебе удобно. А МК уже конфигурируешь исходя из этого.

Из неочевидного, например, на любую ногу можно сделать как PullUP, так и PullDown. А это очень облегчает проектировку плат, поверьте.

HAL, на самом деле, очень мощный инструмент. Хотя некоторые его хают за громоздкость, но на деле это в основном набор готовых #define, которые сильно облегчают написание и чтение кода. И переносимость!

Отладка практически на любом инструменте, почти в любой среде работает на ура из коробки. А это в любой момент все переменные, как на ладони. И точки, и даже графики. Я вообще не пользуюсь ничем, что выводило бы данные в консоль. Зачем? Тратить время на написание этих шаблонов, которые потом вычищать из продакшена?

STM32CubeMX вообще панацея. За пару минут переносится код на почти любой другой STM32. Что-то поменял? Нет проблем, галочки расставил, пересобрал проект и всё!

Тот же SPI на F405 можно запустить на 41Мбит! Я просто EEPROM на SPI пользую на 21Мбит. А ещё прибавьте к нему DMA и вообще красота! Летает!

А наличие USB и RTC почти во всех STM32?


Ладно, плюсами можно до бесконечности. Что из минусов есть:


Довольно трудный вход. Разобраться сходу не получится, нужно иметь базис.

Библиотек в свободном доступе не то чтобы нет. Есть и много. Но они либо под устаревший StdPerif, либо заточены под конкретного человека и его собственный набор библиотек. Либо и то, и другое сразу. Так, чтобы почти без доработки большая редкость. К сожалению, сложно абстрагировать библиотеку в STM32, они часто повязаны друг с другом и заточены подо что-то конкретное

Так что да, вам придётся писать свои библиотеки довольно часто. Даже под элементарные вещи вроде LCD1602

Вас будет бесить написание HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET) в сравнении с digitaWrite(LED1, HIGH). Вас будет бесить, что вы должны ВСЕГДА указывать размер буфера приёма. Ведь какая красота в Arduino Serial.available()! Нет, в STM32 мы тоже можете сделать подобное, но придётся взрыть тонны документации, чтоб понять некоторые неочевидные, но элементарные вещи.

Вас будет бесить переход к C99 после C++, но потом даже будете этому рады.

Вас будет бесить объем и количество документации по STM32. Но потом вы проникнетесь и увидите лаконичность и очень грамотную подачу относительно документации Atmel.

На борту нет EEPROM, кроме серии STM32Lxxxx, которая дорогая, как изумруд.


Стоит ещё отметить такую штуку, как Mbed. Довольно крутая вещь для IoT. Большое коммьюнити, мощная поддержка. Куча библиотек для всего. Хотя для моих задач не очень подходит. Посмотрите, если в чистом виде STM32 пугает. STM выпускает платы Nucleo под эту платформу. Так что есть готовые решения, есть =)


Ладно. Всего не отметишь. Обо всём не расскажешь. Каждый должен сам решить, стоит ли. Я вот прошел этот рубеж и безумно этому рад. Я не пошёл по простому пути Arduino -> RPi и в результате имею сейчас гораздо более мощные инструменты. Конечно, одноплатки нужны и они крутые. Туда и Linux можно накатить, и сервачок поднять с БД. Но это другая опера.


На сегодня всё, удачи!

Показать полностью 7
[моё] Stm32 Atmega Attiny Arduino Длиннопост
128
52
Dsotm133
7 лет назад
TECHNO BROTHER

Вольтамперметр вватметр на AtMega8 24В 10А. Исходники.⁠⁠

Понадобился мне для моего будущего проекта вольтампетрметр с LCD экраном. Под рукой была Mega8. На ней и будем делать. Задача как всегда простая: мерить напряжение и ток. Напряжение будет измеряться до 25 вольт. Ток до 10 ампер. Неплохо было бы еще видеть сколько вват потребляет нагрузка.

Вольтамперметр вватметр на AtMega8 24В 10А. Исходники. Atmega, Proteus

Сначала набросал в Протеусе схемку, как все должно выглядеть. Схема не представляет из себя чего то сложного. Напряжение меряется с помощью делителя напряжения. Он подбирается так, что бы максимальное напряжение на выходе делителя не превышало 5 вольт. Я взял с запасом и рассчитал на 28 вольт. Для измерения тока используется широко распространенный операционный усилитель LM358. Тут следует сказать, что вся схема будет питаться от одного и того же напряжения 5 вольт. Поэтому максимальное напряжение на выходе операционника составит около 3.51 вольт (см. даташит). Для повышения точности показаний тока нам нужно пересчитать максимальное битовое значение, подаваемое на ножку меги. Это легко можно сделать пропорцией 3,51*1023/5=718,146.


Перейдем к коду


Принцип работы весьма прост. Сначала микроконтроллер опрашивает контакты напряжения и тока 400 раз и вычисляет текущее значение. Затем суммирует эти значение и по прошествии 400 циклов вычисляет среднее арифметическое. Получаем более верные показатели и избавляемся от "скачков" цифр. И последним шагом является обнуление всех показателей и запуск цикла снова.


Значение вольтажа и тока можно легко изменить на нужные вам путем изменения этих строк. Значение максимальное значение analogRead нужно разделить на нужно напряжение или ток. И потом текущее значение analogRead делить на полученный результат.


У  меня  не было необходимости считать десятые или сотые доли ввата. Если Вам вдруг это понадобится, можете изменить переменную вместо int на float, это тогда это займет чуток больше процессорного времени.


Схема пока не была собрана, но прошла удачное испытание в Протеусе. Шунт можно брать практически любой. Тогда нужно будет немного подкорректировать код. Если планируете запитывать схему от напряжения 8 и выше вольт, то лучшим вариантом будет поставить линейный стабилизатор 7805 с обвязкой "по умолчанию".

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


Исходники

Более подробно на сайте


Жду критики и советов по оптимизации кода и схемы

Показать полностью
Atmega Proteus
10
126
Dionisnation
Dionisnation
8 лет назад
TECHNO BROTHER

МИНИТЕРМИНАЛ V.3.0⁠⁠

Нашёл этот проект  на AVRProject, может кому то из подписчиков сообщества будет полезным этот терминал

Тема такого устройства как минитерминал, поднималась на этом сайте уже пару раз: первая версия, вторая версия. И за время использования второй версии, устройство показало себя отличным помощником при отладке во многих проектах. Единственное чего иногда не хватало, это возможности отправлять в отлаживаемое устройство своих команд. Поэтому разобравшись с работой большого цветного дисплея на контроллере ILI9325, решил сделать новую версию минитерминала на нём. К тому-же на этом дисплее уже есть сенсорная панель, благодаря которой можно организовать все управление, а также набор текста, не прибегая к подключению внешней клавиатуры.


У меня уже лежала распаянная под дисплей плата с микроконтроллером ATMega128a, ее я и использовал в качестве основы для устройства. Так как дисплей соединен с контроллером напрямую, схема предусматривает питание не более 3,3 вольта, если выше - есть вероятность что дисплей выйдет из строя. Сначала я хотел применить в качестве источника питания связку из двух батареек R20, у них очень большая емкость и они долго держат нужное напряжение. Но когда стал примеряться, выходило слишком громоздко. Поэтому был откопан, купленный несколько лет назад, модуль преобразователя на LM2577. А источником послужила Li-Ion батарея емкостью 2500мА/ч. Получилась очень годная связка, способная отдавать стабильные 3,3 вольта во всём рабочем диапазоне напряжений аккумулятора. Для подзарядки использован модуль на микросхеме TP4056. Его я давно применяю и он хорошо зарекомендовал себя, плюс очень низкая цена такого решения.

МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост

Чтобы иметь возможность подключать минитерминал к пятивольтовым устройствам не боясь спалить дисплей, порты UART развязаны через модуль согласования уровней. Я применил готовый, как раз имелся в наличии на 4 канала. Его можно собрать самому, схема элементарная. Кстати, почему нужно 4 канала? Дело в том что у ATMega128 целых два аппаратных UART интерфейса, и я подумал что неплохо бы использовать оба и сделать двухканальный терминал.


На разъемы, помимо Rx / Tx выведено питание, на случай если нужно будет запитать отлаживаемое устройство напряжением 3,3 вольта. В разрыв цепи запаян диод Шоттки, если вдруг по ошибке от испытуемого устройства в схему пойдет напряжение выше 3,3 вольт.

МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост
МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост

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


В конечном виде схема выглядит так

МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост
Вариант корпуса для устройства, напечатанный на 3d принтере. Все элементы схемы и крышка корпуса будут фиксироваться на термоклей. Это самый простой вариант, но не самый технологичный для сборки/разборки. Поэтому надо бы доработать и добавить крепежные узлы. 
МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост
МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост
А пока крепится все так: сначала фиксируется дисплей, затем кнопка включения и модуль зарядки, потом все остальное.
МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост
МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост

При программировании микроконтроллера необходимо запрограммировать фьюзы на работу от внешнего высокочастотного кварца, отключить совместимость с ATMega103 и отключить JTAG


В Khazama-AVR фьюзы выглядят так

МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост

После сборки и прошивки микроконтроллера особых настроек не требуется, нужно только с помощью подстроечного резистора R4 подогнать отображаемое на экране напряжение к реальному значению на аккумуляторе. Для этого рекомендую сперва выставить подстроечник в среднее положение и только после этого подавать питание, чтобы после включения на вход АЦП шло менее 3,3 вольта (опять же для того чтобы обезопасить дисплей).


Из настроек терминал имеет изменяемую частоту работы UART интерфейса, формат отображения принятых данных (ASCII и HEX) и их вид (DISP и LAST).

МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост

Чтобы было понятно, остановлюсь на последнем параметре: в обычном режиме DISP (Displacement) идет отображение всех последних принятых данных, и при заполнении экрана идет смещение, таким образом на экране помещается 22 строки. Очистка и перерисовка, при каждом новом приеме данных, занимает относительно много время и чтобы увеличить возможную скорость приема, введен режим LAST. В этом режиме на экране выводится только последний принятый пакет данных. В общем, что получили то и вывели.


При нажатии на кнопку CLEAR, происходит очистка дисплея. INFO - информация о версии прошивки и контактная информация. Кнопка STOP, как не трудно догадаться, останавливает прием данных (полезно когда данные идут сплошным потоком и нужно остановиться и разглядеть).


При первом включении скорость работы UART по умолчанию стоит 1200 бод. Её можно поменять на значения 2400, 4800, 9600, 19200, 38400, 57600 и 115200 бод. Скорость сохраняется в энергонезависимой памяти и при следующем включении терминал будет работать на последней выбранной скорости.


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

МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост
МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост
МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост

Как я уже писал, в схеме я предусмотрел одновременную работу двух UART интерфейсов. Но в прошивке пока реализован только один канал - на аппаратном UART0. Второй - UART1, оставил как задел на будущее. Поэтому набранный текст улетает в Tx0.


Было упомянуто, что в режиме DISP на экран помещается 22 строки принятых данных, ограничение по длине принимаемого и отправляемого пакета составляет 30 символов. А если перевести отображение данных в HEX формат, тогда ограничение по длине пакета составит 10 символов. Ограничение обусловлено оставшимся на экране местом. Для простых задач, которые возложены на это устройство, этого должно хватить.


Ну и для примера достал не задействованную плату с распаянным GSM-модулем SIM900D, которая давно уже у меня лежит. Два запроса о версии прошивки модуля, первый в ASCII формате, второй с отображением данных в HEX формате:

МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост
И еще немного общения с этим модулем, на другой скорости:
МИНИТЕРМИНАЛ V.3.0 Терминал, Avr, Atmega, Минитерминал, Своими руками, Avrproject, Гаджеты, Микроконтроллеры, Длиннопост

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


Печатная плата (DipTrace)

Схема (DipTrace)

Исходники и прошивка

Модель корпуса


Ссылки на детали использованные в проекте:
Дисплей

Преобразователь напряжения

Модуль конвертера уровней

Модуль заряда Li-Ion батареи

Показать полностью 15
Терминал Avr Atmega Минитерминал Своими руками Avrproject Гаджеты Микроконтроллеры Длиннопост
14
ipbatman
ipbatman
8 лет назад
Товары из Поднебесной

Opening package from Aliexpress (Nano V3 ATmega328/CH340G)⁠⁠

Arduino Opening package AliExpress Atmega Видео
2
17
Dionisnation
Dionisnation
8 лет назад
TECHNO BROTHER

Глазок (видеоискатель) от VHS видеокамеры⁠⁠

Приветствую Вас друзья! принесли мне значит сегодня на запчасти остатки от VHS видеокамеры среди которых - главная плата (материнка), глазок, обьектив с матрицей и механикой, и часть корпуса с платой и микрофоном.
Меня сейчас больше всего заинтересовал именно глазок, видео ниже:

Так вот, ребятки кто то из вас задействовал где то подобные видеоискатели в каких нибудь DIY проектах? Давайте делится идеями и опытом). Меня например интересует возможность его прикрутить к микроконтроллеру, например AtMega328, и выводить на него информацию, как делал один школьник из Китая (Японии?)
Вот ссылка на мой пост с этим видео

[моё] VHS Arduino Atmega Своими руками Вопрос Очки Technobrother Видео
6
41
vivaos
vivaos
9 лет назад

Для любителей микроконтроллеров и создания чего-либо под музычку:)⁠⁠

Видео разработки микропроцессорного стенда для изучения принципов построения систем интервального регулирования движения поездов.


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


Стенд разрабатывается для обучения студентов железнодорожного ВУЗа принципам построения систем интервального регулирования движения поездов на микропроцессорной аппаратуре.

P.S.: Для тех, кто заметил избыточность микроконтроллеров на одной плате, скажу сразу - весь макет в дальнейшем планируется разделить на отдельные блоки (по одной сигнальной точке на компьютер) и наличие у каждой платы собственного программатора обязательно. Так же, отвечая на вопрос о рациональности использования двух микроконтроллеров - это сделано из соображений наглядности заменяемых трансмиттера и дешифратора, работающих на железной дороге, а так же простоты понимания алгоритмов дешифрации и кодирования кодов.

Для связи со мной прошу обращаться в сообщество: https://vk.com/progmk


P.P.S: и снова без котиков и сисек :(

Показать полностью
[моё] Кво Atmega Стенд Железная дорога Разработка Сцб Ирдп Для подписчиков Видео
12
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии