Админы, если я выбрал неправильный раздел, прошу, переместите куда нужно, я не смог найти верный раздел.
Есть диагностический адаптер, в котором я хочу сменить фирмваре на свой. Фирмваре в нем обновляется через блютуз (БТ). Причем фирмваре кодирована, и для любого другого такого-же адаптера кодирована своим ключем, о котором знает только сам адаптер. То-есть поменять фирмваре через БТ не получится. Но адаптер собран на двух микроконтроллерах ARM. Один из них стандартный, другой крипточип. Основной, стандартный микроконтроллер принимает с устройства БТ кодированный фирмваре, и передает его в крипточип, частями. А крипточип декодирует принятую часть и передает обратно в основной микроконтроллер. Связь между микроконтроллерами построена на интерфейсе SPI. Я хочу подменить ответы крипточипа, на свои, тем самым я попробую сменить фирмваре основного микроконтроллера на свой фирмваре.
Такого я никогда не делал, поэтому даже не представляю, какие инструменты, софт и т.д. мне нужны. К тому-же, то-ли я не умею искать, то-ли неверные вопросы задаю поисковым системам.
Прошу любых советов, ссылок, по существу возникшей задачи. Как подменить ответы ведомого устройства в интерфейсе SPI?
PS забыл добавить, что микроконтроллеры закрыты на Level2, и у меня нет бутлоадера, чтобы перепаять микроконтроллер запрограммировать его через обычный программатор. Так как без бутлоадера, этот микроконтроллер не запустится.
Купите новый микроконтролер и зашейте свою прошивку. Это будет самое простое решение. А вопросы вы действительно не умеете задавать, так как даже название микроконтроллера нам не выдали.
Микроконтроллер, основной GD32F405. Марка крипточипа, неизвестна, затерто название. Я предположил что это тоже ARM, по коссвенным признакам. Только их названия не имеют отношения к вопросу. Я понимаю, задали бы вопрос по параметрам SPI-протокола. Весь фуллфлеш основного микроконтроллера разбит на две части, бутлоадер+фирмваре. Не могу я зашить отдельный фирмварь в микроконтроллер, он работать не будет, нужен еще и бутлоадер, которого у меня нет. Вся моя задача как раз и направлена, на то, чтобы достать бутлоадер (в основном). А уже потом можно будет и новый микроконтроллер впаивать.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Кто мешает сделать, чтобы своя прошивка без бутлоадера стартовала? Или свой бутлоадер написать?
Отсутствие бутлоадера и мешает. Крипточип не даст основному процу правильно работать (он, крипточип, просто работать не будет), пока бутлоадер основного проца, не передаст в крипточип нужные команды и данные.
А мне видится, что кое-кто кулхацкером решил стать не обладая для этого необходимыми знаниями.
Для кулхацкерства с этим адаптером у меня знаний даже больше чем надо. У меня не хватает знаний и информации по подмене ответов от ведомого к ведущему в шине SPI.
PS Уже второе сообщение, и все не по теме. Какое-то неправильное у нас общение.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
а разве нельзя из основной прошивки удалить общение с крипточипом? если прошивку сам сделал, то общение в крипто можно исключить из прошивки. а свою прошивку заливать обычным программатором, без бутлодера.
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
а разве нельзя из основной прошивки удалить общение с крипточипом?
Крипточип нужен не только для декриптовки фирмваря. Там вся крипто-математика на нем, которая потом используется при работе фирмваря. Я не собираюсь менять кардинально логику работы адаптера. Мне нужно добыть стоковый бутлоадер, и отключить (заменить) в нем, некоторые проверки, связанные с ИД основного микроконтроллера, и блокировкой адаптера. Чтобы потом спокойно заменить микроконтроллер. Но это опять-же к теме отношения не имеет.
Связь между микроконтроллерами построена на интерфейсе SPI. Я хочу подменить ответы крипточипа, на свои, тем самым я попробую сменить фирмваре основного микроконтроллера на свой фирмваре.
Такого я никогда не делал, поэтому даже не представляю, какие инструменты, софт и т.д. мне нужны. К тому-же, то-ли я не умею искать, то-ли неверные вопросы задаю поисковым системам.
Вот так прочтешь тему и почувствуешь себя полным кретином... Чтобы подменить ответы крипточипа по SPI нужно отключить выход SPI у крипточипа и присоединиться своим чипом вместо него по всем четырем линиям SPI. Три необорванные линии SPI являются входами у слейва (крипточипа), поэтому крипточип по ним влиять на процесс не сможет. У меня сложилось впечатление из вашего путаного рассказа, что вы полагаете SPI каким то стеком протоколов... А это просто физический уровень обмена. Причем разрядность обмена совсем не обязательно байтная.
Чтобы подменить ответы крипточипа по SPI нужно отключить выход SPI у крипточипа и присоединиться своим чипом вместо него по всем четырем линиям SPI. Три необорванные линии SPI являются входами у слейва (крипточипа), поэтому крипточип по ним влиять на процесс не сможет.
С этим все ясно. Но мне не нужно подменять все посылки, а нужно "вклиниться", только в процесс дешифровки. И потом вовремя отключиться. Хотелось бы еще сделать это через компьютер, чтобы не писать прошивку другого контроллера. Поэтому и спросил, может кто-то уже изучал этот вопрос, знает нужную информацию, программы, какой эмулятор "комп-SPI" лучше для этого подойдет?
какой эмулятор "комп-SPI" лучше для этого подойдет?
Первый раз слышу про существование подобного устройства. Но вы можете взять любую Малинку и на ней принимать/отправлять в SPI все что вам заблагорассудится. Там нечего "эмулировать". Однако я сомневаюсь, что обычная ОС поспеет за реалтаймом обмена в SPI.
А вот с этим проблема. Тогда нужно городить аппаратный коммутатор (обычный мультиплексор), ибо крипточип ничего о подменах не знает и будет законно держать свой передатчик на шине. Иного и быть не может.
Последний раз редактировалось КРАМ Сб фев 13, 2021 22:25:23, всего редактировалось 1 раз.
Но вы можете взять любую Малинку и на ней отправлять в SPI все что вам заблагорассудится. Там нечего "эмулировать". Однако я сомневаюсь, что обычная ОС поспеет за реалтаймом обмена в SPI.
1. Что за термин "Малинка"? 2. Ну почему-же, не поспеет? "Saleae Logic". Вполне себе успевает, читать с SPI-интерфейса. Но это только анализатор, передавать он не умеет.
А вот с этим проблема. Тогда нужно городить аппаратный коммутатор (обычный мультиплексор), ибо крипточип ничего о подменах не знает и будет законно держать свой передатчик на шине.
Именно поэтому и завел эту тему, потому как сам без подсказок, не потяну в знаниях.
И причем тут логанализатор, которому фиолетово что там передается - его задача только лог вести. У вас же СОВЕРШЕННО ИНАЯ задача. И под нее нужно кромсать схему и управлять захватом шины. То есть написать СВОЙ код. Для СВОЕГО устройства.
А тут нечего "тянуть". Все примитивно просто. Малинка - это Распберри Пи. Одноплатный микрокомпьютер с Линуксом. Отличается от большого ПК тем, что имеет интерфейсы микроконтроллерного типа (SPI в том числе), ибо представляет из себя SoC - систему на кристалле. Врезаться в целевой SPI я уже сказал как. В линию ОТ крипточипа вставляется мультиплексор, который управляется от нашего сниффера (Малинки, например) по обычному GPIO (одной ноге общего назначения). Соответственно, когда сниффер захочет вставить свои пару слов, он по GPIO переведет стрелку мультиплексора на себя и подменит ответ крипточипа. Писать такое на Линуксе будет проблемой. Он не работает в режиме реального времени.
С анализатором может и погорячился. Я имю ввиду может кто знаком с готовыми программно-аппаратными переходниками? Тут почитал про FT2232H, там вроде как заявлено, что может использоваться как "USB-SPI". Но я не знаю пока, пойдет эта микросхема, для моей задачи?
Вы не понимаете основной проблемы. МУЛЬТИПЛЕКСОР. Шина SPI имеет фиксированные направления передачи. Это ЧЕТЫРЕ провода. 1.От мастера к слейву. 2.От слейва к мастеру. 3.Клоки мастера. 4.Чип селект (загрузка) мастера к слейву. Вот номер 2 и подлежит переделке с мультиплексором. Мосты общего назначения ничего этого не умеют - они не могут управлять захватом сигнала передачи. ЗЫ. С мостом еще одна засада. Дело в том, что процесс обмена по SPI носит кольцевой характер. То есть передача и прием происходят ОДНОВРЕМЕННО. Это значит, что к моменту, когда мастер начнет слать свой байт, в регистре ответа слейва уже должен быть байт ответа. Ибо тактирование обоих направлений едино.
Все равно не понимаю. Взять вывод свободного порта из FT2232H и перевести его в режим GPIO. По команде с компа менять состояние этого вывода, а он уже пусть переключает мультиплексор. Или вы имеете ввиду, что мне не будет хватать времени, на такой длинный путь "адаптер-FT2232H-ЮСБпорт-програма-ЮСБпорт-FT2232H-адаптер". Поэтому и предлагаете всю обработку проводить сразу в "Малинке"? Просто я не владею Линуксом, на Винде (например С) еще справлюсь.
Все равно не понимаю. Взять вывод свободного порта из FT2232H и перевести его в режим GPIO. По команде с компа менять состояние этого вывода, а он уже пусть переключает мультиплексор.
В общем так, только насколько мне известно, оный чип FTDI не может быть слейвом в SPI.
Или вы имеете ввиду, что мне не будет хватать времени, на такой длинный путь
Тут дело даже не в длинном пути, а в самом принципе работы ОС общего назначения. Вы не можете из винды управлять процессами реального времени. Все процессы реального времени в самом компе относятся к ведению ядра ОС. API не позволяет юзеру вмешиваться в этот процесс. Иначе обрушится сама ОС. Такшта вся ваша идея лежит через ОТДЕЛЬНЫЙ МК. А вот его вы можете уже связать с ПК. НЕ в режиме реального времени.
Тут дело даже не в длинном пути, а в самом принципе работы ОС общего назначения. Вы не можете из винды управлять процессами реального времени. Все процессы реального времени в самом компе относятся к ведению ядра ОС. API не позволяет юзеру вмешиваться в этот процесс. Иначе обрушится сама ОС. Такшта вся ваша идея лежит через ОТДЕЛЬНЫЙ МК. А вот его вы можете уже связать с ПК. НЕ в режиме реального времени.
Ну тут можно тогда Вин98 использовать. Что-то страшновато начинать изучение "Малинки", сразу на своем рабочем адаптере. Да еще этот Линукс, удручает все. Может еще знаете что-то подобное, конкрено для SPI? Мне сейчас любая информация интересна. Спасибо.
Я, говоря о малинке, имел ввиду,что ВОЗМОЖНО драйвер SPI в ее ОС имеет некоторые возможности работы в реальном времени, хотя я очень сомневаюсь, что эта возможность есть в слейве. И нет никакой особой разницы между Виндой любых поколений и Линуксом в этом отношении. Лишь наличие специального драйвера для работы с АППАРАТНЫМ ВНЕШНИМ интерфейсом может поддержать в ОС общего назначения реалтайм. Но требуемое вам устройство не относится к универсальным и потому может существовать только маргинально, как сделанное под определенную задачу (включая драйвер, естественно).
Да это я пошутил. К этому "динозавру" (Вин98), еще ни один драйвер не подойдет. Просто помню когда-то собирал программаторы (из нескольких резисторов и диодов) от LPT порта, так вот работали они нормально только в однозадачной среде, видимо драйвер LPT порта там работает именно в реалтайме.
видимо драйвер LPT порта там работает именно в реалтайме.
Программатор является МАСТЕРОМ и поэтому САМ задает клоки обмена. И поэтому может работать на сколь угодно низкой скорости. Стандартный тик ОС общего назначения - 1 мс. Для работы с SPI с учетом захвата шины (обычно на скорости 10 МГц и выше) это нехватка ЧЕТЫРЕХ десятичных порядков по скорости.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 34
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения