Звіт про дослідження. Режим програматора St-Link.

  • 14.05.21, 04:23
Програматор St-Link може перебувати в одному з, як мінімум, трьох режимів.
- DFU-режим (код 0)
- Mass-режим (код 1)
- Debug-режим (код 2)
Mass-режим: Схоже, що це нейтральний режим з якого можна переходити в інші режими і в котрий програматор повертається при виході з інших режимів.
DFU-режим: Напевно, режим для оновлення прошивки самого програматора. В цьому режимі не виконуються Debug-команди (команди,що починаються байтом 0xF2).
Debug-режим: Режим для роботи з підключенним мікроконтролером. Має два підрежими: SWD і JTAG.

Проблема з переходом в Debug-режим.
Якщо програматор не підключено до мікроконтролера, то при виконанні команди переведення програматора в Debug-режим (0xF2 0x30 0xA3 ...), програматор може вести себе по різному. Деякі переходять у Debug-режим, а деякі залишаються у Mass-режимі. Можливо, це залежить від версії прошивки програматора, і в певних прошивках для переходу у Debug-режим має відбутися якась взаємодія з мікроконтролером.
Аналізуючи роботи плат з різними версіями прошивки вбудованного програматора, можна зробити висновок, що старі версії (до версії J27) переходять у Debug-режим, а більш новіші (починаючи з версії J28) не переходять.

Підключення китайского програматора St-Link до плати Nucleo64-G4

  • 08.05.21, 20:30
Демонстраційна плата Nucleo64-G474 відрізняється від своїх більш старших за віком родичей вбудованним програматром St-Link версії 3.
Це може викликати певні труднощі в роботі з цією платою. Наприклад, якщо ви користуєтесь операційною системою Windows XP, то для неї під цю версію програматора немає драйверів.
В такому разі для програмування і відлагоджування програми можна використати звичайний китайский St-Link.
Для цього треба виконати наступні кроки
1. Відключити вбудованний St-Link - для цього слід встановити джампер JP1
2. Встановити режим живлення від зовнішніх 3.3 вольт - для цього слід прибрати джампер з JP5 (тобто не вибирати жодного варіанту)
3. Під'єднати китайский St-Link

St-Linkплата
+3.3V<--->+3.3V
Gnd<--->Gnd
SWDIO<--->PA13
SWCLK<--->PA14


Windows програма для USB-CAN адаптера Robotell

  • 04.04.21, 14:27
Пару років тому я придбав у китайців USB-CAN адаптер Robotell



Але в той час я не зміг його застосувати через відсутність програмного забезпечення. Його пошуки були безуспішними і тому адаптер довелося відкласти до кращих часів.
Коли минув певний час я натрапив на наступний ресурс
Це Python скрипт для роботи з адаптером Robotell.
Вивчивши код цього проекту, я на Delphi написав власний монітор CAN-шини для операційної системи Windows.



Завантажити програму ви можете з сторінки програми на сайті yatrim.com

Модифікація CCLoader

Купив я нещодавно bluetooth модуль mlt-bt05. Це один з клонів модуля HM-10, який ідентичний йому за апаратною частиною, але має зовсім інше програмне забезпечення. Програмне забезпення модуля mlt-bt05 мене не влаштувало, бо в ньому немає можливості встановлювати, таку характеристику послідовного з'єднання як парність. В інтернеті я знайшов інформацію про те, що цей модуль можна перепрошити і зробити з нього повноцінний HM-10.
Коротко як це робиться.
З GitHub скачується проект CCLoader
Він складається з двох частин. Одна - це скетч для плати Arduino. Його треба скомпілювати і завантажити на плату Arduino Uno або Arduino Mega. Плата Arduino підключається до модуля mlt-bt05 згідно до схеми

Друга частина - це програма для ПК. Ця програма зв'язується по послідовному порту з Arduino. Передає прошивку на плату Arduino, а вже Arduino прошиває модуль.
На github є як вихідній файл програми, так і вже зібрана програма для Windows.
Але, коли я спробував її запустити, то отримав помилку "illegal comport number"

