|
Насколько я понимаю (хотя режимов SPI предостаточно - и полярность CLK и фаза выборки) когда SCK в 0 вы выставляете данные, а когда он в 1, вы их считываете. Т.е. по фронту 0-1. Однако при выходе из цикла SCK не возвращается в 0. Это потенциальная ошибка. Если вы используете сигнал выборки SS, то он должен сниматься когда SCK = 0, иначе некоторые SPI-устройства могут это очень некорректно воспринять. Конкретно с АД7714 дела не имел, но лучше проверьте еще раз по даташиту.
Я бы вам порекомендовал все время держать неактивный уровень на SCK в 0, а в цикле выдачи байта делать так: выставили новый бит - пауза - перевели SCK в 1 - пауза - сняли SCK - пауза - переход к новому биту.
Так корректнее. Возможно это и есть причина вашей неудачи при отладке в симуляторе (нет последнего SCK).
E-mail: info@telesys.ru