Рубрика «gpio»

"Надо написать прошивку - спиннер"

Обзор микросхемы DRV8870 - 1

Пролог

В этом тексте я произвел обзор микросхемы DRV8870.

Читать полностью »

Orange Pi 5 Plus 32GB

Производительность ARM процессоров каждый год увеличивается и все ближе приближается к x86 процессорам. Компания Apple давно отказалась от процессоров Intel в пользу процессоров собственной разработки на ARM архитектуре. Но домашний/офисный ПК это не только процессор, но и софт, драйвера, и подключение любых устройств из коробки. Компания Shenzhen Xunlong Software вначале 2023 г. выпустила одноплатный компьютер Orange PI 5 Plus на базе высокопроизводительного процессора Rockchip RK3588 с 32 ГБ ОЗУ и возможностью подключения NVMe SSD дисков. По техническим характеристикам такой одноплатный компьютер сопоставим с домашним/офисным ПК. Проверим на сколько комфортно работать за таким одноплатником, смотреть YouTube, видео, и конечно же поиграем, установим Steam от Valve. Но самое главное оценим работу системы «из коробки» т.е. без танцев с бубном. Вначале рассмотрим характеристики Orange PI 5 Plus, затем процессор Rockchip RK3588, установку и настройку системы, подключение периферийных устройств, и посмотрим, на сколько хорош Linux на ARM для домашнего использования. В итоге рассмотрим какие существуют преграды замены текущих x86 систем на ARM.
Читать полностью »

Сканирование шины RS485 - 1

В электронике есть множество проводных полудуплексных асинхронных последовательных интерфейсов типа общая шина. Это 1-Wire, RS485, 10BASE2(thin Ethernet), LIN, K-Line , CAN, I2C, MIL-STD-1553, ARINC 429.

Во всех этих shared-bus интерфейсах так или иначе возникает задача сканирования шины.

Всем кто работал с i2c известна процедура сканирования шины. Там можно просто методом перебора просканировать шину. Так как длина адреса всего 7 бит, то можно просканировать шину просто за пару секунд.

Читать полностью »

Последнее время я сильно увлекся вопросом надежности софта для микроконтроллеров, 0xd34df00d посоветовал мне сильнодействующие препараты, но к сожалению руки пока не дошли до изучения Haskell и Ivory для микроконтроллеров, да и вообще до совершенно новых подходов к разработке ПО отличных от ООП. Я лишь начал очень медленно вкуривать функциональное программирование и формальные методы.

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

Продолжу развивать тему о встроенном софте для небольших микроконтроллеров в устройствах для safety critical систем.

На этот раз попробую предложить способ работы с конкретными ножками микроконтроллера, используя обертку над регистрами, которую я описал в прошлой статье Безопасный доступ к полям регистров на С++ без ущерба эффективности (на примере CortexM)

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

using Led1Pin = Pin<Port<GPIOA>, 5U, PinWriteableConfigurable> ;
using Led2Pin = Pin<Port<GPIOC>, 5U, PinWriteableConfigurable> ;
using Led3Pin = Pin<Port<GPIOC>, 8U, PinWriteable> ;
using Led4Pin = Pin<Port<GPIOC>, 9U, PinWriteable> ;
using ButtonPin = Pin<Port<GPIOC>, 10U, PinReadable> ;

//Этот вызов развернется в  2 строчки
// GPIOA::BSRR::Set(32) ; // reinterpret_cast<volataile uint32_t *>(0x40020018) = 32U 
// GPIOС::BSRR::Set(800) ; // reinterpret_cast<volataile uint32_t *>(0x40020818) = 800U 
 PinsPack<Led1Pin, Led2Pin, Led3Pin, Led4Pin>::Set() ; 

//Ошибка компиляции, вывод к которому подключена кнопка настроен только на вход
ButtonPin::Set() 

auto res = ButtonPin::Get() ; 

Читать полностью »

ИллюстрацияHello dear readers. In this article I will try to demonstrate how to run a Java Virtual Machine and Java applications on microcontrollers. This idea may sound quite outlandish by itself: why use Java on microcontrollers where each byte of RAM and each CPU cycle are precious commodity? There's nothing like native C for microcontrollers — even C++ is rarely used! Yes, I've heard that discussion (and took part in it) for many years. Well, I will try to explain «why», as well as «how», in this article. So, anyone who wants to understand how MCU implementation of JVM works; see an unusual approach to multi-platform project development; take part in Open Source project; or just have fun — welcome onboard, uJVM is ready to take off! People who are ready to criticize can stay near the runway and watch us climb (or crash) from a safe distance

Читать полностью »

ИллюстрацияДобрый день, уважаемыее. В этом цикле статей я попытаюсь рассказать Вам о Java Virtual Machine и запуске Java программ на микроконтроллерах. Тема достаточно спорная: Зачем Java на микроконтроллерах, где и так мало ресурсов? Лучше нативного кода написаного на чистом С, ничего нет, даже на плюсах мало кто пишет! И т.д. Сразу скажу, сам задавал себе эти вопросы и не один раз. Мой ответ такой: Кто хочет попробовать, на что способно железо; понять, как работает JVM; увидеть интересный подход к построению мультиплатформенного проекта; внести свой вклад в Open Source; или просто побаловаться — все на борт, корабль по имени uJVM отправляется в плавание! Те кто уже настроился критиковать, смотрите как «Титаник» отправился в путь, надеюсь на Вашу лояльность!

Читать полностью »

Геймпад от Sega Mega Drive и Raspberry Pi Часть 2 (заключительная шестикнопочная) - 1
Ну а теперь к самому сложному и интересному. Если лень читать, то ниже (ближе к концу статьи) будет ссылка на видео, с результатом и объяснением всего, в том числе и того, что описано в первой части. Кому интересно, то Читать полностью »

Осень наступила, отцвела капуста, Уже почти середина зимы, а я только закончил с этим возиться. Но всё равно наступило время когда хочется поиграть во, что-нибудь старенькое, под шум метели за окном, например в Соника или червяка Джима. Внизу статьи видос с предварительными результатами.
Геймпад от Sega Mega Drive и Raspberry Pi Часть 1 (подготовительная и трёхкнопочная) - 1
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js