Две игрушки
Две отладочных платы. Первая плата сделана на основе микроконтроллера CH32V307VCT6 от компании WCH. Внутри ядро RISC-V. Вторая плата выполнена на микроконтроллере AT32F437ZMT7 от компании Artery. Внутри старое доброе ядро Cortex-M4. Такая замена для STMicroelectronix. Хотя ещё есть GigaDevice, Puya, Geehy и другие производители.
Защита данных и "инновации" на Авито
Мой первый пост. Читал и сохранял нужное для себя. Не регистрировался для того, чтобы не вступать в споры. Зная себя, я- бы из них не вылезал. 🤷
Я думаю, что все слышали про постоянные "потери" Авито данных своих пользователей. Кто- то нашёл там себя. Я зарегистрирован с 2010 года и я там есть. Пользуюсь Авито постоянно и недавно решил пройти проверку: продаю участок с домом, скоро буду продавать квартиру, с проверкой было- бы лучше, подумал я. Но проверку пройти не удалось. Почему? А оказывается Авито нужны все данные, даже подпись! Если вы её забираете, то фото не проходит. Зачем? Поддержка Авито молчит. С таким отношением к личным данным те, кто отправляет туда документы, сами себе злобные Буратино.
Ещё одна вещь, которая просто убила наповал: есть такая штука, которая называется Flipper Zero. По сути Arduino с обвязкой и кучей дополнительных модулей в миниатюрном корпусе на аккумуляторах. Или маленький телефон, ноутбук. Штука имеет все сертификаты: ростест, таможенный, ФСБ и т.д. Легально и официально продаётся на территории РФ. Но товарищ майор, который по моим ощущениям посажен заниматься такими вещами на Авито (советский, заплесневелый с чугунным лбом), увидел в этой штуке средство для взлома и получения негласной информации. Что?! 😳 Копировальщики ключей и брелоков, телефоны, ноутбуки, Arduino с кучей дополнительных модулей, отладочные платы продаются, а это низзя! Служба поддержки жжёт напалмом. Хочется им сказать: всё решается установленным софтом, ребята! Но ребята, видимо, уже далеко не молодые. Ржали над ответами службы поддержки с коллегами долго: она с пятого раза не нашла что ответить. 🤣
Я читаю на Хабре про какие- то инновации и современность, а тут такое: ни защиты личных данных, ни профессионалов в команде.
Авито может ругаться, а остальные кидаться тапками.
Отладочная плата для PIC18 своими руками
Если Вы давно мечтали сделать отладочную плату на базе микроконтроллера PIC18 своими руками, но не знали как, то в этом деле поможет данная статья.
Рассматриваемый принцип является одним из вариантов реализации (причем устаревший), на рынке существует масса готовых отладочных плат для множества решений. Поэтому принципы изложенные в данной статье, я отношу к категории "сделай сам", чтобы накопить опыт и знания базисов.
Итак, всем кто остался в статье:
Для указанных целей потребуется реализовать несколько основных моментов:
1. Распайку микроконтроллера на плате;
1.а. Прошить программу bootloader'a, при помощи программатора;
2. Собрать модуль USB-UART для связи с ПК;
2.а. Установить драйвер на ПК;
2.б. Установить ПО на ПК для связи с микроконтроллером;
3. Написать целевую программу и записать ее в контроллер;
По п.1. создание печатной платы - здесь относительно всё просто, делаем разводку на плате для всех ног микроконтроллера, не забыв, для удобства вывести ноги ICSP разъема в отдельную группу, примерно так, как это выглядит на картинке. На плате желательно указать номера ног и имена портов.
Отладочную плату я выполнил с маской используя метод фоторезиста, хотя это не является обязательным. Принципиальная схема включения контроллера примитивна и должна соответствовать схеме включения по дататшиту. В моем случае, используется контроллер PIC18F46K22, так как он имеет два порта UART, что добавляет универсальности схеме.
Впаиваем контроллер, кварцевый резонатор можно и не впаивать, если предполагается использовать только интегрированный. Также, желателен резистор 10К подвесить к MCLR и организовать подключение ICSP-разъема следующим образом:
Организованная группа пинов ICSP разъема позволит использовать программатор подобным образом, чтобы не использовать провода при прошивке контроллера.
П. 1.а. Прошивка контроллера программой bootloader , которую можно написать самому при желании, но в данном случае я использовал Исходники AN1310 из комплекта выпущенного Microchip - Serial Bootloader AN1310. (можно скачать в интернете),
Однако, этот метод организации Bootloader для PIC18 настолько дремуч, что я даже не смог найти ссылок на официальном сайте Microchip , так как давно уже не используется и не поддерживается. Но для целей электива по теме отладочных плат - сойдет.
Итак, Вы нашли и скачали исходники Bootloader AN1310 (и сам дистрибутив Serial Bootloader), для работы с ними потребуется MPLAB IDE v8.92.
До того, как вы скомпилируете проект и требуется выполнить несколько ключевых моментов:
- выбрать требуемый UART порт, так как PIC18F46K22 имеет два USART модуля, а программа Bootloader'а по умолчанию использует первый.
Требуется открыть код файла bootconfig.inc, идущего в комплекте AN1310 и этом в файле можно выбрать один из двух режимов работы Bootloader'а:
#define UARTNUM 1 , где 1 или 2 будет равняться UART1 или UART2
- выбрать участок занятой Flash-памяти, в моем примере весь Bootloader размещается в начале файла, Это позволяет более рационально и экономно распределить ресурсы Flash-памяти между микроконтроллером и Bootloader'ом. Во-вторых, весь код, который необходим для работы Bootloader'а можно аппаратно защитить от записи, ничто не cможет его повредить. Чтобы задействовать REMAPPED Bootloader, необходимо в bootconfig.inc указать
#define BOOTLOADER_ADDRESS 0. (такая строка там есть, возможно ее достаточно раскомментировать)
- биты конфигурации. Обязательное внимание уделяем битам, таким как:
FOSC - ставим в зависимости от того, какой осцилятор используется внешний/внутрений;
PLLCFG - ускоритель частоты х 4 - не включаем.
PWRTEN - пауза для стаблизации питания, включаем.
WDTEN - ватч.дог, выключаем.
PBADEN - особенность для PIC18F46K22, переводит порты PORTB 5..0 в аналог или цифровой выход
MCLRE - активируем внешний сброс (MCLR Pin Enable bit (MCLR pin enabled, RE3 input pin disabled))
(Читаем даташит!)
Теперь всё готово, прошиваем контроллер используя программатор.
п.2 Собрать переходник USB-UART (или использовать промышленного производства)
С самостоятельной сборке ничего сложного нет, требуется использовать FT232 (есть и другие варианты, например, CP2102) для организации такого подключения. Можно, при желании выполнить сразу в составе отладочной платы, но я вынес в отдельную плату-модуль.
п. 2.а. Установить драйвер на ПК Главной сложностью, с которой можно здесь столкнуться - драйвер. В целом все просто, микросхема FT232 поддерживается компанией FTDI и поставляет драйвер, только он установится как USB устройство, однако, наш Serial Bootloader работает только с COM.
Поэтому, в драйвере INF потребуется поменять PID , добавив его в раздел
[FtdiHw]
%VID_0403&PID_6001.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6001
и[FtdiHw.NTamd64]
%VID_0403&PID_6001.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6001
После его установки, драйвер относится к разделу COM портов.
п. 2.б. Установить ПО на ПК для связи с микроконтроллером
Берем ПО из архива с Microchip Serial Bootloader AN1310 , в состав которого, входит ПО AN1310 v1.05r.
В настройках не забываем выбрать соответствующий порт. Программа умеет шить и конфигурационные биты (с чем надо обращаться с осторожностью) и eeprom.
Подключаем переходник UART-USB, к соответствующему порту контроллера и нажимаем кнопку Break/Reset.
Важно!
Тем самым, на выходах RX/TX формируется логические нули, что для прошивки bootloader является триггером определяющим, какую часть кода исполнять, т.е. запуска прошивки пользователя, либо прошивки bootloader.
С данного момент, после подачи нуля на MCLR (или банального отключения питания), контроллер в момент старта (перезагрузки) определит какую часть кода он запустит.
- Если пользовательское ПО еще на записано в контроллер, то запустится программа bootloader в любом случае.
- Если на RX/TX сформированы логические нули (нажат Break/Reset) и контроллер перезапущен, то запустится программа bootloader.
- В других случаях, при перезагрузке контроллера, будет запущено пользовательское ПО (если оно есть).
Итак, Break/Reset нажат и контроллер перезагружен!, нажимаем, Bootloader mode. И если видите следующую картину, то bootloader запустился и с ним можно работать.
Например, прочитав можно изучить состав данных в CONFIG, EEPROM и пр.
п.3. Написать целевую программу и записать ее в контроллер;
Наиважнейшим этапом написания программы под bootloader является - offset (или смещение). В пункте п.1.а. указывалось, что программа bootloader'a размещается в самом начале и защищена от записи, следовательно, для целей смещения кода (внутри hex файла) пользовательской программы, обязательно используется linker. Для pic18 и компилятора XC8 это сделать достаточно просто (для PIC24 всё мягко говоря сложнее в разы):
После чего, скомпилированный код не будет затрагивать указанные интервалы пространства.
Для большего понимания зачем это нужно, вот скрин из даташита к AN1310:
По факту завершения написания программы, компилируете и возвращаетесь в Serial Bootloader AN1310., затем:
Reset\Break + MCLR
Запускаем Bootloader, убеждаемся, что он запущен
Открываем скомпилированный код HEX и нажимаем Write Device
По завершение загрузки, нажимаем Run
Контроллер сразу начнет выполнение пользовательского кода.
Вот как так это всё и работает. Зато это гораздо интереснее этой вашей арудины.
В следующий раз расскажу про Bootloader PIC24 и самописное ПО для ПК.
Tigard - плата с открытым исходным кодом для взлома оборудования
Существует множество дешевых отладочных плат USB на TTL 5 В или 3,3 В, используемых для доступа к последовательной консоли и/или программным платам, но аппаратная плата с открытым исходным кодом Tigard на базе FTDI FT2232H делает гораздо больше, поскольку поддерживает несколько протоколов, несколько напряжений для взлом оборудования и отладка.
Разработчик объясняет, что Tigard можно использовать в качестве прямой замены для десятков других аппаратных инструментов на базе чипов FTDI и включает встроенную поддержку OpenOCD, FlashROM и многое другое.
Технические характеристики платы Tigard:
Основной чип — FTDI FT2232HQ, двойной высокоскоростной USB-порт для многоцелевого - UART/FIFO IC
- Основной порт, предназначенный для UART, включая доступ ко всем сигналам управления потоком
- Вторичный порт совместно используется выделенными разъемами для SWD, JTAG, SPI и I²C
USB – порт USB 2.0 Type-C (480 Мбит/с)
Вводы/выводы
- 9-контактный разъем UART
- Разъем Qwiic I2C
- 8-контактный разъем SPI и I2C
- 8-контактный разъем JTAG
- 10-контактный отладочный разъем Cortex
- 14-контактный разъем логического анализатора (LA) для наблюдения за сигналами на уровне устройства
- Направленные переключатели уровня для работы от 1,8 до 5,5 В
Разное
- Переключатель, чтобы выбрать между встроенными источниками питания vTarget 1,8 В, 3,3 В, 5,0 В и внешними
- Переключатель, для выбора между режимами SPI/JTAG и I²C/SWD.
- Световые индикаторы для облегчения отладки
Нет необходимости в специальных инструментах для Tigard, и плата будет работать со стандартными инструментами и библиотеками, включая драйверы последовательного порта USB, OpenOCD и UrJTAG для JTAG, Flashrom, PyFtdi/PySpiFlash, LibMPSSE и другие инструменты для интерфейса SPI, а также LibMPSSE и PyFtdi / PyI2CFlash для интерфейсов I2C.
Плата будет поставляться со всеми необходимыми кабелями (SPI, JTAG, Cortex, последовательный) с четко обозначенными проводами. Также есть два набора, первый из которых включает плату логического анализатора Bitmagic для отладки последовательных протоколов в реальном времени с помощью Sigrok / PulseView, а второй — «Applied Physical Attacks Online Kit», в который добавляются зажимы и разъемы, простой мультиметр, сумочка-органайзер, USB-микроскоп и целевая система (неназванный Wi-Fi-маршрутизатор на базе Linux).
На Github выложены файлы проектирования оборудования KiCAD и документация.
Tigard уже собрал более 20 000 долларов на Crowd Supply ( от $39 за плату и провода и до $1337 за полный комплект) . Доставка в США бесплатна, а в остальные страны — от 10 до 20 долларов.
Поставки планируется начать во второй половине февраля 2021 года.
Источник: cnx-software
Stm32f103 и Arduino IDE, проект №0
Arduino IDE sketch:
https://vk.com/doc256435878_444331607
Дешевая STM32 плата + Arduino IDE:
https://geektimes.ru/post/277928/
stm32f103 запрограммировал в Arduino IDE. Частота PWM равна 20 KHz:
pwmtimer.setPeriod(50); // 20 KHz, PWMresolution = 3600
Показан пример плавного старта DC двигателя. Практической пользы пока что не имеет, просто демонстрация возможностей stm32f103.
Шпаргалка по частоте ШИМ при помощи функции setPeriod()(актуально для среды разработки Arduino IDE) (с) http://stm32duino.com/viewtopic.php?p=12493#p12493 .
Схема выглядит вот так, только вместо 12 36В, а вместо составного TIP122 отечественный КТ827, резистор на 1 кОм, диод какой-то на 10 А 200В.
By Techn0man1ac aka MrПоделкинЦ
ATtiny85 стала сверх-мини с Nanite
Nanite это сверх-мини DEV плата построена вокруг Atmel ATtiny85 микроконтроллера (MCU).
Плата имеет размер 0,4 дюйма, и имеет такое же расположение контактов как и DIP версия ATtiny85.
Я хотел иметь свою собственную плату для отладки и разработки с USB загрузчиком и оптимизированную для вездесущих 170 контактных (и более) брэдбордов.
Nanite имеет быструю кнопку сброса RESET, но не имеет встроенного конвертера напряжения, так как питание будет от USB. — Nanite creator Tim explained in a recent blog post.
Кроме маленького размера, Nanite имеет небольшую схему-трюк чтобы совместно использовать один пин с светодиодом и кнопкой сброса.
Схема платы показана ниже, схема крепится к контакту сброса, PB5 который расположен справа.
Дело вот в чём, если PB5 сконфигурирован как обычный сброс то кнопка будет как обычный сброс, вместе с LED принимая на себя роль «pull up» функцию RESET.
НО, если отключить функцию RESET и настроить порт как обычный I/O пин — то состояние кнопки можно опрашивать простым чтением из порта.
Тим уточнил что:
«Светодиод может быть включен путем установки выхода на»LOW» и выключен путем настройки выхода в состояние высокого импеданса. Не рекомендуется устанавливать выход ‘HIGH’, так как в этом случае кнопка может коротнуть выход на землю «
«Я использую микроядро в конфигурации, где оно запускается только тогда, когда кнопка нажата. Это означает, что пользовательская программа запускается без задержки после того устройство получает питание «.
В то же время, функциональность кнопки сброса эмулируется с помощью программного обеспечения, периодически опрашивает состояние кнопки и активации таймера Watch Dog, если она нажата. Если Watch Dog время вышло, сбрасывается устройство.
Также он добавил что:
«Помимо LED вывода, взаимодействия с пользователем и мягкого сброса, PB5 также может быть использован в качестве простого вывода SERIAL отладки — подключен к входу RX SERIAL к адаптеру USB. Я использую простую реализацию программного обеспечения-UART и макрос для перенаправления STDOUT к SERIAL выходу. Это обеспечивает очень удобную отладку с PRINTF(), «
Хотите узнать больше? Вы можете посмотреть Nanite’s official page здесь и также Eagle файлы и исходный код доступны на Github здесь.
Оригинал статьи — ATtiny85 goes uber-mini with The Nanite
Перевод от Dionisnation