Dionisnation

Dionisnation

TRON: TQ7wgZtMxDnMMUMgdCBwcjwgg9qypRNGET
Пикабушник
поставил 4248 плюсов и 1865 минусов
отредактировал 10 постов
проголосовал за 18 редактирований
Награды:
10 лет на Пикабу За победу в продуктовом сёрфинге За победу над кибермошенниками За подвиги в Мире PlayStation 5более 1000 подписчиков
102К рейтинг 2485 подписчиков 142 подписки 746 постов 207 в горячем

МИНИТЕРМИНАЛ 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

На волне об офигевших Ш-"приличный жёнах"

В ответ на http://pikabu.ru/story/muzh_nachitalsya_quotsovetovquot_4496428

Laser - лазерочки)

Мой кот ненавидит прищепки, вообще

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

К слову кот стал очень агрессивным, так как меня дома почти нет, то его воспитанием занимается моя девушка. Если точнее то балует, этот кусок наглой шерсти срёт и ссыт по углам, это при том что есть туалет, который он демонстративно игнорирует, лазит по столам, кидается на всё и вся, уничтожил на кухне жалюзи. А когда на него ругаюсь или легонько дам подсрачника, за то что выскочил на стол или пакостит, то это мурчащее "падло" отскакивает с шипением в сторону и переходит в атаку, он мля, реально бросается на меня в бой с такими глазами, как будто хочет сказать - "Останется только один". Но не смотря на всё я его люблю)))
А ещё он ненавидит джойстик от xBox уж не знаю почему, но когда я играю, он бросается на кабель, как на опаснейшую змею. И это при том что кабель лежит не подвижно) Ну вот что с ним делать? Бить не можем, так как жалко, так слегка подсрачников даем когда пакостит ну и ругаемся грозным тоном на него, он кстати может наброситься даже тогда когда его просто ругать за пакости. Ну и ненавидит не только прищепки, а ещё много чего,Ю например сумку девушки, которую он неоднократно обсыкал, при чём не важно где она лежит

Показать полностью

Производство печатных плат на заводах

Станочки)))

Получить глаза как в Deus Ex РЕАЛЬНО?

Адам Дженсен в Deus Ex Human Revolution и Mankind Divided имеет протезы глаз, реальны ли они?

Atmel ARM в DIY?! «Hello world» в Atmel Studio для Cortex M4

У меня есть четкая ассоциация компании Atmel и супер-успешных контроллеров Atmega. Когда речь идет о чем-то немного более мощном, о следующей ступени, я сразу думаю о stm32. Но совсем недавно мне удалось проверить на деле микроконтроллеры от Atmel SAM4S на базе ARM Cortex-M4. Это отличный вариант для перехода с Arduino, подумал я. У меня оказался не просто голый микроконтроллер, а отладочная плата Sam4S EK rev8. Для прошивки я использовал программатор SAM-ICE.

Atmel ARM в DIY?! «Hello world» в Atmel Studio для Cortex M4 Geektimes, Atmel, Arm, Atmel arm, Cortex M4, Своими руками, Technobrother, Видео, Длиннопост

Компания Atmel, на мой взгляд, запоздала с входом в сегмент ARM-микроконтроллеров, здесь уже достаточно прочно обосновалась ST с контроллерами STM32. Я решил сравнить продукты от Atmel и ST.


Общие характеристики отладочной платы:

В плату впаян микроконтроллер ATSAM4S16C:

ядро Cortex-M4, 120МГц, с поддержкой DSP-инструкций
1Мб Flash-памяти
128Кб SRAM

периферия:

4хUART
3xSPI
2xI2C
1xUSB 2.0
1хI2S
1 интерфейс для карт памяти SDIO/SD/MMC
PWM: 4 канала, 16 бит
АЦП: 16 каналов, 12 бит
аналоговый компаратор
ЦАП: 2 канала, 12 бит
DMA: 24 канала
Atmel ARM в DIY?! «Hello world» в Atmel Studio для Cortex M4 Geektimes, Atmel, Arm, Atmel arm, Cortex M4, Своими руками, Technobrother, Видео, Длиннопост
Datasheet. На самой отладочной плате видим следующее:

на штырьковые разъёмы (с шагом 2.54) выведены все выводы микроконтроллера (что не может не радовать). Кроме этого на плате:

2 порта RS232
разъём RS485
разъём microSD карты памяти
порт для подключения ZigBee-модуля
2.8" LCD 320x240 на контроллере ILI9325 с резистивным сенсором
два BNC разъёма, один из них подключён к АЦП, второй к ЦАП.
встроенный микрофон
microUSB разъём (USB FS Device)
впаяна память NAND Flash 29F2G08ABAEA (256Мб)
сенсорные кнопки (Atmel QTouch), со слайдером
две пользовательские кнопки+кнопка сброса
энкодер, подключённый к АЦП микроконтрллера
JTAG-порт для подключения к SAM-ICE
mini jack для наушников + вывод для подключения динамика

Сравнение Atmel ARM с STM32

Atmel ARM в DIY?! «Hello world» в Atmel Studio для Cortex M4 Geektimes, Atmel, Arm, Atmel arm, Cortex M4, Своими руками, Technobrother, Видео, Длиннопост
Цены в рублях STM32-691 и Atmel ARM-848 рублей.


IDE


Радует присутствие бесплатного IDE, которое можно скачать с сайта Atmel. Да, это переработанная Visual Studio, со всеми вытекающими, но отлично подходит для быстрого старта. Скачиваем, устанавливаем, подключаем программатор к компьютеру и к плате. В установке и работе IDE скоростью не отличается, но в этом есть ряд плюсов для начинающих, дает время подумать.

Atmel ARM в DIY?! «Hello world» в Atmel Studio для Cortex M4 Geektimes, Atmel, Arm, Atmel arm, Cortex M4, Своими руками, Technobrother, Видео, Длиннопост

Вместе со средой разработки будут доступны порядка 1600 примеров, среди которых примеры для рассматриваемой платы SAM4S-EK (работа с периферией, использование DSP, FatFS, FreeRTOS и т.д.).


Попробуем загрузить один из скриптов из примеров. New -> Project ->Example projects

Atmel ARM в DIY?! «Hello world» в Atmel Studio для Cortex M4 Geektimes, Atmel, Arm, Atmel arm, Cortex M4, Своими руками, Technobrother, Видео, Длиннопост

Итак, после редактирования кода


Build > Build Solution, если нет ошибок все соберется, затем Debug > Start Without Debugging

Все ожидаемо работает.


Вывод


Сама плата, как ни странно, оправдала мои ожидания. Это хороший вариант для перехода с Arduino, так как позволяет быстро импортировать скетчи из Arduino IDE в полноценные C++ проекты. Без пайки можно продумать устройство и написать скрипт, затем развести плату и на нее разместить микроконтроллер, это компактнее и производительнее. Соглашусь, что отладочная плата дорогая, но платить за нее нужно один раз, плюс есть альтернатива за 450 руб. SAM D10 Xplained Mini.


Вопрос в тему


Почему ARM от Atmel так редко встречаются в готовых устройствах или в DIY поделках? В основном же идут разные NEC, STM, SIEMENS, FS и подобное?


Зачем это нужно?


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

Оригинал на GeekTimes

Автор - Голицын Вячеслав

Показать полностью 4 1
Отличная работа, все прочитано!