Описание: адресация регистров |
Поиск в теме | Версия для печати |
Механик |
Отправлено: 25 Октября, 2015 - 15:25:10
|
Полковник
Сообщений всего: 76
Дата рег-ции: Апр. 2014
|
Всем привет!
Давно уже приобрёл себе акселерометр LIS3DH, но никак руки не доходили до него....
Сейчас решил взяться и испытать его. Первый вопрос который возник: как подключать к микроконтроллеру?
В документации написано, что есть SPI интерфейс, здорово, в ATmega8 он тоже имеется.
Теперь о тонкостях (прочёл в даташите): передавать данные нужно старшим битом вперёд, считывание производится по переднему фронту тактовых импульсов, полярность тактового сигнала: во время ожидания на SCK-"1". Вроде всё понятно.
В документации также приведён протокол записи/чтения данных, всё очень подробно, с диаграммами:
0-бит: указываем что ходим делать читать или записывать ("0"-записываем, "1"-читаем);
1-бит: определяем будет ли сдвигаться адрес регистра после прочтения ("0"-не сдвигаем, "1"-инкрементируем адрес);
Вот теперь сложности.
Написано: 2-7 биты - адреса регистра (всего получается 6 бит, на диаграмме тоже нарисовано 6 бит), но в таблице регистров каждый регистр имеет 7-битный адрес....
Как быть? Что делать? Может я не внимательно прочёл даташит, может я что-то упустил? Или есть какая - нибудь хитрость? Если кто работал с данным девайсом помогите, пожалуйста!
P.S. 8-15 биты это то, что мы записываем/читаем на каждую посылку 8 бит, здесь, вроде, нет вопросов.
(Добавление)
Вот даташит: http://z.compel.ru/item-pdf/48bb...ps/st~lis3dh.pdf |
|
|
killgur |
Отправлено: 26 Октября, 2015 - 09:36:08
|
Гуру
Сообщений всего: 1189
Дата рег-ции: Февр. 2010
|
Механик пишет:Всем привет!
Давно уже приобрёл себе акселерометр LIS3DH, но никак руки не доходили до него....
Сейчас решил взяться и испытать его. Первый вопрос который возник: как подключать к микроконтроллеру?
В документации написано, что есть SPI интерфейс, здорово, в ATmega8 он тоже имеется.
Теперь о тонкостях (прочёл в даташите): передавать данные нужно старшим битом вперёд, считывание производится по переднему фронту тактовых импульсов, полярность тактового сигнала: во время ожидания на SCK-"1". Вроде всё понятно.
В документации также приведён протокол записи/чтения данных, всё очень подробно, с диаграммами:
0-бит: указываем что ходим делать читать или записывать ("0"-записываем, "1"-читаем);
1-бит: определяем будет ли сдвигаться адрес регистра после прочтения ("0"-не сдвигаем, "1"-инкрементируем адрес);
Вот теперь сложности.
Написано: 2-7 биты - адреса регистра (всего получается 6 бит, на диаграмме тоже нарисовано 6 бит), но в таблице регистров каждый регистр имеет 7-битный адрес....
Как быть? Что делать? Может я не внимательно прочёл даташит, может я что-то упустил? Или есть какая - нибудь хитрость? Если кто работал с данным девайсом помогите, пожалуйста!
P.S. 8-15 биты это то, что мы записываем/читаем на каждую посылку 8 бит, здесь, вроде, нет вопросов.
(Добавление)
Вот даташит: http://z.compel.ru/item-pdf/48bb12a19a0e58d1ed4a7e56e6bf76a7/ps/st~lis3dh.pdf
https://www.drive2.ru/b/1072182/
там не чистый SPI там через UART
код на с
http://aterlux.ru/files/velotaillight.zip(Отредактировано автором: 26 Октября, 2015 - 10:06:01) |
|
|
Механик |
Отправлено: 26 Октября, 2015 - 16:30:41
|
Полковник
Сообщений всего: 76
Дата рег-ции: Апр. 2014
|
Хорошая статья, интересные подробности работы акселерометра, но ссылка на архив: антивирус ругается, не даёт скачать
Попробую ещё разок подключить, может ещё чего получится.
(Добавление)
Кажется нашёл: "Особенностью данного акселерометра является то, что для того, чтобы был инкремент адреса при считывании, необходимо установить в старшем бите байта адреса регистра «1»"
Взял это вот отсюда: http://journal.electroniclab.ru/..._content_020.htm
Попробую так сделать, если ничего не получится, то буду считать, что ошибка в пайке (корпус то маленький, фена нет ), перепаивать буду |
|
|
killgur |
Отправлено: 26 Октября, 2015 - 17:05:48
|
Гуру
Сообщений всего: 1189
Дата рег-ции: Февр. 2010
|
Механик пишет:Хорошая статья, интересные подробности работы акселерометра, но ссылка на архив: антивирус ругается, не даёт скачать
Попробую ещё разок подключить, может ещё чего получится.
(Добавление)
Кажется нашёл: "Особенностью данного акселерометра является то, что для того, чтобы был инкремент адреса при считывании, необходимо установить в старшем бите байта адреса регистра «1»"
Взял это вот отсюда: http://journal.electroniclab.ru/..._content_020.htm
Попробую так сделать, если ничего не получится, то буду считать, что ошибка в пайке (корпус то маленький, фена нет ), перепаивать буду
китай однако могут быть разные своеобразные трактовки SPI
снизу плату греть можно и на утюге архив в 7Z можно скачать отсюда https://yadi.sk/d/LGXg2dsok2Mpw (Отредактировано автором: 26 Октября, 2015 - 17:09:27) |
|
|
|
Поиск в теме | Версия для печати |
Страниц (1): [1] |
« Программирование микроконтроллеров » |
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
|
|
|
|
|