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

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

Сб фев 13, 2021 23:38:12

А чего-то не попадаются ссылки, с конкретными рекомендациями, чтобы сделать "Raspberry Pi" ведомым. Похоже в нем тоже (как и FT2232H) SPI реализован для ведущего.

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

Сб фев 13, 2021 23:41:43

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

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

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

Я не понимаю этот термин "диаграмма обмена", перезадайте вопрос попроще?
В принципе я на 8-ми канальном анализаторе с макс. частотой в 24МГц, задействовал 6 каналов (макс. частота упала примерно до 6 МГц), но все равно анализатор отработал четко, ни в одном байте не ошибся. Я не думаю, что там частота SCK, уж очень высокая. Но могу завтра, на работе еще раз замерить частоту SCK. Просто сниферил уже давно, и сейчас не помню.

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

Вс фев 14, 2021 00:02:31

Я не понимаю этот термин

Все очень просто. Нужна частота клоков SPI и время между байтами.
Вообще то это смотрят осциллографом, чтобы не было чудесатостей связанных с непониманием тактирования логанализатора в режиме сниффера SPI.
ЗЫ. Немного офф. Вообще то коллеги в самом начале темы были правы. Это СХЕМОТЕХНИЧЕСКАЯ задача. Не для программиста, а для эмбеддера. Хотите ее реализовать - возьмите девборду на каком нибудь STM32F7xx и попробуйте написать для него просто сниффер SPI с анализом потока. На Си, конечно. Про питоны забудьте. Поймете свои кондиции, тогда приступите к конечной задаче.
Последний раз редактировалось КРАМ Вс фев 14, 2021 00:07:19, всего редактировалось 1 раз.

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

Вс фев 14, 2021 00:06:51

Все очень просто. Нужна частота клоков SPI и время между байтами.

Ясно. Завтра посчитаем, если основной работой сильно не нагрузят. Электроника это хобби.
Завтра, я имел ввиду понедельник, так как уже другие сутки начались.
Вообще то это смотрят осциллографом, чтобы не было чудесатостей связанных с непониманием тактирования логанализатора в режиме сниффера SPI.

Посмотрим осциллографом, если потянет мой автомобильный осциллограф.

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

Вс фев 14, 2021 08:01:45

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

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

PS
Уже второе сообщение, и все не по теме. Какое-то неправильное у нас общение.
Данная тема классический пример решения "X->Y problems". При решени проблемы X (взять чужое) вопрошающий столкнулся с проблемой Y (побороть SPI) и упорно пытается решать её на форуме. Хотя, почти очевидно, что этого для решения проблемы X вовсе не надо. Более того, в процессе обсуждения рождается проблема Z (запрограммировать "малинку"), которая ещё больше отдаляет от изначальной задачи.

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

Вс фев 14, 2021 08:20:53

что этого для решения проблемы X вовсе не надо.

Я бы не был столь категоричен. Хотя очень возможно, что вы правы.
Так буквально пару недель назад я пытался приручить чужое изделие, но совершенно не с целью его украсть. Просто обслуживающий изделие софт требовал при каждом запуске интернет для связи с сервером производителя, хотя сам софт был бесплатен. Столь странная конфигурация была нужна лишь потому, что весь функционал изделия реализован на Циклон 4 и совершенно не защищен. Поэтому производитель привязал пользователя к серверу производителя. При том, что само изделие имеет уникально низкую цену при неплохих ТТХ, смысла его копировать ни у кого не возникнет, поскольку протокол обмена защищен, а софт отсылает к производителю. Ну и шифрование обмена позволяет в новых партиях менять ключи.
НАША проблема состояла в том, что, в отличии от самого изделия, сервисный софт был крайне убог и не позволял работать на значительной части объектов из за отсутствия там интернета.
Такая вот история "воровства"... :wink:

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

Вс фев 14, 2021 12:28:55

Данная тема классический пример решения "X->Y problems". При решени проблемы X (взять чужое) вопрошающий столкнулся с проблемой Y (побороть SPI) и упорно пытается решать её на форуме. Хотя, почти очевидно, что этого для решения проблемы X вовсе не надо.

Вообще-то задача была простая, в смысле не обязательно было рассказывать, про адаптер. Подмена ответов SPI. Просто вы слишком любопытны, я думал вам эти вопросы (и мои ответы) помогут в решении моей задачи. Поэтому и был с вами откровенен, а мог бы соврать про что-нибудь нейтральное. А вам лишь-бы "поговорить". Тем более, что почти все что нужно, у меня есть, от этого адаптера. Осталось достать только бут. А нужен он мне, потому-что я ремонтирую эти адаптеры. И очень часто встает вопрос о замене основного микроконтроллера (когда он сломается, или попытки людей обойти защиту, введут микроконтроллер в блокировку). Отдавать контроллер на распил, за "космические" деньги, не вижу смысла, так как моя задача наверняка решаема, нужно только знаний поднакопить. И мне эти знания потом еще пригодятся.

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

Ср фев 17, 2021 16:25:40

Прошу прощения, закрутился. Частота в линии SCK 1.3333... МГц, со скважностью 50%. Соответственно частоты в линиях MOSI, MISO чуть меньше.

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

Ср фев 17, 2021 17:08:48

SCK 1.3333... МГц

Из чего следует, что один байт имеет длительность примерно 7 мкс. Для ОС общего назначения с работой через штатную API задача непосильная более чем на два порядка.

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

Ср фев 17, 2021 17:38:36

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

А с чего решили то декодирует прошивку именно "крипточип", а не сам основной МК?
Такой алгоритм обновления как Вы описали - глупость несусветная. Ибо, если прошивка на любом сегменте пути передаётся через открытый канал (SPI) в открытом (нешифрованном) виде, то производителю с шифрованием можно было и вообще не заморачиваться - всё равно его по факту НЕТ.
А раз шифрование применили, значит в открытом виде прошивка не должна появляться ни в каком месте, доступном стороннему злоумышленнику.
Не надо считать производителя прошивки дураком.


забыл добавить, что микроконтроллеры закрыты на Level2, и у меня нет бутлоадера, чтобы перепаять микроконтроллер запрограммировать его через обычный программатор. Так как без бутлоадера, этот микроконтроллер не запустится.
Вот-вот - и "микроконтроллеры закрыты" и прочее, а об SPI производитель почему-то не задумался.... ну-ну... :facepalm:
А ведь дешифрование в самом МК (в том же бутлоадере) делается элементарно, даже проще чем запрягать для этого сторонний крипто-чип.

Добавлено after 4 minutes 44 seconds:
А чего-то не попадаются ссылки, с конкретными рекомендациями, чтобы сделать "Raspberry Pi" ведомым. Похоже в нем тоже (как и FT2232H) SPI реализован для ведущего.
Если нужно работать с SPI (да ещё в реальном времени), то малина - не лучший выбор. Лучше взять любую отладку на Cortex-M. Главное - чтоб она была с JTAG/SWD.

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

Ср фев 17, 2021 17:48:51

Ладно, с ОС ясно. Не встречали какие-то готовые инструменты? Чтобы не терять время на изучение непонятно чего?

Добавлено after 4 minutes 23 seconds:
А с чего решили то декодирует прошивку именно "крипточип", а не сам основной МК?
Такой алгоритм обновления как Вы описали - глупость несусветная. Ибо, если прошивка на любом сегменте пути передаётся через открытый канал (SPI) в открытом (нешифрованном) виде, то производителю с шифрованием можно было и вообще не заморачиваться - всё равно его по факту НЕТ.
А раз шифрование применили, значит в открытом виде прошивка не должна появляться ни в каком месте, доступном стороннему злоумышленнику.
Не надо считать производителя прошивки дураком.

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

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

Ср фев 17, 2021 18:00:06

Ладно, с ОС ясно. Не встречали какие-то готовые инструменты?

Ответ на такой вопрос очевиден. Нет. Я уже вам сказал - задача крайне маргинальная. Никто не будет делать для нее инструмент на продажу.

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

