Программатор SPI и I2C микросхем памяти CH341A Mini Programmer

  Микросхемы памяти серий 24хх (EEPROM), 25хх (Serial Flash) широко используются в электронике. Такие чипы присутствуют в составе практически любой конструкции современной бытовой и промышленной аппаратуры, где есть процессоры и/или микроконтроллеры. Данный программатор имеет возможность работы с обоими типами памяти.


Читать дальше

Машина времени для крошек.

AVR
При программировании микроконтроллеров часто требуется отслеживать временные промежутки. Даже банальное «помигать светодиодом» требует учета времени погашенного состояния и времени светимости.

В Си есть функция delay_ms(X), которая выполняет пустой цикл X ms, то есть по сути вешает проц на X*fcpu/1000 тактов, так как ничего иного в это время он делать не может.

Многие прогеры, намучившись с этой функцией (или ей подобными), переходят на использование прерываний и аппаратных таймеров, но тут другая засада — их всегда мало.

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

Пройдя все эти стадии, я наконец-то дорос до понимания, что «что-то тут не так». Нарисовалась необходимость диспетчеризации задач по таймеру.
Прочитав AVR. Учебный Курс. Архитектура Программ Часть 2 в очередной раз убедился, что изобрел велосипед… ну и пусть, это просто еще один вариант решения.


Читать дальше
  • +2
  • 24 января 2018, 13:02
  • iva
  • 1

Управление микроконтроллером по USB stm8s003f3p6

Можно поуправлять ШИМ I2C UART прочими некоторыми портами
Это просто заготовка, в итоге хотелось бы потом сделать картинку с процесором и галочки возле пинов, а так же режимы регистров.
Это типа стенд для обучения будет.


Порт С может быть использован только для чтения в виду особенностей программной USB реализации.
Прошивка для МК github.com/BBS215/STM8S-VUSB-KEYBOARD

Программы для компа
github.com/BBS215
debugtool командная строка
debugtoolGUI GUI

Коммутация нагрузок переменного тока

Доброго времени суток.

Речь пойдёт о коммутации нагрузок переменного тока.



Читать дальше

Крепление плат с USB-разъемами на панель

В своих разработках мне довольно часто приходится использовать интерфейс USB. Ничего с этим не поделаешь – больно уж он нравится заказчикам, что, конечно, неудивительно. Я и сам люблю USB, хотя бы уже́ за то, что он позволяет запитать поделку без дополнительных источников/брикетов. И вроде бы всем хорош этот интерфейс, да вот только разъемы у него дебильные, ибо во-первых, все они прямоугольные/квадратные, а во-вторых (и в самых главных) – не предусматривают штатного крепления самих себя на панель устройства. В связи с этим запилил заметку про то, как можно крепить платы с USB-разъемами к панели устройства, и в лучших традициях сообщества решил сразу поделиться опытом с читающими мои заметки камрадами. Отмечу, что здесь я лишь обрисую в общих чертах сам принцип крепления платы с USB-разъемом к панели. Если же эта идея вам подходит – вот тут есть конкретные размеры предлагаемой конструкции и все рекомендации по ее реализации.



Читать дальше

Simatic Step 7. STL. Вычисление числа дней в месяце (DayOfMonth).

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


Читать дальше

Modbus RTU для AVR на Assembler. часть1

AVR
Понадобилось мне недавно разобраться с Модбасом. А точнее освоить подключение панели оператора к Меге.
Приглашаю всех желающих посмотреть мою реализацию такого решения


Читать дальше
  • +3
  • 02 августа 2016, 22:27
  • deses

Простой диспетчер с фиксированной очередью задач для PIC16

Меня посетила мысль, что если ты хочешь хорошо освоить какое-то семейство МК, надо собственноручно, на его ассемблере, написать для него какую-то управляющую систему. В идеале кооперативную ОС, по для начала можно и что-то попроще, типа местного динамического диспетчера. Я уже написал такой для MCS-51, но сейчас не о нем. Последнее время что-то внутри меня постоянно подталкивало изучить ПИКи. Наверное, чтобы можно было самому сравнить их с тем что я уже знаю (а знаю я уже MCS-51 немного, и AVR еще меньше), а не читать форумные баталии аля «AVR vs PIC». В процессе написания своей первой псевдо-ОС под ПИКи я немного разобрался с ними, и уже чувствую себя гораздо увереннее. Под катом результат работы — диспетчер с фиксированной очередью задач и службой на 8 (можно меньше) программных таймеров. Данный проект независимо (каждый со своей частотой) мигает 8 светодиодами на порту В. Проект занял 223 слова, что составляет 22% от доступного объема PIC16F84A. Критика приветствуется. В будущем планируется добавление динамической очереди задач для избавления от приставки «псевдо» перед ОС.


Читать дальше

Самый простой программный таймер

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


Читать дальше

Реалиазция стандартного GATT-BLE профиля на RSoC фирмы Cypress

Эта статья является продолжением моей статьи [1]. Здесь речь пойдёт о программной реализации стандартного GATT (Generic Attribute Profile) профиля ESP (Environmental Sensing Profile), включающего два также стандартных сервиса: ESS (Environmental Sensing Service) и BAS (Battery Service). К описанному серверу можно будет подключиться с любого устройства, поддерживающего протокол BLE (Bluetooth Low Energy), например смартфон или планшет, для мониторинга температуры и относительной влажности воздуха, а также состояния батареи. Помимо этого будут представлены некоторые программные и аппаратные средства для разработки и отладки BLE приложений.

Устройство наше основано на том-же радиомодуле CYBLE-022001-00 фирмы Cypress Semiconductor, подробнее о нем см. в первой части статьи [1]. В состав модуля входит микроконтроллер с архитектурой ARM Cortex-M0, в который помимо стека BLE можно загрузить программу пользователя. В схему добавлена пара резисторов для измерения напряжения батареи встроенным в RSoC АЦП.

схема


Читать дальше
  • +3
  • 08 июня 2016, 09:31
  • Ser60