CMSIS-DAP на STM32F4Discovery

Тут уже лет 5 назад упоминали о таком, но мало ли. CMSIS-DAP какой-то канонный опенсорсный интерфейс отладки от ARM для кортексов на базе протокола USB HID. Т.е. не привязанный к конкретному производителю контроллеров и не требующий драйвера.
Более мощная версия этой штуки (со всякими балалайками, типа популярной нынче прошивки через MSD, или USB-UART) развивается mbedом и называется DAPLink.





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

Кухонный таймер



Вступление

(можно не читать).
Достаточно часто на кухне надо следить за длительностью какой-нибудь операции или процесса. Например, чайничек поставили наливаться или макарошки вариться, или мясо в духовку ваша ненаглядная поставила. И вроде бы все хорошо, но стоит зазеваться(или засидеться в интернете), как чайник перельется, макароны переварятся или что еще хуже – мясо в духовке подгорит!
Для решения данного вопроса был приобретен механический таймер в виде яйца. И, в общем, он был неплох — места не занимает, звенит громко. Но спустя полгода таймер начал куда-то спешить. Да прилично так. Заводишь его на час, а он уже минут через 40 звенит. В общем не порядок! Немного подумав и посмотрев на готовые варианты, все-таки решил сделать свой кухонный таймер.

Требования

Требования были к нему достаточно простые:
  • Электронное управление
  • ЖК-индикация
  • Звуковая сигнализация
  • Компактность
  • Низкое энергопотребление
  • Измерение температуры (ну, как же без нее :-))



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

Альтернативная библиотека для символьных ЖКИ под mikroPascal AVR Pro

Выложил на Libstock альтернативную библиотеку для символьных LCD, заменяющую оригинальную Lcd. Исправлено быстродействие и тайминги, устранена ошибка с затиранием ОЗУ при использовании Lcd_Out, добавлена совместимость с OLED Winstar.

Брать здесь. Состав пакета: библиотека и описание интерфейса модуля, без исходного кода.

AVRISPmkII на STM32F4Discovery

Изучал USB-библиотеку на STM32F4 и как побочный результат этой деятельности получился клон AVR ISP mkII.
В архиве hex прошивки и исходник.

Распиновка ISP (AVR):
PD7 — RESET
PB3 — SCK
PB4 — MISO
PB5 — MOSI

Распиновка PDI (XMega):
PB13 — CLK
PB15 — DATA

PE5 — 4 МГц меандр на всякий случай

Красная лампочка просто моргает, зелёная — при активности.
stm32f4discovery as avrispmkII

Вдруг просто надо будет что-то авровское прошить, а под рукой программатора нет. А так можно быстро сколхозить из весьма распространённой отладки. Номер версии ПО: 0x18.

Мои онлайн-инструменты для электронщиков

Добрый день, сообщество.

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

Продукты Keil

Эта страница позволяет скачать любые продукты Keil с их официального сайта без заполнения нудной формы. Выберите продукт и получите ссылку для скачивания.

Электротехнический калькулятор

Этот инструмент позволяет произвести некоторые электротехнические расчеты.

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

Сейчас в онлайновом электротехническом калькуляторе есть 3 инструмента:
  1. Расчет номинального сопротивления
  2. Расшифровка маркировки чип-резистора
  3. Расчет проводника

Генератор заголовочных файлов Си

Программистам на Си и Си++ будем полезно. Позволяет генерировать грамотный заголовочные файлы с защитой от повторного включения с уникальным идентификатором.

Пример генерируемого кода.

#pragma once
#ifndef EXAMPLE_H_20170303_211631
#define EXAMPLE_H_20170303_211631

#endif /* #ifndef EXAMPLE_H_20170303_211631 */


Чтобы не возникало споров и вопросов, поясню код.

Зачем нужна защита от повторного включения я не буду объяснять, это расписано в Википедии. Директива "#pragma once" нужна для компиляторов, которые ее понимают. Она позволяет не читать заголовочный файл целиком, а игнорировать его, если он уже включен. Тем самым ускоряется компиляция программы. Некоторые компиляторы не понимают эту директиву и игнорируют ее (такое поведение прописано в стандартах Си и Си++). Для непонимающих компиляторов нужны строки, которые идут дальше. С помощью обычных директив реализуется стандартная защита от повторного включения. Генератор выдает уникальный идентификатор, основанный на временной метке или на UUID. Это позволяет гарантировано избежать повторного включения. Особенно полезно, когда вы используете сторонние библиотеки, которые нельзя поправить, и у которых идентификаторы совпадают. Поздравляю тех, кому этого пока удается избегать.

Вертикальная емкость (ванна) для травления печатных плат 300 мл

Добрый день.

Решил открыть производство небольших ванн для травления печатных плат и хотел бы узнать мнение сообщества насколько это актуально.

IMG_20170223_230247.jpg


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

Цифровые мультиметры "нищебродов в_прыжке"

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


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

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

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


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

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

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

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

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

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

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

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

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


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

Читать дальше
  • +4
  • 02 февраля 2017, 17:43
  • GYUR22
  • 1