Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Просветите в вопросе работы с SPI-интерфейсом.

Сб фев 13, 2021 01:13:33

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

Есть диагностический адаптер, в котором я хочу сменить фирмваре на свой. Фирмваре в нем обновляется через блютуз (БТ). Причем фирмваре кодирована, и для любого другого такого-же адаптера кодирована своим ключем, о котором знает только сам адаптер. То-есть поменять фирмваре через БТ не получится. Но адаптер собран на двух микроконтроллерах ARM. Один из них стандартный, другой крипточип. Основной, стандартный микроконтроллер принимает с устройства БТ кодированный фирмваре, и передает его в крипточип, частями. А крипточип декодирует принятую часть и передает обратно в основной микроконтроллер. Связь между микроконтроллерами построена на интерфейсе SPI. Я хочу подменить ответы крипточипа, на свои, тем самым я попробую сменить фирмваре основного микроконтроллера на свой фирмваре.

Такого я никогда не делал, поэтому даже не представляю, какие инструменты, софт и т.д. мне нужны. К тому-же, то-ли я не умею искать, то-ли неверные вопросы задаю поисковым системам.

Прошу любых советов, ссылок, по существу возникшей задачи. Как подменить ответы ведомого устройства в интерфейсе SPI?

PS
забыл добавить, что микроконтроллеры закрыты на Level2, и у меня нет бутлоадера, чтобы перепаять микроконтроллер запрограммировать его через обычный программатор. Так как без бутлоадера, этот микроконтроллер не запустится.

Re: Просветите в вопросе работы с SPI-интерфейсом.

Сб фев 13, 2021 06:53:04

Купите новый микроконтролер и зашейте свою прошивку. Это будет самое простое решение. А вопросы вы действительно не умеете задавать, так как даже название микроконтроллера нам не выдали.

Re: Просветите в вопросе работы с SPI-интерфейсом.

Сб фев 13, 2021 12:08:21

Микроконтроллер, основной GD32F405. Марка крипточипа, неизвестна, затерто название. Я предположил что это тоже ARM, по коссвенным признакам. Только их названия не имеют отношения к вопросу. Я понимаю, задали бы вопрос по параметрам SPI-протокола. Весь фуллфлеш основного микроконтроллера разбит на две части, бутлоадер+фирмваре. Не могу я зашить отдельный фирмварь в микроконтроллер, он работать не будет, нужен еще и бутлоадер, которого у меня нет. Вся моя задача как раз и направлена, на то, чтобы достать бутлоадер (в основном). А уже потом можно будет и новый микроконтроллер впаивать.

Re: Просветите в вопросе работы с SPI-интерфейсом.

Сб фев 13, 2021 18:26:55

тем самым я попробую сменить фирмваре основного микроконтроллера на свой фирмваре.
Из этой фразы вытекает, что у вас есть некая своя прошивка, которую требуется запустить.

Не могу я зашить отдельный фирмварь в микроконтроллер, он работать не будет, нужен еще и бутлоадер, которого у меня нет..
Кто мешает сделать, чтобы своя прошивка без бутлоадера стартовала? Или свой бутлоадер написать?

Вся моя задача как раз и направлена, на то, чтобы достать бутлоадер (в основном). А уже потом можно будет и новый микроконтроллер впаивать.
А мне видится, что кое-кто кулхацкером решил стать не обладая для этого необходимыми знаниями.

Re: Просветите в вопросе работы с SPI-интерфейсом.

Сб фев 13, 2021 18:42:37

Из этой фразы вытекает, что у вас есть некая своя прошивка, которую требуется запустить.

Да, я собрал из частей полный, стоковый, расшифрованный апдейт-фирмварь. Поправил в нем нужные байты, с помощью ИДА. Переподписал фирмварь.

Кто мешает сделать, чтобы своя прошивка без бутлоадера стартовала? Или свой бутлоадер написать?

Отсутствие бутлоадера и мешает. Крипточип не даст основному процу правильно работать (он, крипточип, просто работать не будет), пока бутлоадер основного проца, не передаст в крипточип нужные команды и данные.