Переглянувши вихідний файл я зрозумів, що програма може працювати з послідовними портами від COM1 до COM16. А в мене послідовний порт від Arduino був COM17.
Звичайно можна в системі змінити номер порта на меньший. Але мені більш до душі було виправити програму і зробити можливість працювати з будь-якими номерами портів.
В результаті я вніс зміни і успішно перепрошився через COM17.
Посилання на модифікований CCLoader.exe і його вихідний файл нижче

Кряк програми ZFlasher Stm32.

  • 14.07.20, 18:53
Передмова

В GooglePlay можна знайти таку програму ZFlasher Stm32.
Вона призначена для того, щоб перепрошивати мікроконтролери Stm32 з мобільного пристрою через програматор St-Link.
Програма безкоштовна, але є в неї особливість - дійсно безкоштовно вона дозволяє працювати тільки з контролерами серії Stm32F1. Для роботи з контролерами інших серій, програма вимагає вас здійснити донат.
На мою думку це нечесно. Для того, щоб отримати доступ до функціоналу, я маю зробити "добровільне пожертвування". А якщо після цього мене не задовільнить функціонал, я не можу повернути кошти, бо я ж не платив за функціонал, а робив "пожертвування".

Моєю метою було отримання недоступного функціоналу без "пожертвувань" і мені це вдалося.


Необхідні вимоги

На мобільному пристрої має бути root. Як отримати root це окрема пісня. Причому методи різні в залежності від моделі пристрою. З певними пригодами, мені вдалося отримати root на моєму HTC One X.


Крекінг

Програма ZFlasher Stm32 після того, як користувач здійснив донат, фіксує цу подію в налаштуваннях програми.
Самі налаштування зберігаються в xml-файлі. Знайти його можна за шляхом
/data/data/ru.zdevs.zflasherstm32/shared_prefs/ru.zdevs.zflasherstm32_preferences.xml
Саме для того, щоб дістатися цього файла, нам потрібен root.
В цьому файлі треба додати новий параметр bD типу boolean, і встановити його значення true.
<boolean name="bD" value="true" />



Після збереження файлу і перезапуску програми ZFlasher Stm32, в програмі стає доступний весь функціонал і можна перевіряти його роботу.


P.S.
Сам я рекомендую користуватися іншою Android програмою для прошивки Stm32 через программатор St-Link - StLinkP
В неї функціонал повністю безкоштовний. Хоча ви також можете зробити в ній донат, але вже як дійсно добровільну подяку розробнику за роботу

Відновлення роботи Windows XP

  • 18.06.20, 02:44
В мене на ноутбуці перестала запускатися WindowsXP. Вискакувало повідомлення, що файл \windows\system32\config\system не знайдено або пошкоджено.
У мене вже таке траплялося раніше. Проблема успішно вирішувалася запуском установочного диску WindowsXP з наступним запуском консолі відновлення. Але цього разу не спрацювало.
В консолі відновлення є крок, коли треба зробити вибір, яку операційну систему треба відновлювати (на випадок, якщо установлено кілька систем). І от на цьому кроці, коли я натискав "1" для вибору системи, ноутбук зависав.
Тоді я спробував запуститися з LiveCD і скопіювати файл system (цей файл є файлом реєстру Windows гілка SYSTEM), але нічого не виходило. Видавалася помилка вводу/виводу. Один з секторів жорсткого диску в якому зберігався файл було пошкоджено. При цьому файл можно було перейменовувати.
В мене виникла ідея: скопіювати повністю файл, пропустивши місця з битих секторів. Зіпсований файл перейменувати, а замість нього записати відновлену копію.
Проблемою виявилося знайти програму, яка могла зробити таку копію. Програми, які я пробував, припиняли копіювання, натикаючись на битий сектор, і (можливо не вміли, а можливо я не знав як це змінити) припиняли копіювання.
Нарешті мені вдалося знайти програму, яка впоралась з завданням.
Це Active@ File Recovery від LSoft Technologies. В мене вона знаходилася на LEX LiveCD в розділі меню "Восстановление". В програмі треба було обрати файл і виконати команду Recovery, а коли з'явилося повідомлення про битий сектор, натиснути на кнопку "Ignore".
Потім я скопіював отриманий таким чином файл до папки \windows\system32\config (попередньо переіменувавши зіпсований файл на system.bad) і перезапустив систему.
WindowsXP успішно перезапустилася.

