Шина SPI и 2.5 байта

ustas
Offline
Зарегистрирован: 12.03.2012

Сейчас стоит задачка сделать небольшой реверс-инжиниринг одной железки, состоящей из двух устройств. 

Одно устройство - "голова", второе - "дисплей". Цель реверс-инжиниринга - заменить "дисплей" на свой.

Между "головой" и "дисплеем" имеется кабель с 5 проводниками:

+5В

GND 

SCK

CS

DATA

Проводники заботливо подписаны китайскими разработчиками. 

Очевидно, что тут SPI-шина. 

Подключаю осциллограф и вижу следующую картину:

Канал А - CS, B - SCK, C - DATA

Осциллограммы мою гипотезу про SPI-шину поддерживают.

Но вот состав передаваемого пакета интересный. Два полных байта и один "полубайт" (смотрим на канал B).

Можно ли такое организовать через аппаратный SPI? или придется писать собственную софтовую реализацию?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а инициализация, разрешение дисплея, цветовой режим и другие глупости вас не волнуют?

через аппаратный не получится. точнее я не встречал такой разрядности. даже в cortex M0 где можно можно настроить разрядность SPI (а в М3 почему то нет, сволочи) только от 4 до 16 бит кажется

ustas
Offline
Зарегистрирован: 12.03.2012

"прочие глупости" в данном случае не интересуют :) (конкретно в этом случае) - поскольку их там просто нет. 

"Дисплей" - в данном случае крайне убогий (поэтому и хочется его изменить). Более того, разглядывание осциллограмм наталкивает на мысли, что данные от "головы" идут в сыром виде (тупо передаются данные с определенных датчиков), а "дисплей" - получает эти данные и на их основе что-то там индицирует.

Т.е. моя конкретная задачка с одной стороны - упростилась (достаточно распарсить данные) и чуть усложнилась (придется еще и "математику" придумать).

Спасибо, про аппаратную реализацию так и подумал.. буду программить.