Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/93: Рейтинг темы: голосов - 93, средняя оценка - 4.94
Vtodystov_Mymsk
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 86
1

STM32F4Discovery + акселерометр

26.12.2012, 14:22. Просмотров 16727. Ответов 14
Метки нет (Все метки)

Доброго времени суток господа.
Решил запустить акселерометр на указанной в заголовке плате. Но вот проблема необъяснимая возникла.
Динные пересылаю и принимаю по SPI_1. Начинаю с приёма содержимого регистра WHO_AM_I (0Fh). По мануалу ответ должен быть 0х3B. Так оно и есть.
Затем считываю значение регистров CR1, 2 и 3. Там тоже значения соответствуют указанным.
И вот начинаю записывать свои значения в три этих регистра, начинается нечто странное.
Порядок следующий:
- отсылаю комбинацию в регистр CR1
- считываю значение этого регистра (проверяю как записалось)
- в ответ приходит 0xFF (почему не 0х00 связанно с тем, что лапа в самом акселерометре подвешена к 1)
И сколько бы я дальше не считывал приходят одни 0xFF.
Пробую после этого считать CR2 и CR3, те же значения приходят.
Пробую их записать.
Потом сбрасываю контроллер кнопкой, считываю регистр CR1 выдаёт значение которое я записал.
Считываю остальные регистры, их значения не изменились.
И так повторяется для всех трёх регистров. После записи какого-либо из них, в ответ приходят единицы, а при сбросе МК значения оказываются записанными.
Другими словами приходится три раза сбрасывать, чтобы считать записалось или нет.
Может кто-то работал с этим чудо-акселерометром LIS302DL...?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2012, 14:22
Ответы с готовыми решениями:

STM32F4DISCOVERY акселерометр
Здоров народ! у меня STM32F4DISCOVERY и вот программка типа #include...

STM32F4 DISCOVERY HAL АКСЕЛЕРОМЕТР
Не получается получить Who_AM_I с установленного на плате акселерометра void...

Работа С Hal_Spi (не считывается акселерометр)
Доброго времени суток. Изучаб STM32. В наличии STM32F4Dyscovery с STM32F407VG...

Проблемы с SPI2 на STM32F302C6T6 + акселерометр [Решено]
Всем доброго времени суток, уважаемые форумчане! Всё время старался...

STM32F4DISCOVERY
Здравствуйте ! Подскажите пожалуйста для чего нужны модули на странице...

