А чего-то не попадаются ссылки, с конкретными рекомендациями, чтобы сделать "Raspberry Pi" ведомым. Похоже в нем тоже (как и FT2232H) SPI реализован для ведущего.
Кстати, а что вы знаете про диаграмму обмена? Там байты могут быть склеены так плотно, что подменить часть из них сможет даже не любой МК, а лишь такой же по производительности как в целевом устройстве. Нужно, насколько я понимаю, не просто подменять байты, в снифферить поток в реальном времени и, анализируя этот поток, принимать решения о подмене...
Я не понимаю этот термин "диаграмма обмена", перезадайте вопрос попроще? В принципе я на 8-ми канальном анализаторе с макс. частотой в 24МГц, задействовал 6 каналов (макс. частота упала примерно до 6 МГц), но все равно анализатор отработал четко, ни в одном байте не ошибся. Я не думаю, что там частота SCK, уж очень высокая. Но могу завтра, на работе еще раз замерить частоту SCK. Просто сниферил уже давно, и сейчас не помню.
Все очень просто. Нужна частота клоков SPI и время между байтами. Вообще то это смотрят осциллографом, чтобы не было чудесатостей связанных с непониманием тактирования логанализатора в режиме сниффера SPI. ЗЫ. Немного офф. Вообще то коллеги в самом начале темы были правы. Это СХЕМОТЕХНИЧЕСКАЯ задача. Не для программиста, а для эмбеддера. Хотите ее реализовать - возьмите девборду на каком нибудь STM32F7xx и попробуйте написать для него просто сниффер SPI с анализом потока. На Си, конечно. Про питоны забудьте. Поймете свои кондиции, тогда приступите к конечной задаче.
Последний раз редактировалось КРАМ Вс фев 14, 2021 00:07:19, всего редактировалось 1 раз.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Все очень просто. Нужна частота клоков SPI и время между байтами.
Ясно. Завтра посчитаем, если основной работой сильно не нагрузят. Электроника это хобби. Завтра, я имел ввиду понедельник, так как уже другие сутки начались.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
PS Уже второе сообщение, и все не по теме. Какое-то неправильное у нас общение.
Данная тема классический пример решения "X->Y problems". При решени проблемы X (взять чужое) вопрошающий столкнулся с проблемой Y (побороть SPI) и упорно пытается решать её на форуме. Хотя, почти очевидно, что этого для решения проблемы X вовсе не надо. Более того, в процессе обсуждения рождается проблема Z (запрограммировать "малинку"), которая ещё больше отдаляет от изначальной задачи.
Я бы не был столь категоричен. Хотя очень возможно, что вы правы. Так буквально пару недель назад я пытался приручить чужое изделие, но совершенно не с целью его украсть. Просто обслуживающий изделие софт требовал при каждом запуске интернет для связи с сервером производителя, хотя сам софт был бесплатен. Столь странная конфигурация была нужна лишь потому, что весь функционал изделия реализован на Циклон 4 и совершенно не защищен. Поэтому производитель привязал пользователя к серверу производителя. При том, что само изделие имеет уникально низкую цену при неплохих ТТХ, смысла его копировать ни у кого не возникнет, поскольку протокол обмена защищен, а софт отсылает к производителю. Ну и шифрование обмена позволяет в новых партиях менять ключи. НАША проблема состояла в том, что, в отличии от самого изделия, сервисный софт был крайне убог и не позволял работать на значительной части объектов из за отсутствия там интернета. Такая вот история "воровства"...
Данная тема классический пример решения "X->Y problems". При решени проблемы X (взять чужое) вопрошающий столкнулся с проблемой Y (побороть SPI) и упорно пытается решать её на форуме. Хотя, почти очевидно, что этого для решения проблемы X вовсе не надо.
Вообще-то задача была простая, в смысле не обязательно было рассказывать, про адаптер. Подмена ответов SPI. Просто вы слишком любопытны, я думал вам эти вопросы (и мои ответы) помогут в решении моей задачи. Поэтому и был с вами откровенен, а мог бы соврать про что-нибудь нейтральное. А вам лишь-бы "поговорить". Тем более, что почти все что нужно, у меня есть, от этого адаптера. Осталось достать только бут. А нужен он мне, потому-что я ремонтирую эти адаптеры. И очень часто встает вопрос о замене основного микроконтроллера (когда он сломается, или попытки людей обойти защиту, введут микроконтроллер в блокировку). Отдавать контроллер на распил, за "космические" деньги, не вижу смысла, так как моя задача наверняка решаема, нужно только знаний поднакопить. И мне эти знания потом еще пригодятся.
Из чего следует, что один байт имеет длительность примерно 7 мкс. Для ОС общего назначения с работой через штатную API задача непосильная более чем на два порядка.
Основной, стандартный микроконтроллер принимает с устройства БТ кодированный фирмваре, и передает его в крипточип, частями. А крипточип декодирует принятую часть и передает обратно в основной микроконтроллер. Связь между микроконтроллерами построена на интерфейсе SPI. Я хочу подменить ответы крипточипа, на свои, тем самым я попробую сменить фирмваре основного микроконтроллера на свой фирмваре.
А с чего решили то декодирует прошивку именно "крипточип", а не сам основной МК? Такой алгоритм обновления как Вы описали - глупость несусветная. Ибо, если прошивка на любом сегменте пути передаётся через открытый канал (SPI) в открытом (нешифрованном) виде, то производителю с шифрованием можно было и вообще не заморачиваться - всё равно его по факту НЕТ. А раз шифрование применили, значит в открытом виде прошивка не должна появляться ни в каком месте, доступном стороннему злоумышленнику. Не надо считать производителя прошивки дураком.
забыл добавить, что микроконтроллеры закрыты на Level2, и у меня нет бутлоадера, чтобы перепаять микроконтроллер запрограммировать его через обычный программатор. Так как без бутлоадера, этот микроконтроллер не запустится.
Вот-вот - и "микроконтроллеры закрыты" и прочее, а об SPI производитель почему-то не задумался.... ну-ну... А ведь дешифрование в самом МК (в том же бутлоадере) делается элементарно, даже проще чем запрягать для этого сторонний крипто-чип.
А чего-то не попадаются ссылки, с конкретными рекомендациями, чтобы сделать "Raspberry Pi" ведомым. Похоже в нем тоже (как и FT2232H) SPI реализован для ведущего.
Если нужно работать с SPI (да ещё в реальном времени), то малина - не лучший выбор. Лучше взять любую отладку на Cortex-M. Главное - чтоб она была с JTAG/SWD.
А с чего решили то декодирует прошивку именно "крипточип", а не сам основной МК? Такой алгоритм обновления как Вы описали - глупость несусветная. Ибо, если прошивка на любом сегменте пути передаётся через открытый канал (SPI) в открытом (нешифрованном) виде, то производителю с шифрованием можно было и вообще не заморачиваться - всё равно его по факту НЕТ. А раз шифрование применили, значит в открытом виде прошивка не должна появляться ни в каком месте, доступном стороннему злоумышленнику. Не надо считать производителя прошивки дураком.
Именно поэтому я и решил спросить совета у вас, потому-что именно так и происходит, как описал я. В линиии MISO полностью открытый фирмварь. Ну недодумал слегка производитель. А я и решил этим воспользоваться. Подозреваю, что следующая версия этого адаптера уже будет избавлена от этого бага. Но пока, можно сделать, через SPI
Ответ на такой вопрос очевиден. Нет. Я уже вам сказал - задача крайне маргинальная. Никто не будет делать для нее инструмент на продажу.
Ну почему, наверняка не я первый озадачился такой проблемой. Вон я нашел пока (вернее подсказали) полуфабрикат под мою задачу "Bus Pirate". Но его потом еще долго придется до ума доводить. Я конечно продолжаю искать, но что-то у меня с гуглем не лады. Надеюсь, что кто-то видел еще что-то подобное.
Ладно, с ОС ясно. Не встречали какие-то готовые инструменты? Чтобы не терять время на изучение непонятно чего?
Адаптер USB-SPI то может и есть для винды, только вам уже всё верно сказали про ограничения ОС. Винда (да и линух) - не реалтаймовые ОС. А значит никакая "подмена" в реальном времени с уровня пользовательского приложения - невозможна. Потому как в этих ОС на уровне пользователя реального времени нету. А возможна только с уровня драйвера ядра ОС (чего Вы очевидно не умеете ) Да и документацией на железо ПК надо владеть, настолько же полной, какой владеют написатели дров. Кроме того - даже в этом случае подменять на уровне байтов не получится, так как USB - пакетный протокол. И пока USB-пакет доползёт до ПК, байт на SPI давно закончится. Чтобы подменять на ПК, нужен SPI-адаптер на внутренней шине (PCI например), коих наверное нет. И опять-же - только с уровня ядра ОС. Так что из реального для "поработать немного с SPI" остаётся только или малина или какая-то отладка на ARM. Я советую 2-е, так как имхо - проще. Вот типа такого: https://aliexpress.ru/item/32840837957.html или аналогичное. И отладчик к ней. Или взять аналогичную со встроенным отладчиком, типа: https://aliexpress.ru/item/1237747618.html Правда (САМОЕ ГЛАВНОЕ) - придётся овладеть программированием на довольно приличном уровне.
Под какую задачу? Подмену байт на SPI? Он бесполезен в этом деле. Почему - выше уже объяснили неоднократно. Если на уровне пакетов - то может ещё поможет (когда значение всего подменяющего пакета известно целиком да начала приёма/передачи по SPI подменяемого пакета).
Если на уровне пакетов - то может ещё поможет (когда значение всего подменяющего пакета известно целиком да начала приёма/передачи по SPI подменяемого пакета).
Ну так, ДА, я знаю все пакеты, на которые буду подменять, выдаваемое крипточипом. Единственное, кантрольку только придется пересчитывать "на лету", так как я заранее не знаю, какой порядковый номер будет присвоен пакету.
Последний раз редактировалось Magadan69 Ср фев 17, 2021 18:57:04, всего редактировалось 1 раз.
Пока вы его не залили и не запустили в целевом МК, не проверили - до тех пор нет у вас никакого "фирмваря".
Давайте не будем "воду лить". У меня в руках полноценный стоковый фирмварь, с правильной подписью (я ее пересчитал, все сошлось). И если его открыть в ИДА, то все функции нормально дизассемблируются, и очень похожи на функции из адаптеров младших версий.
Сейчас этот форум просматривают: maxlab и гости: 18
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения