Чтение сигнатуры
- Войдите на сайт для отправки комментариев
Чт, 11/01/2018 - 00:33
Как прочитать сигнатуру микроконтроллера из пользовательского приложения? Необходимо определить что за плата подключена к COM порту по сигнатуре чипа.
Возможно ли такое? Кто нибудь заморачивался?
Только в том случае, если чип запрограммирован выдавать о себе информацию по COM-порту.
Как это можно проверить?
А вы поподробней расскажите о задаче. avrdude тоже сигнатуру читает, например, только ему бутлодырь помогает.
Задача следующая. Есть приложение управления ИК паяльной станцией, которое работает с устройством (паяльной станцией) на базе МК. Программа универсальная и не пишется под опрелелённый контроллер. Т.е. можно, используя API, реализовать управление устройством на базе AVR или STM32 контроллере. Общение идёт по UART интерфейсу на USB-COM или Hardware COM порту.
Поскольку хотелось универсальности, имея установленное соединение с МК читать его сигнатуру, чтобы отображать в программе что за версия МК используется в аппаратной части и, соответственно некоторую техническую информацию.
На сегодня, я могу читать данные из свойств самого COM порта вида: PID, VID, etc. Т.е. то, что доступно в сведениях об устройстве что висит на порту. Но поскольку зоопарк плат огромен и не всегда они оригинальные, а местами самоделки, то читать сигнатуру самое оно.
Если это нереально, хотя программаторы читают всё что мне нужно, то и заморачиваться не буду. Оставлю опционалом, чтобы любой желающий мог использовать на своё усмотрение.
программаторы читают всё что мне нужно
дак оне ж не по COM читают
программаторы читают всё что мне нужно
дак оне ж не по COM читают
Т.е. идея бред?
Общение идёт по UART интерфейсу на USB-COM или Hardware COM порту.
Если есть общение, то контроллер сам о себе может всё рассказать.
Общение идёт по UART интерфейсу на USB-COM или Hardware COM порту.
Если есть общение, то контроллер сам о себе может всё рассказать.
Вот за этим я и обратился сюда. Нужна помощь знающих.
программаторы читают всё что мне нужно
дак оне ж не по COM читают
Дак avrdude через COM читает. Только, мне кажется, что для этого он сначала должен reset дернуть, а потом у бутлодыря спрашивать сигнатуру.
Т.е. прямо вот так, тупо засадившись на UART точно не прочесть, если нет поддержки со стороны ПО, которое сидит в МК станции. При возможности модифицировать его - такую фичу можно добавить, а если нет... ну, может производители оставили бэкдор какой.
Общение идёт по UART интерфейсу на USB-COM или Hardware COM порту.
Если есть общение, то контроллер сам о себе может всё рассказать.
Вот за этим я и обратился сюда. Нужна помощь знающих.
Serial.println("я Ардуина"); или Serial.println("я СТМ");
программаторы читают всё что мне нужно
дак оне ж не по COM читают
Дак avrdude через COM читает. Только, мне кажется, что для этого он сначала должен reset дернуть, а потом у бутлодыря спрашивать сигнатуру.
Т.е. прямо вот так, тупо засадившись на UART точно не прочесть, если нет поддержки со стороны ПО, которое сидит в МК станции. При возможности модифицировать его - такую фичу можно добавить, а если нет... ну, может производители оставили бэкдор какой.
В исполняемый код для МК я могу добавить всё что угодно. На данный момент всё так и реализовано. Но я же не для себя делаю программу и исходники прошивки для МК шарить не собираюсь. да бессмысленно это. Как уже писал, зоопарк МК огромен.
Общение идёт по UART интерфейсу на USB-COM или Hardware COM порту.
Если есть общение, то контроллер сам о себе может всё рассказать.
Вот за этим я и обратился сюда. Нужна помощь знающих.
Serial.println("я Ардуина"); или Serial.println("я СТМ");
Всё сейчас именно так и делается. В структуре Init пакета от МК заложены все данные о МК. Можно их использовать, а можно слать нули. Но я хочу не нагружать пользователя лишними вычислениями всякой всячины. Как-то так.
Всё сейчас именно так и делается. В структуре Init пакета от МК заложены все данные о МК. Можно их использовать, а можно слать нули. Но я хочу не нагружать пользователя лишними вычислениями всякой всячины. Как-то так.
Тогда добавьте туда "поле" "Платформа". И останется только на старте записать в него сигнатуру. Читать ее с МК умеете же?
Но я хочу не нагружать пользователя лишними вычислениями всякой всячины.
Какого пользователя? Из поста #4 следует, что пользователем будет твоя же программа. Программа и микроконтроллер не смогут друг с другом договориться?
Всё сейчас именно так и делается. В структуре Init пакета от МК заложены все данные о МК. Можно их использовать, а можно слать нули. Но я хочу не нагружать пользователя лишними вычислениями всякой всячины. Как-то так.
Тогда добавьте туда "поле" "Платформа". И останется только на старте записать в него сигнатуру. Читать ее с МК умеете же?
Да это не проблема. В теме SysInfo этого форума есть код который выводит это. Уже использую. Хотел вообще избавиться от лишнего кода со стороны МК.
Но я хочу не нагружать пользователя лишними вычислениями всякой всячины.
Какого пользователя? Из поста #4 следует, что пользователем будет твоя же программа. Программа и микроконтроллер не смогут друг с другом договориться?
Под "пользователь" имелось ввиду человек использующий моё ПО для управления своей ИК станцией.
Обмен данными уже настроен. Т.е. "сетевой" интерфейс работает исправно. Хотел тупо выкинуть ненужное и брать инфу из самого МК.
Да это не проблема. В теме SysInfo этого форума есть код который выводит это. Уже использую. Хотел вообще избавиться от лишнего кода со стороны МК.
Иного варианта лично я не вижу.
PS. Наврядли это можно назвать лишним кодом. Это необходимый функционал.
На работоспособность это не влияет. Просто некая дополнительная информативность, которая иной раз слишком много строк кода занимает в теле программы для МК.