А мне видится, что кое-кто кулхацкером решил стать не обладая для этого необходимыми знаниями.

Для кулхацкерства с этим адаптером у меня знаний даже больше чем надо. У меня не хватает знаний и информации по подмене ответов от ведомого к ведущему в шине SPI.

PS
Уже второе сообщение, и все не по теме. Какое-то неправильное у нас общение.

Re: Просветите в вопросе работы с SPI-интерфейсом.

Сб фев 13, 2021 18:54:45

а разве нельзя из основной прошивки удалить общение с крипточипом?
если прошивку сам сделал, то общение в крипто можно исключить из прошивки.
а свою прошивку заливать обычным программатором, без бутлодера.

Re: Просветите в вопросе работы с SPI-интерфейсом.

Сб фев 13, 2021 19:01:23

а разве нельзя из основной прошивки удалить общение с крипточипом?

Крипточип нужен не только для декриптовки фирмваря. Там вся крипто-математика на нем, которая потом используется при работе фирмваря. Я не собираюсь менять кардинально логику работы адаптера. Мне нужно добыть стоковый бутлоадер, и отключить (заменить) в нем, некоторые проверки, связанные с ИД основного микроконтроллера, и блокировкой адаптера. Чтобы потом спокойно заменить микроконтроллер. Но это опять-же к теме отношения не имеет.

Re: Просветите в вопросе работы с SPI-интерфейсом.

Сб фев 13, 2021 21:58:47

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

Такого я никогда не делал, поэтому даже не представляю, какие инструменты, софт и т.д. мне нужны. К тому-же, то-ли я не умею искать, то-ли неверные вопросы задаю поисковым системам.

Вот так прочтешь тему и почувствуешь себя полным кретином... :)))
Чтобы подменить ответы крипточипа по SPI нужно отключить выход SPI у крипточипа и присоединиться своим чипом вместо него по всем четырем линиям SPI. Три необорванные линии SPI являются входами у слейва (крипточипа), поэтому крипточип по ним влиять на процесс не сможет.
У меня сложилось впечатление из вашего путаного рассказа, что вы полагаете SPI каким то стеком протоколов... :))) А это просто физический уровень обмена. Причем разрядность обмена совсем не обязательно байтная.

Re: Просветите в вопросе работы с SPI-интерфейсом.

Сб фев 13, 2021 22:15:13

Чтобы подменить ответы крипточипа по SPI нужно отключить выход SPI у крипточипа и присоединиться своим чипом вместо него по всем четырем линиям SPI. Три необорванные линии SPI являются входами у слейва (крипточипа), поэтому крипточип по ним влиять на процесс не сможет.

С этим все ясно. Но мне не нужно подменять все посылки, а нужно "вклиниться", только в процесс дешифровки. И потом вовремя отключиться. Хотелось бы еще сделать это через компьютер, чтобы не писать прошивку другого контроллера. Поэтому и спросил, может кто-то уже изучал этот вопрос, знает нужную информацию, программы, какой эмулятор "комп-SPI" лучше для этого подойдет?

Re: Просветите в вопросе работы с SPI-интерфейсом.

Сб фев 13, 2021 22:23:42

какой эмулятор "комп-SPI" лучше для этого подойдет?

Первый раз слышу про существование подобного устройства. Но вы можете взять любую Малинку и на ней принимать/отправлять в SPI все что вам заблагорассудится. Там нечего "эмулировать". Однако я сомневаюсь, что обычная ОС поспеет за реалтаймом обмена в SPI.

Добавлено after 3 minutes 41 second:
нужно "вклиниться"

А вот с этим проблема. Тогда нужно городить аппаратный коммутатор (обычный мультиплексор), ибо крипточип ничего о подменах не знает и будет законно держать свой передатчик на шине. Иного и быть не может.
Последний раз редактировалось КРАМ Сб фев 13, 2021 22:25:23, всего редактировалось 1 раз.