14
HosH
0 / 0 / 0
Регистрация: 15.06.2017
26.12.2012, 15:26 2
Я использовал готовые stm32f4_discovery_lis302dl.c и stm32f4_discovery_lis302dl.h всё чудесно заработало сразу... покатал шарик по экрану ... к сожалению кода не осталось.
0
mys
0 / 0 / 0
Регистрация: 08.07.2005
Сообщений: 180
26.12.2012, 19:06 3
Готовый код можно взять из демки для стм32ф4дискавери. Также в сети полно кода для данного акселерометра. Не следует забывать что там есть определённые условия работы с регистрами(подробнее описанно в дш).
0
Vtodystov_Mymsk
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 86
27.12.2012, 12:02 4
Скорее всего причина в скорости SPI. Поменял с 1 Мб на 8 Мб и картина изменилась.
По документу частота 10 МГц, а минимальная длительность 100 нс = те же 10 МГц.
Теперь достаточно прочитать какой-нибудь из регистров сразу после записи какого-либо.
Менять не охота, кучу периферии под 16 МГц тактовой настроил.
0
Vtodystov_Mymsk
0 / 0 / 0
Регистрация: 14.12.2012
Сообщений: 86
27.12.2012, 13:33 5
С обычными режимами, фильтрами разобрался. Теперь появились неясности с двойным кликом...
А именно настройки длительностей в трёх основных регистрах.
0
drokom
0 / 0 / 0
Регистрация: 20.04.2013
Сообщений: 11
06.08.2013, 18:29 6
запустил я свой датчик, а он выдает какие-то рандомные числа. залил родную демо программу - то же что попало выдает. из этого сделал вывод - накрылся мой датчик. у кого-то такое уже было?
0
Mosh
0 / 0 / 0
Регистрация: 28.03.2015
Сообщений: 3
23.09.2013, 14:26 7
Купил две платы STM32F4Dyscovery (в разных нигазинах). Заливаю примеры - вроде все работает, даже ввод-вывод с микрофона, но вот акселерометр на обоих платах непонятно одинаково работает. Вроде бы диоды на плате показывают правильное направление куда я ее сдвинул, но при управлении курсором скажем в Пейнте, курсор все время бежит в одну сторону и иногда в другие. А при попытке нарисовать кружочек - рисует треугольники. Это только у меня так? Может быть что то мешает еще?
0
Mosh
0 / 0 / 0
Регистрация: 28.03.2015
Сообщений: 3
23.09.2013, 14:51 8
Ура Разобрался!
Оказывается не двигать по столу нужно, как мышь (я то читал, что пример эмулирует мышь), а наклонять В ВОЗДУХЕ в разные стороны!!! 3Д же акселерометр!
А кружочек и не может рисоваться данным софтом, только прямые линии под 90 и 45 градусов.
0
OtixPM
0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 5,483
23.09.2013, 14:53 9
Цитата Сообщение от mosh
но вот акселерометр на обоих платах непонятно одинаково работает. Вроде бы диоды на плате показывают правильное направление куда я ее сдвинул, но при управлении курсором скажем в Пейнте, курсор все время бежит в одну сторону и иногда в другие. А при попытке нарисовать кружочек - рисует треугольники.
Посмотрите в коде: кАк организовано смещение курсора на экране. Это не более чем демо, а нарисовать ровный кружочек в Paintе и нормальной-то мышью трудно.
Выведите значения из акселерометра на дисплей или в UART - увидите, что всё там правильно работает.
0
Hoomu
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 14
01.01.2014, 14:00 10
Цитата Сообщение от drokom
запустил я свой датчик, а он выдает какие-то рандомные числа. залил родную демо программу - то же что попало выдает. из этого сделал вывод - накрылся мой датчик. у кого-то такое уже было?
Практически аналогичная ситуация. Только не рандомные числа выдает, а постоянные, будто его заклинило в одном положении. И регистр Who Am I читается как 0x3F вместо 0x3B. Подскажите, может можно как-то его оживить?
0
Kross
0 / 0 / 0
Регистрация: 08.11.2010
Сообщений: 6
11.01.2014, 03:14 11
Цитата Сообщение от Hoomu
И регистр Who Am I читается как 0x3F вместо 0x3B. Подскажите, может можно как-то его оживить?
Сам с этим столкнулся. Выяснилось, что STM32F4-DISCOVERY существует в нескольких модификациях. У меня был usir manual, где указан датчик LIS302DL. В мануале http://www.st.com/st-web-ui/static/acti ... 037955.pdf указано, что бывает также с датчиком LIS3DSH (http://www.st.com/st-web-ui/static/acti ... 040962.pdf), который на WHO_AM_I отвечает 0x3f.
0
Usir1114
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 9
20.01.2014, 02:16 12
Вопрос такой: регистры ускорения 8-битовые. Значит как перевести значения регистров в приятный и понятный глазу вид. Насколько я знаю, там чувствительность - 0,018g на 1 бит.
0
OtixPM
0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 5,483
20.01.2014, 02:34 13
Цитата Сообщение от Usir1114
Вопрос такой: регистры ускорения 8-битовые. Значит как перевести значения регистров в приятный и понятный глазу вид. Насколько я знаю, там чувствительность - 0,018g на 1 бит.
Ускорения там хранятся в парах восьмибитных регистров, т.е. разрядность самих значений - до 13-ти бит.

А чувствительность регулируется, так что нельзя говорить о фиксированной чувствительности, можно выбрать другую.
0
pyt
0 / 0 / 0
Регистрация: 10.03.2016
Сообщений: 5
17.09.2014, 13:52 14
Народ доброго вам времени! . Помогите кто может почему я даже немогу прочесть регистр выдает просто нули?
0
OtixPM
0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 5,483
18.09.2014, 16:43 15
Цитата Сообщение от pyt
Народ доброго вам времени! . Помогите кто может почему я даже немогу прочесть регистр выдает просто нули?
Ответил в отдельной теме.
0
18.09.2014, 16:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.09.2014, 16:43

STM32F4Discovery
Доброго времени суток... Возникло желание запустить внешний ЦАП (CS43L22) на...

[STM32F4Discovery] Таймер
Здравствуйте, господа. Запускаю на STM32F4Dyscovery следующую программу:...

Кварц на stm32f4discovery
Здравствуйте. Подскажите пожалуйста какой кварц (модель) стоит на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru