Чтение сигнатуры

Rootware
Offline
Зарегистрирован: 11.01.2018

Как прочитать сигнатуру микроконтроллера из пользовательского приложения? Необходимо определить что за плата подключена к COM порту по сигнатуре чипа.

Возможно ли такое? Кто нибудь заморачивался?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Только в том случае, если чип запрограммирован выдавать о себе информацию по COM-порту.

Rootware
Offline
Зарегистрирован: 11.01.2018

Как это можно проверить?

sadman41
Offline
Зарегистрирован: 19.10.2016

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

Rootware
Offline
Зарегистрирован: 11.01.2018

Задача следующая. Есть приложение управления ИК паяльной станцией, которое работает с устройством (паяльной станцией) на базе МК. Программа универсальная и не пишется под опрелелённый контроллер. Т.е. можно, используя API, реализовать управление устройством на базе AVR или STM32 контроллере. Общение идёт по UART интерфейсу на USB-COM или Hardware COM порту.

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

На сегодня, я могу читать данные из свойств самого COM порта вида: PID, VID, etc. Т.е. то, что доступно в сведениях об устройстве что висит на порту. Но поскольку зоопарк плат огромен и не всегда они оригинальные, а местами самоделки, то читать сигнатуру самое оно.

Если это нереально, хотя программаторы читают всё что мне нужно, то и заморачиваться не буду. Оставлю опционалом, чтобы любой желающий мог использовать на своё усмотрение.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Rootware пишет:

программаторы читают всё что мне нужно

дак оне ж не по COM читают

Rootware
Offline
Зарегистрирован: 11.01.2018

DetSimen пишет:

Rootware пишет:

программаторы читают всё что мне нужно

дак оне ж не по COM читают

Т.е. идея бред?

arduinec
Offline
Зарегистрирован: 01.09.2015

Rootware пишет:

Общение идёт по UART интерфейсу на USB-COM или Hardware COM порту.

Если есть общение, то контроллер сам о себе может всё рассказать.

Rootware
Offline
Зарегистрирован: 11.01.2018

arduinec пишет:

Rootware пишет:

Общение идёт по UART интерфейсу на USB-COM или Hardware COM порту.

Если есть общение, то контроллер сам о себе может всё рассказать.

Вот за этим я и обратился сюда. Нужна помощь знающих.

sadman41
Offline
Зарегистрирован: 19.10.2016

DetSimen пишет:

Rootware пишет:

программаторы читают всё что мне нужно

дак оне ж не по COM читают

Дак avrdude через COM читает. Только, мне кажется, что для этого он сначала должен reset дернуть, а потом у бутлодыря спрашивать сигнатуру.

Т.е. прямо вот так, тупо засадившись на UART точно не прочесть, если нет поддержки со стороны ПО, которое сидит в МК станции. При возможности модифицировать его - такую фичу можно добавить, а если нет... ну, может производители оставили бэкдор какой.

arduinec
Offline
Зарегистрирован: 01.09.2015

Rootware пишет:

arduinec пишет:

Rootware пишет:

Общение идёт по UART интерфейсу на USB-COM или Hardware COM порту.

Если есть общение, то контроллер сам о себе может всё рассказать.

Вот за этим я и обратился сюда. Нужна помощь знающих.

Serial.println("я Ардуина"); или Serial.println("я СТМ");

Rootware
Offline
Зарегистрирован: 11.01.2018

sadman41 пишет:

DetSimen пишет:

Rootware пишет:

программаторы читают всё что мне нужно

дак оне ж не по COM читают

Дак avrdude через COM читает. Только, мне кажется, что для этого он сначала должен reset дернуть, а потом у бутлодыря спрашивать сигнатуру.

Т.е. прямо вот так, тупо засадившись на UART точно не прочесть, если нет поддержки со стороны ПО, которое сидит в МК станции. При возможности модифицировать его - такую фичу можно добавить, а если нет... ну, может производители оставили бэкдор какой.

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

Rootware
Offline
Зарегистрирован: 11.01.2018

arduinec пишет:

Rootware пишет:

arduinec пишет:

Rootware пишет:

Общение идёт по UART интерфейсу на USB-COM или Hardware COM порту.

Если есть общение, то контроллер сам о себе может всё рассказать.

Вот за этим я и обратился сюда. Нужна помощь знающих.

Serial.println("я Ардуина"); или Serial.println("я СТМ");

Всё сейчас именно так и делается. В структуре Init пакета от МК заложены все данные о МК. Можно их использовать, а можно слать нули. Но я хочу не нагружать пользователя лишними вычислениями всякой всячины. Как-то так.

sadman41
Offline
Зарегистрирован: 19.10.2016

Rootware пишет:

Всё сейчас именно так и делается. В структуре Init пакета от МК заложены все данные о МК. Можно их использовать, а можно слать нули. Но я хочу не нагружать пользователя лишними вычислениями всякой всячины. Как-то так.

Тогда добавьте туда "поле" "Платформа". И останется только на старте записать в него сигнатуру. Читать ее с МК умеете же?

arduinec
Offline
Зарегистрирован: 01.09.2015

Rootware пишет:

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

Какого пользователя? Из поста #4 следует, что пользователем будет твоя же программа. Программа и микроконтроллер не смогут друг с другом договориться?

Rootware
Offline
Зарегистрирован: 11.01.2018

sadman41 пишет:

Rootware пишет:

Всё сейчас именно так и делается. В структуре Init пакета от МК заложены все данные о МК. Можно их использовать, а можно слать нули. Но я хочу не нагружать пользователя лишними вычислениями всякой всячины. Как-то так.

Тогда добавьте туда "поле" "Платформа". И останется только на старте записать в него сигнатуру. Читать ее с МК умеете же?

Да это не проблема. В теме SysInfo этого форума есть код который выводит это. Уже использую. Хотел вообще избавиться от лишнего кода со стороны МК.

Rootware
Offline
Зарегистрирован: 11.01.2018

arduinec пишет:

Rootware пишет:

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

Какого пользователя? Из поста #4 следует, что пользователем будет твоя же программа. Программа и микроконтроллер не смогут друг с другом договориться?

Под "пользователь" имелось ввиду человек использующий моё ПО для управления своей ИК станцией.

Обмен данными уже настроен. Т.е. "сетевой" интерфейс работает исправно. Хотел тупо выкинуть ненужное и брать инфу из самого МК.

sadman41
Offline
Зарегистрирован: 19.10.2016

Rootware пишет:

Да это не проблема. В теме SysInfo этого форума есть код который выводит это. Уже использую. Хотел вообще избавиться от лишнего кода со стороны МК.

Иного варианта лично я не вижу.

PS. Наврядли это можно назвать лишним кодом. Это необходимый функционал.

Rootware
Offline
Зарегистрирован: 11.01.2018

На работоспособность это не влияет. Просто некая дополнительная информативность, которая иной раз слишком много строк кода занимает в теле программы для МК.