roman555 0 20 января, 2017 Опубликовано 20 января, 2017 · Жалоба Благодарю за ответы, думаю на этом тема исчерпана. Кстати, заметил один нюанс: data response перестает приходить, если CS поднимается при сброшенном Busy. Т.е, заканчивается передача данных, приходит response token, я вижу, что Busy падает в "0", а пока я готовлюсь поднять CS, Busy уже успевает перейти в "1" и, спустя некоторое время, CS поднимается в "1". И именно после этого пропадают data response. Насколько критично поднимать CS при сброшенном Busy? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 20 января, 2017 Опубликовано 20 января, 2017 · Жалоба Насколько критично поднимать CS при сброшенном Busy? Резонный вопрос! Карта в этот момент уже ждет токена данных. Возможно, тут есть какой-то глюк с её стороны. Попробуйте сделать так: передача блока - прием Data Response Token - работа с другим CS - выборка карты с ожиданием Busy. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
roman555 0 21 января, 2017 Опубликовано 21 января, 2017 · Жалоба Попробуйте сделать так: передача блока - прием Data Response Token - работа с другим CS - выборка карты с ожиданием Busy. Я так и делаю! Проблема в том, что начиная с третьего блока карта после передачи Response Token держит Busy очень короткое время, поэтому я не успеваю поднять CS. И именно после этого начинаются проблемы. Похоже эта особенность поведения данной карты является непреодолимой и придется всю запись переделать с использованием одиночных блоков. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 21 января, 2017 Опубликовано 21 января, 2017 · Жалоба Проблема в том, что начиная с третьего блока карта после передачи Response Token держит Busy очень короткое время, поэтому я не успеваю поднять CS. Как это возможно??? Неуспевание. Все процессы на шине SPI тактируются мастером (Вашим контроллером). Соответственно - Вы можете в любой момент "остановить время" на шине SPI просто остановив SCLK. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
roman555 0 21 января, 2017 Опубликовано 21 января, 2017 · Жалоба Как это возможно??? Неуспевание. Все процессы на шине SPI тактируются мастером (Вашим контроллером). Соответственно - Вы можете в любой момент "остановить время" на шине SPI просто остановив SCLK. После получения Response Token я посылаю dummy байт и, насколько я помню, сразу после этого карта отпускает Busy. После посылки холостого байта я опускаю CS и посылаю еще один dummy байт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться