Здравствуйте!
Не поможете разобраться с SPI на плате SK-DM8148?
У меня такая задача.
Есть плата SK-DM8148 и есть ПЛИС. Между ними нужно организовать обмен по SPI. Плата - master, а ПЛИС - slave.
ПЛИС подсоединена к плате таким образом:
SPI1_SCK - SCK
SPI1_D0 - MISO
SPI1_D1 - MOSI
SPI1_CS - CS
Конфигурационные биты CPOL=1, CPHA=0; во время передачи пакета сигнал выборки CS должен иметь низкий уровень.
Для этого я написал свой драйвер, общающийся с ПЛИС по SPI и модифицировал board_ti8148evm.c (см. ниже).
Но обмен не идёт - на все команды в ответ я получаю одни 0xFF (сама функция spi_sync() возвращает 0).
Файл board_ti8148evm.c я модифицировал таким образом:
Ну а в своём драйвере я отправляю данные по SPI таким образом:
Я так понимаю, нужно где-то указать, что MISO - это SPI1_D0 и т.д.
Но где это задать?
В spi_board_info вижу только .bus_num и .chip_select...
я в 8148 с spi не ковырялся - глянул в файл борды..
если есть возможность, то используйте те пины, которые задействованы для spi1 вместо ads7846 - это контроллер тача и если отсоединить экран, то получите рабочий канал..
и верните в структуре chip_select=0
если есть осциллограф, то проверьте - есть ли какая-нить деятельность в канале при обращение по spi..
Нужно было в omap2_mcspi.c поменять инициализацию регистров (там указываем MISO и MOSI) и в board-ti8148evm.c установить bus_num=2 (там нумерация с 1, а в документации - с 0).