Считывание регистров по SPI

LOSTLY

✩✩✩✩✩✩✩
3 Май 2024
7
1
Добрый день.

Предисловие:
Есть модуль приемника RX5808 на базе чипа RTC6715. Этот чип управляется непонятной микросхемой, но очевидно, что по SPI. Даташит на RTC6715 и RX5808 в открытом доступе есть.
Микросхема при помощи двух клавиш переключает частотные каналы приемника на основе известной матрицы значений [6х8] и выводит номер канала на индикаторы.
RTC6715 обменивается пакетами данных по 25 бит (4 - адрес, 1 - чтение/запись, 20 - данные). Инфа о частоте записывается в два регистра и вычисляется по формуле (см. даташит).

Задача минимум:
При помощи Ардуино Нано считывать значение двух регистров, в которых хранится текущая частота приемника

Задача максимум:
По полученным значениям, определять частоту. Обновлять данные по нажатии кнопок "управляющей микросхемы". Выводить на 0.91 I2C OLED экран на базе МК SSD1306.

Как опорник есть GitHub: https://github.com/Dvogonen/cyclop_plus_plus/blob/master/src/cyclop_plus_plus/cyclop_plus_plus.ino
 

Вложения

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,412
978
58
Марий-Эл
Ардуина вряд ли сможет считывать регистры у этой микросхемы. Я таких решений не нашёл.
Только ногодрыг или STM, у которой SPI может работать с 4-16 бит данными.
 

LOSTLY

✩✩✩✩✩✩✩
3 Май 2024
7
1
@Эдуард Анисимов, типа записать может а считать нет? Я в коде плохо шарю, но вроде 4 байтами записывают.

И вот даже есть почти готовый код, но я его адаптировать не могу, много лишнего
 

Вложения

LOSTLY

✩✩✩✩✩✩✩
3 Май 2024
7
1
@Эдуард Анисимов,а если просто перехватывать данные от непонятного контроллера? Логическим анализатором потыкал, каждому каналу соответствующий сигнал идёт. По сути нужно какую-то таблицу соответствия составить. Или опять же, такое не получится читать, припаявшись в общую шину со слэйвом?
 

LOSTLY

✩✩✩✩✩✩✩
3 Май 2024
7
1
@Эдуард Анисимов, короче получилось просто в качестве второго слэйва влезть и получать те же данные, не влезая в регистр платы
 
  • Лойс +1
Реакции: Oleg_G