Всем привет
Задумал общаться с SPI флешкой посредством USART в синхронном режиме. Контроллер - ведущий, тактирует ведомую флешку. Настроил USART, отправляю микросхеме команду на чтение - она выставляет в ответ данные, что видно на анализаторе. Только вот прочитать я их не могу. Контроллер не реагирует, прерывания по чтению не возникает. Стал разбираться в чем дело. Флешку отключил, замкнул RX на TX. Отправляю байт - и по-прежнему ничего. Прерывания нет, регистры не меняются, ничего не происходит.
После экспериментов с настройками USART выяснилось, что прерывание срабатывает и байтик читается только если отключить постоянный синхросигнал CLK. Если CLK работает только во время отправки данных с контроллера - все прекрасно читается. Если долбит постоянно - контроллер ничего не видит на входе. Хотя данные отправляются. Довольствоваться таким поведением не могу. Мне нужен постоянный CLK, чтобы тактировать флешку не только во время отправки команды, но и после. Чтобы она могла выдать мне данные. Но пока получается, что в таком режиме работы я не смогу их с линии забрать. Мне кажется это странным, синхронный режим так работать не должен. С чем это может быть связано и как исправить? Может кто сталкивался с подобным? Буду признателен, если поделитесь опытом и догадками
Параметры USART: бодрейт 4 млн бит в секунду, CPOL = 0, CPHA = 0, посылка 8 бит, старт/стоп биты отсутствуют