Чудо враждебной техники

Приехала мне вот тут новая игрушка, смотрите какая красота! Для сравнения размеров в кадре зубочистка.
Как думаете, что это? =)
BGM121, вид снизу


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

stm32f0 читает ноги без инициализации пинов

Блог персональный. Но случай не вполне заурядный, пишу себе на память и случай и как я жестко тупил.

Однажды инициализация пинов в основном файле меня начала раздражать и была вынесена доп файл. Запускать — не запускал, пока не допишу чтение всего. Железяка новая, все 20 пинов — заняты.
После написания черновика и прошивки, железяка странно реагировала на кнопки и тумблеры. Как бы с задержкой в 2-3 секунды.

Думал, функции фильтрации дребезга. Подтяжки-оттяжки в функции инициализации тоже не помогали. Не было на выводах притяжки к питанию, хоть тресни. МК сдул/надул, сгорел, мало ли.

Ответ оказался прост: функция иницализации пинов после переноса не была вызвана.
Тактирование портов было включено процедурами инициализации соседней периферии, но входы ввода-вывода не были инициализированы и при этом прекрасно, но медленно читались.
Т.е. нажимаю кнопку — замыкаю «подтянутый к+» вывод на землю. Через мгновение программа «видит» ноль. Отпускаю кнопку, через пару секунд (фильтр дребезга через скользящее среднее) становится «1». Будто бы подтяжка есть.

Видимо, паразитная емкость мосфетов + пусть и мномегаомное, но имеющееся в наличии сопротивление сыграли в RC фильтр и все же подтяжку.

Ну и после прошивки чип закирпичивается. Connetcion under reset почему-то требует кнопку reset, через ST-Link оно что-то не работает. Это второй урок.
  • ?
  • 09 февраля 2017, 14:02
  • igorp

Modbus модуль дискретных входов выходов


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

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

В продолжении хвастовства.

Отмазки


В прошлом посте я рассказывал о том, как я благодарен EasyElectronics за пинок в нужную сторону. Прошу считать этот пост продолжением предыдущего, а так же и рассказом о том, что же такого делается у нас. Ну, к сути.


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

GP для построения графиков

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


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

Системы сборки glink. Записки охотника за кирпичами или немного о сборке софта.

Системы сборки glink. Записки охотника за кирпичами или немного о сборке софта.

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

Я не сторонник универсализации. Универсальные инструменты сложны в понимании, а внесение изменений в них практически невозможно, даже если всем очевидно, что у инструмента есть слабые стороны. Универсальные инструменты популярны и общеприняты, и это как их достоинство, так и недостаток. Вы не сможете просто изменить синтаксис Makefile, убрать скобки из лиспа, изменить раскладку qwerty, отменить существование реестра в Windows, или уменьшить количество опций gcc. Попытка переизобретения универсального инструмента, имеющего недостаток, всегда приводит к появлению универсального инструмента, имеющего недостаток. Нужно понимать это.

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


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

Клон дисплея Adafruit, экономим выводы микропроцессорных устройств.

Всем привет! Сегодня я расскажу как мне удалось сэкономить порты своей Raspberry Pi. Давно хотел подключить строчный дисплей к этому одноплатному компьютеру, и даже попробовал это сделать используя библиотеку wiringpi, но уж очень много выводов занимает такое подключение. Первое, что пришло в голову, было использование сдвиговых регистров, но все же я решил посмотреть в сторону шины I2C или SPI. Почитав топики в интернете нашел классное решение — RGB LCD SHIELD KIT W/ 16X2 CHARACTER DISPLAY — ONLY 2 PINS USED!. На плате используется всего два пина для управления SDL и SCK по шине I2C, плюс еще места хватило для пяти тактовых кнопок. В данном устройстве скорость не так сильно важна, поэтому шина I2C мне вполне подошла. «Сердцем» платы является микросхема компании Microchip, расширитель портов MCP23017.



Читать дальше
  • +2
  • 27 декабря 2016, 15:55
  • Jman
  • 2

OLED sh1106

Волны, поднятые Чорной Пятниццой, выбросили на наш гостеприимный берег новый OLED-экранчик.
1.3" с SPI интерфейсом, на контроллере sh1160.



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

ОС как библиотека

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

Но и тормозить основной цикл тоже как-то не очень хорошо. На этот случай есть известное решение — ОС.

Но если требуется допилить уже существующий проект с минимальным вмешательством в остальной код?
Вот мне стало интересно сделать мини-ОС, которая подключается к проекту как библиотека. То есть, делаем вызов какой-нибудь функции os_Init() и получаем возможность создавать потоки, не вмешиваясь в работу основного цикла. Он продолжает работать, как будто никакой ОС и нет, просто иногда управление передаётся дополнительным потокам.



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

Редактор шрифтов

Часто бывает надо поменять какой-нибудь символ в шрифте, добавить иконку или что-то такое, но квадратики в тетрадочке закрашивать лень, высчитывать номер байта и бита в гигантском массиве тоже… На такой случай и была сделана программка для редактирования шрифтов прямо в .c/.h файлах. Естественно, для тех форматов, которые попадались под руку — а то больно их много всяких.

Открыл файлик font14x8.c прям в папке проекта, поменял растр буковки — и сохранил. Прелесть.


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