Re: Просветите в вопросе работы с SPI-интерфейсом.

Сб фев 13, 2021 22:26:51

Но вы можете взять любую Малинку и на ней отправлять в SPI все что вам заблагорассудится. Там нечего "эмулировать". Однако я сомневаюсь, что обычная ОС поспеет за реалтаймом обмена в SPI.

1. Что за термин "Малинка"?
2. Ну почему-же, не поспеет? "Saleae Logic". Вполне себе успевает, читать с SPI-интерфейса. Но это только анализатор, передавать он не умеет.

Добавлено after 2 minutes 16 seconds:
А вот с этим проблема. Тогда нужно городить аппаратный коммутатор (обычный мультиплексор), ибо крипточип ничего о подменах не знает и будет законно держать свой передатчик на шине.

Именно поэтому и завел эту тему, потому как сам без подсказок, не потяну в знаниях.

Re: Просветите в вопросе работы с SPI-интерфейсом.

Сб фев 13, 2021 22:35:25

"Saleae Logic"

И причем тут логанализатор, которому фиолетово что там передается - его задача только лог вести. У вас же СОВЕРШЕННО ИНАЯ задача. И под нее нужно кромсать схему и управлять захватом шины. То есть написать СВОЙ код. Для СВОЕГО устройства.

Добавлено after 7 minutes 18 seconds:
не потяну в знаниях.

А тут нечего "тянуть". Все примитивно просто. Малинка - это Распберри Пи. Одноплатный микрокомпьютер с Линуксом. Отличается от большого ПК тем, что имеет интерфейсы микроконтроллерного типа (SPI в том числе), ибо представляет из себя SoC - систему на кристалле.
Врезаться в целевой SPI я уже сказал как. В линию ОТ крипточипа вставляется мультиплексор, который управляется от нашего сниффера (Малинки, например) по обычному GPIO (одной ноге общего назначения). Соответственно, когда сниффер захочет вставить свои пару слов, он по GPIO переведет стрелку мультиплексора на себя и подменит ответ крипточипа.
Писать такое на Линуксе будет проблемой. Он не работает в режиме реального времени.

Re: Просветите в вопросе работы с SPI-интерфейсом.

Сб фев 13, 2021 22:36:26

С анализатором может и погорячился. Я имю ввиду может кто знаком с готовыми программно-аппаратными переходниками?
Тут почитал про FT2232H, там вроде как заявлено, что может использоваться как "USB-SPI". Но я не знаю пока, пойдет эта микросхема, для моей задачи?

Re: Просветите в вопросе работы с SPI-интерфейсом.

Сб фев 13, 2021 22:45:59

Тут почитал про FT2232H

Вы не понимаете основной проблемы. МУЛЬТИПЛЕКСОР. Шина SPI имеет фиксированные направления передачи. Это ЧЕТЫРЕ провода. 1.От мастера к слейву. 2.От слейва к мастеру. 3.Клоки мастера. 4.Чип селект (загрузка) мастера к слейву. Вот номер 2 и подлежит переделке с мультиплексором.
Мосты общего назначения ничего этого не умеют - они не могут управлять захватом сигнала передачи.
ЗЫ. С мостом еще одна засада. Дело в том, что процесс обмена по SPI носит кольцевой характер. То есть передача и прием происходят ОДНОВРЕМЕННО. Это значит, что к моменту, когда мастер начнет слать свой байт, в регистре ответа слейва уже должен быть байт ответа. Ибо тактирование обоих направлений едино.

Re: Просветите в вопросе работы с SPI-интерфейсом.

Сб фев 13, 2021 22:57:16

Все равно не понимаю. Взять вывод свободного порта из FT2232H и перевести его в режим GPIO. По команде с компа менять состояние этого вывода, а он уже пусть переключает мультиплексор.
Или вы имеете ввиду, что мне не будет хватать времени, на такой длинный путь "адаптер-FT2232H-ЮСБпорт-програма-ЮСБпорт-FT2232H-адаптер". Поэтому и предлагаете всю обработку проводить сразу в "Малинке"?
Просто я не владею Линуксом, на Винде (например С) еще справлюсь.

Re: Просветите в вопросе работы с SPI-интерфейсом.

Сб фев 13, 2021 23:06:57

Все равно не понимаю. Взять вывод свободного порта из FT2232H и перевести его в режим GPIO. По команде с компа менять состояние этого вывода, а он уже пусть переключает мультиплексор.

В общем так, только насколько мне известно, оный чип FTDI не может быть слейвом в SPI.

Добавлено after 2 minutes 52 seconds:
Или вы имеете ввиду, что мне не будет хватать времени, на такой длинный путь

Тут дело даже не в длинном пути, а в самом принципе работы ОС общего назначения. Вы не можете из винды управлять процессами реального времени. Все процессы реального времени в самом компе относятся к ведению ядра ОС. API не позволяет юзеру вмешиваться в этот процесс. Иначе обрушится сама ОС.
Такшта вся ваша идея лежит через ОТДЕЛЬНЫЙ МК. А вот его вы можете уже связать с ПК. НЕ в режиме реального времени.

Re: Просветите в вопросе работы с SPI-интерфейсом.

Сб фев 13, 2021 23:15:44

В общем так, только насколько мне известно, оный чип FTDI не может быть слейвом в SPI.

Видимо это я проглядел, пойду покурю даташит внимательно.
А может эта "Малинка", работать под Виндой, например в Python-е?

Тут дело даже не в длинном пути, а в самом принципе работы ОС общего назначения. Вы не можете из винды управлять процессами реального времени. Все процессы реального времени в самом компе относятся к ведению ядра ОС. API не позволяет юзеру вмешиваться в этот процесс. Иначе обрушится сама ОС.
Такшта вся ваша идея лежит через ОТДЕЛЬНЫЙ МК. А вот его вы можете уже связать с ПК. НЕ в режиме реального времени.

Ну тут можно тогда Вин98 использовать. :)
Что-то страшновато начинать изучение "Малинки", сразу на своем рабочем адаптере. Да еще этот Линукс, удручает все. Может еще знаете что-то подобное, конкрено для SPI?
Мне сейчас любая информация интересна. Спасибо.

Re: Просветите в вопросе работы с SPI-интерфейсом.

Сб фев 13, 2021 23:22:36

Ну тут можно тогда Вин98 использовать. :)

Я, говоря о малинке, имел ввиду,что ВОЗМОЖНО драйвер SPI в ее ОС имеет некоторые возможности работы в реальном времени, хотя я очень сомневаюсь, что эта возможность есть в слейве.
И нет никакой особой разницы между Виндой любых поколений и Линуксом в этом отношении.
Лишь наличие специального драйвера для работы с АППАРАТНЫМ ВНЕШНИМ интерфейсом может поддержать в ОС общего назначения реалтайм. Но требуемое вам устройство не относится к универсальным и потому может существовать только маргинально, как сделанное под определенную задачу (включая драйвер, естественно).

Re: Просветите в вопросе работы с SPI-интерфейсом.

Сб фев 13, 2021 23:27:34

Да это я пошутил. К этому "динозавру" (Вин98), еще ни один драйвер не подойдет. Просто помню когда-то собирал программаторы (из нескольких резисторов и диодов) от LPT порта, так вот работали они нормально только в однозадачной среде, видимо драйвер LPT порта там работает именно в реалтайме.

Re: Просветите в вопросе работы с SPI-интерфейсом.

Сб фев 13, 2021 23:34:07

видимо драйвер LPT порта там работает именно в реалтайме.

Программатор является МАСТЕРОМ и поэтому САМ задает клоки обмена. И поэтому может работать на сколь угодно низкой скорости. Стандартный тик ОС общего назначения - 1 мс. Для работы с SPI с учетом захвата шины (обычно на скорости 10 МГц и выше) это нехватка ЧЕТЫРЕХ десятичных порядков по скорости.
Ответить