Category Archives: uC

Микроконтроллеры

CH32V003. Релокация

Постепенно переношу свои материалы по микроконтроллерам CH32V на форум cxem.net и начинаю уже туда выкладывать новый материал.

https://forum.cxem.net/index.php?/blogs/blog/404-ch32v/

Участники и читатели на aftershoсk.news отнеслись к моим статьям по микроконтроллерам несколько негативно. Не скажу, что агрессивно не приняли, но в достаточно мягкой форме высказали свое «фи!». Ну и в самом деле, aftershoсk — это несколько не тот интернет-ресурс, на котором нужно публиковать подобные материалы. В общем, я решил не злить публику и в очередной раз сменил площадку.

Кроме того, я создал в Telegram канал https://t.me/ch32v003 и группу https://t.me/ch32v.

CH32V003. Формирование временнЫх интервалов

https://aftershock.news/?q=node/1281056

https://t.me/ch32v003

https://t.me/+JRd6VtgB3ONkYjIy

Ещё раз про внешние прерывания в CH32V003

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

Я сейчас постараюсь устранить этот технический долг — описать как работать с внешними прерываниями.

Читать далее

CH32V003. EXTI

У меня есть как бы мегафонарь. Называется он подстать — «Космос». Я о нем писал уже. Примерно год назад у него сдох аккумулятор. Аккумулятор был гелиевый, свинцовый. Прослужил он честно лет шесть. К сожалению, купить такой я я так и не смог. Поэтому начал колхозить из того, что у меня есть в загашнике (спасибо товарищам, которые мне приносят убитую электронику!) — б\у-шные литиевые аккумуляторы 18650 из блоков питания старых нотиков.

Возник законный вопрос — как питать мощный светодиод, у которого рабочее напряжение 3.3 В, от литиевого аккумулятора, у которого рабочее напряжение от 3.0 до 4.2 В, в зависимости от степени заряженности?

Читать далее

Распиновка CH32V003

Публикация дополнена материалом по «совмещённым» ножкам и перенесена сюда https://forum.cxem.net/index.php?/blogs/entry/762-%D1%80%D0%B0%D1%81%D0%BF%D0%B8%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0/

Читать далее

CH32V003. Отладка

Постараюсь сильно не расписывать. И у стал за день, и времени-то особо нет, и спать хочется. Но, с другой стороны, зафиксировать обязательно надо. Иначе опять придётся «изобретать велисапет».

Сначала пару слов в сторону.

Из чего у меня обычно состоит отладка? Первым делом я обычно инициирую порты ввода-вывода и подключаю к ним обычные светодиоды, а в коде отлаживаемой программы «втыкаю» команды по их включению/выключению. Это удобно не только с точки зрения, что видно воочию прохождение программы по тем или иным кускам кода. Это еще и удобно для оценки времени исполнения программного кода — к светодиодам легко подключить шупы осциллографа и узрить сколько микросекунд нужно для того или иного действия. Это очень помогает глубже понимать программу — где она работает быстро, а где вязнет, сколько времени требуется для того чтобы прога отреагировала на то или иное событие. Ну и тому подобное. Собственно, затраты при этом совсем небольшие. Главное иметь у микроконтроллера свободные ножки.

Читать далее

CH32V003. Минимальный проект

ВНИМАНИЕ!


Все материалы по CH32V003 я переношу отсюда на площадку cxem.net.
Отныне и далее эта статья расположена здесь https://forum.cxem.net/index.php?/blogs/entry/758-%D0%BC%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82/

CH32V003. USART

Даже в самом маленьком 8-ножечном микроконтроллере CH32V003J4M6, который стоит менее 20 рублей, имеется последовательный порт. Это то, чего мне частенько не хватало в ATTINY13. Так что связь к компом будет всегда. И это есть очень хорошо.

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

Читать далее

CH32V003. Как затактировать систему

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

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

Читать далее

CH32V003. Как поморгать светодиодами

Короткая тема.

Я залепил светодиоды на весь порт PC. Ну, у меня просто была такая отладочная плата с 8-ю светодиодами и таким же количеством токоограничивающих резисторов. Чёб не припаять всё и не поиграться?

Создал два файла leds.c и leds.h и подключил их в проект.

Читать далее