Сёха

Чтение после записи, SPI не принимает байт, STM32F3+L3GD20

6 сообщений в этой теме

Сёха    34

Всем привет! Пробую работать с акселерометром L3GD20, установленным на плате STM32F3 Discovery. Читаю регистр WHO_AM_I (0Fh)...

SPI1_CS_Set(LOW);

SPI1_DR = 0x008F;
while (!(SPI1_SR & (1<<1)));

SPI1_CS_Set(HIGH);

USART1_SendByte(SPI1_DR>>8);

...получаю вразумительный ответ 0xD4. Теперь читаю CTRL_REG1 (20h), ответ 0x07. Записываю в него 0x1F...

SPI1_CS_Set(LOW);

SPI1_DR = 0x0F20;
while (!(SPI1_SR & (1<<1)));

SPI1_CS_Set(HIGH);

И заново читаю (20h), чтобы проверить, но SPI1_DR пуст!!!... не смотря на это анализатор показывает что акселерометр ответил верно...


1.thumb.jpg.a371111b021c2b5f6c17f3cbcd84c6e5.jpg


Считать регистр акселерометра получается только со второго раза... Почему так??? Что я упускаю???

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


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

Может я чего не понял, но вообще spi так и работает. Посылаешь команду, тебе приходит ответ на прошлую, если следующей команды слать не нужно, а ответ нужен то ff послать. Возможны конечно варианты, но в основном так.

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


Ссылка на сообщение
Поделиться на других сайтах
Yurkin2015    297
11 минуту назад, GOR23 сказал:

вообще spi так и работает

У автора SPI обмен двухбайтовый, то есть за один раз посылается байт команды и тут же второй байт для считывания ответа.

3 часа назад, Сёха сказал:

но SPI1_DR пуст!!!

Что значит пуст? Какая-то комбинация нулей-единичек должна быть обязательно :) Или Вы по УСАРТу отправляете принятый байт на комп и на экране пусто?

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


Ссылка на сообщение
Поделиться на других сайтах
Сёха    34
2 часа назад, Вуйко сказал:

А где сам код чтения из регистра данных? Ошибка там где-то может быть.

В топике!

1 час назад, Yurkin2015 сказал:

Что значит пуст? Какая-то комбинация нулей-единичек должна быть обязательно...

Пуст это когда в регистре комбинация из нулей!)))

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


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

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

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

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

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

Загрузка...

  • Сообщения

    • Вот в этом то и беда. Был бы сертификат и не подвергались бы сомнению опыты столь сурьёзного мужа. 
    • Этим вы здесь занимаетесь. А я ничего сверхестественного от вас не требую: вы сделали определенное заявление, я хочу увидеть его объективное обоснование. Мы не бабки на базаре, здесь технический форум, если вы этого не заметили.  А эти свои слова обосновать вы можете?... или эта очередная ваша аксиома (утверждение не требующее доказательств). 
    • ну так  ... слова "вести тему" звучат конечно громко и пугающе , но не  стоит париться... это не всегда значит сидеть не отлипая отвечать на каждый вопрос. Чаще всего достаточно просто начать ,представив одну конструкцию и описав ее, а там дальше народ сам разберется вникнет, мб даж модернизирует. Да и вообще - те кто хейтят ибп делают это по инерции, мало понимаю что и почему "патаму шо кто-та очень умный  сказал что ибп в звуке зло!" это все их аргументы.
      Задача блока питания применительно к нашей сфере какая? выдать требуемые U\I "без примесей" и если это так - то какая лампе разница ибп или тр-р.  
    •   Просто взять блок питания 400-450 W от ПК, 5-тивольтовую обмотку домотать до 6,8v, 12-тивольтовую  взять ДО моста (переменку скоко там кГц и пустить через небольшой повышающий трансформатор: при заявленной мощности из-за частоты габариты этого трансформатора будут мизерными. А после него ВВ мост и фильтр.
    • Но лучше никуда не ходить. У всех нас итак делов по самые "не балуйся"... Донбасс, ЧМ, Сирия, санкциями пугают... а тут дороги в колдоёбинах, районы не газифицированы, сахар подорожал и вообще, лето на дворе а отдыха с удочкой и купанием на горизонте в биноклЮ не наблюдается... в городе столпотворение вавилонское, вечерами все бухие ходят а "трезвиватели" отменили... буржуйский народ валяется а менты их поднимают и на лавочки усаживают. Мол, застудитесь у нас, гражданин хороший, и поедете к себе почки лечить... В ресе литы только в ИБП, остальные smd керамика. А я говорил про теле-видео-аудио... тогда ИБП были редкостью. Нормальные МЦ, ресы и уси до сих пор с обычным БП. В хай фай аудио на медяхе и литах не экономят. Телик не хай фай, ему и ИБП нормалёк. Только у тв больше всего траблов именно с ИБП. У старого Рубина/Фотона проблем с питанием ваще не возникало. В основном развёртка и цветность. Не зря ТС-ы БП у аудиофилов ценятся.
    • Утечка памяти.   Частоты растут, однако, лишний сантиметр между конденсаторами и процессором(или инвертором) - считай что их нет... да и от электролитов уже давно отказались, те что ставят делают это только по инерции. Нынче твердотельники в моде, но они пока только на низкое напряжение.