Ср фев 17, 2021 18:05:02

Ответ на такой вопрос очевиден. Нет. Я уже вам сказал - задача крайне маргинальная. Никто не будет делать для нее инструмент на продажу.

Ну почему, наверняка не я первый озадачился такой проблемой. Вон я нашел пока (вернее подсказали) полуфабрикат под мою задачу "Bus Pirate". Но его потом еще долго придется до ума доводить. Я конечно продолжаю искать, но что-то у меня с гуглем не лады. Надеюсь, что кто-то видел еще что-то подобное.

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

Ср фев 17, 2021 18:06:05

Ладно, с ОС ясно. Не встречали какие-то готовые инструменты? Чтобы не терять время на изучение непонятно чего?
Адаптер USB-SPI то может и есть для винды, только вам уже всё верно сказали про ограничения ОС. Винда (да и линух) - не реалтаймовые ОС. А значит никакая "подмена" в реальном времени с уровня пользовательского приложения - невозможна. Потому как в этих ОС на уровне пользователя реального времени нету. :cry:
А возможна только с уровня драйвера ядра ОС (чего Вы очевидно не умеете :dont_know: ) Да и документацией на железо ПК надо владеть, настолько же полной, какой владеют написатели дров.
Кроме того - даже в этом случае подменять на уровне байтов не получится, так как USB - пакетный протокол. И пока USB-пакет доползёт до ПК, байт на SPI давно закончится.
Чтобы подменять на ПК, нужен SPI-адаптер на внутренней шине (PCI например), коих наверное нет. И опять-же - только с уровня ядра ОС.
Так что из реального для "поработать немного с SPI" остаётся только или малина или какая-то отладка на ARM.
Я советую 2-е, так как имхо - проще. Вот типа такого: https://aliexpress.ru/item/32840837957.html
или аналогичное. И отладчик к ней. Или взять аналогичную со встроенным отладчиком, типа: https://aliexpress.ru/item/1237747618.html
Правда (САМОЕ ГЛАВНОЕ) - придётся овладеть программированием на довольно приличном уровне. 8)

В линиии MISO полностью открытый фирмварь.
А из чего сделали такой вывод?

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

Ср фев 17, 2021 18:09:52

А из чего сделали такой вывод?

Потому что фирмварь открыт. Потому что я из него сделал свой подменный фирмварь. Ну прочтите тему с начала, тут сообщений-то не очень много.
Последний раз редактировалось Magadan69 Ср фев 17, 2021 18:26:20, всего редактировалось 1 раз.

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

Ср фев 17, 2021 18:14:31

под мою задачу "Bus Pirate".
Под какую задачу? Подмену байт на SPI? Он бесполезен в этом деле. Почему - выше уже объяснили неоднократно. :dont_know:
Если на уровне пакетов - то может ещё поможет (когда значение всего подменяющего пакета известно целиком да начала приёма/передачи по SPI подменяемого пакета).

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

Ср фев 17, 2021 18:28:35

Если на уровне пакетов - то может ещё поможет (когда значение всего подменяющего пакета известно целиком да начала приёма/передачи по SPI подменяемого пакета).

Ну так, ДА, я знаю все пакеты, на которые буду подменять, выдаваемое крипточипом. Единственное, кантрольку только придется пересчитывать "на лету", так как я заранее не знаю, какой порядковый номер будет присвоен пакету.
Последний раз редактировалось Magadan69 Ср фев 17, 2021 18:57:04, всего редактировалось 1 раз.

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

Ср фев 17, 2021 18:38:23

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

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

Ср фев 17, 2021 18:46:17

Пока вы его не залили и не запустили в целевом МК, не проверили - до тех пор нет у вас никакого "фирмваря".

Давайте не будем "воду лить". У меня в руках полноценный стоковый фирмварь, с правильной подписью (я ее пересчитал, все сошлось). И если его открыть в ИДА, то все функции нормально дизассемблируются, и очень похожи на функции из адаптеров младших версий.
Ответить