Перейти к содержанию
    

E22 900M30S не читаются регистры по SPI

Приветствую. Второй день пытаюсь достучаться до данного модуля. Судя по описанию состояния регистров после рестарта, в них должны быть ненулевые значения, которые можно прочитать по SPI. Пытаюсь это сделать, но результат чтения любого регистра 0xAA (Вывод MISO). Почему так? 
Руководство к модулю 
Описание команд

Анализатор показывает наглядно, что модуль отвечает, но как-то не так. Какие могу быть тонкости при инициализации, чтобы нормально его запустить?
В данном случае пытаюсь прочитать регистр 0x0741 
Отправляю 0x1D (команда чтения), затем адрес регистра 0x4107 старшим байтом вперёд и назад, затем последний байт пустой, но результат всегда один, а должно быть число  0x24, судя по описанию состояния регистров после старта. 
image.png.9223fcc3c83b52f8937698109b700c95.png

image.thumb.png.55fb6881a227f77046c45eb4c0e74bb6.png 

Изменено пользователем ДЕЙЛ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для начала отладки хорошо бы эти осциллограмы снять аналоговым осциллографом. 

Второе. Какой масштаб по оси времени? Частота клока?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Частота клоков примерно 400 кГц. 

Изменено пользователем ДЕЙЛ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почему NSS подымается на четверти последнего CLK ?

Есть мощное мощнейшее средство отладки - НОГОДРЫГ !

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 minutes ago, x893 said:

Почему NSS подымается на четверти последнего CLK ?

Есть мощное мощнейшее средство отладки - НОГОДРЫГ !

Синхронизация бита по переднему фронту тактирующего импульса. Байт по SPI отправлен, флаг выставлен, далее уже можно поднимать ногу. Сделал задержку перед подъёмом NSS - результат не поменялся. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос закрыт. Оказалось, что в данном модуле регистр SPI 16битный и вычитывать нужно 2 байта. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 4/26/2023 at 5:08 PM, ДЕЙЛ said:

Вопрос закрыт. Оказалось, что в данном модуле регистр SPI 16битный и вычитывать нужно 2 байта. 

Нет, регистр там 8битный. Было неправильное представление о работе SPI. Результат будет готов сразу после записи последнего байта, после чего можно вычитывать. Т.е. для начала чтения результата нужно протолкнуть ещё один NOP и выполнить чтение выдвинутого результата. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...