Загадочный USB-CAN адаптер

  • 14.04.20, 19:51
Пару лет назад я приобрел у китайцев USB-CAN адаптер и до сих пор не знаю как его использовать.
Никакого диска с ПО вместе с ним не прислали и поисками в интернете я тоже ничего не добился


На компьютере устройство обнаруживается как виртуальный последовательный порт Silicon Labs CP210x. Но по порту мне не удалось получить хоть какой-то реакции.

Разобрав устройство, я обнаружил, что работает он на микроконтроллер Stm32F1 и на плате есть нераспаяный разъем под St-Link.

Я подумал, что у меня получиться снять прошивку и из нее получить какую-то информацию. Подпаял разъем и подключил St-Link. Но меня ожидал облом. На микроконтроллере была установлена защита от чтения.

Частично мне удалось считать прошивку программой Stm32F1Discloser

На данный момент об устройстве известно следующее:

Плата:
CPU: Stm32F103C8T6
Осциллятор: 12 MГц
UART-USB: Silabs CP2102
CAN-transceiver: NXP TJA1050

Подключение:
CP2102 подключен к USART2 пины PA2, PA3
NXP TJA1050 подключено к пинам PB8, PB9

Прошивка:
Установленная частота 72 МГц
USART2: Установленные параметры: 115200 бод, 8 бит данных, бит четности отсутствует

Протокол передачи:
Lawicel - нет (не отвечает на команду "V[CR]" - получить версию) 

Официальный сайт компании XPrinter

Продолжаю тему термопринтеров.
Есть такой китайский производитель XPrinter.
Захотелось мне глянуть на ихний официальный сайт, и сходу у меня это не получилось.
Гугл выдавал что-то не понятное.
Но оказывается что английская версия их официального сайта имеет интуитивно непонятный адрес
Может кому-то это знание пригодится (Мне так точно).

Цифры в названии моделей принтеров этикеток Datamax O'Neil.

Сейчас мне приходиться работать с термопринтерами для печати этикеток.
Не так то просто разобраться во всем ихнем разнообразии.
В этой статье я хочу разобрать один вопрос.
Что означают цифры в моделях принтеров этикеток фирмы Datamax O'Neil (а с недавнего времени Honeywell)?
Если взглянуть на название моделей (например на этом сайте), то можно обнаружить одну закономерность. В названиях всех моделей всегда есть четыре цифры. Например Datamax O'Neil H-4606
Эти цифры скрывают за собой информацию, которая может дать вам быструю информацию о характеристиках принтера:
1-я цифра - Максимальная ширина печатаемой этикетки в дюймах
2-я цифра - Разрешение печати (2 - 203dpi, 3 - 300dpi, 6 - 600dpi)
3-я и 4 цифра - Скорость печати в дюймах за секунду.

Пример: Принтер Datamax O'Neil E-4305A Mark III - максимальная ширина этикетки 4 дюйма (102 мм), разрешение 300dpi и скорость печати 5 дюймов/сек (125 мм/сек)

Акселерометр MPU6050

  • 29.06.18, 18:25
Возник вопрос калибровки модуля акселерометра MPU6050

Вычитал значение недокументированных регистров для AccelOffset
Получил следующие значения
X = 0xFA2E
Y = 0xF391
Z = 0x0450
Сторінки:
1
2
3
4
6
попередня
наступна