роботы робототехника микроконтроллеры


 Страниц (1): [1]   

> Описание: адресация регистров
Механик Post Id



Полковник


Сообщений всего: 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
 
 Top
killgur Post Id



Гуру


Сообщений всего: 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)

 
 Top
Механик Post Id



Полковник


Сообщений всего: 76
Дата рег-ции: Апр. 2014  



Хорошая статья, интересные подробности работы акселерометра, но ссылка на архив: антивирус ругается, не даёт скачать Грустный
Попробую ещё разок подключить, может ещё чего получится.
(Добавление)
Кажется нашёл: "Особенностью данного акселерометра является то, что для того, чтобы был инкремент адреса при считывании, необходимо установить в старшем бите байта адреса регистра «1»"
Взял это вот отсюда: http://journal.electroniclab.ru/..._content_020.htm
Попробую так сделать, если ничего не получится, то буду считать, что ошибка в пайке (корпус то маленький, фена нет Улыбка ), перепаивать буду Улыбка
 
 Top
killgur Post Id



Гуру


Сообщений всего: 1189
Дата рег-ции: Февр. 2010  



Механик пишет:
Хорошая статья, интересные подробности работы акселерометра, но ссылка на архив: антивирус ругается, не даёт скачать Грустный
Попробую ещё разок подключить, может ещё чего получится.
(Добавление)
Кажется нашёл: "Особенностью данного акселерометра является то, что для того, чтобы был инкремент адреса при считывании, необходимо установить в старшем бите байта адреса регистра «1»"
Взял это вот отсюда: http://journal.electroniclab.ru/..._content_020.htm
Попробую так сделать, если ничего не получится, то буду считать, что ошибка в пайке (корпус то маленький, фена нет Улыбка ), перепаивать буду Улыбка



китай однако могут быть разные своеобразные трактовки SPI
снизу плату греть можно и на утюге архив в 7Z можно скачать отсюда https://yadi.sk/d/LGXg2dsok2Mpw

(Отредактировано автором: 26 Октября, 2015 - 17:09:27)

 
 Top
Механик Post Id



Полковник


Сообщений всего: 76
Дата рег-ции: Апр. 2014  



killgur пишет:
снизу плату греть можно и на утюге

Правда только одностороннюю Подмигивающий , как в моём случае
killgur пишет:
архив в 7Z можно скачать отсюда

Спасибо, здесь и платы посмотрел и исходник. Попробую разобраться.
 
 Top
Механик Post Id



Полковник


Сообщений всего: 76
Дата рег-ции: Апр. 2014  



Я испортил уже 2 акселерометра.....
Я совершенно забыл о согласовании логических уровней!!! не в себе
Акселерометр питается через преобразователь LP2980-3.0 (питание 3В), а микроконтроллер питается от 5В источника!
Раньше никогда не подключал низковольтные датчики к микроконтроллеру, потому и не подумал о согласовании!
Использовать решил SPI интерфейс, нашёл вот такую схемку на диоде: http://we.easyelectronics.ru/She...v-ustroystv.html
А здесь показано как её нужно использовать с SPI интерфейсом: http://robozone.su/info/16-kak-p...na-3.3v-k-5.html
Попробую подключить так, посмотрим, что получится....

PS. можно было и микроконтроллер от 3В питать, как то я и об этом варианте не подумал....
 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



ну с сопряжением напряжений (хе-хе) не сожгли вы ни чиго. пики они ни внимают, ну ладно, я об этом писал- регулируется регулятором на 10килоом.
есть идея что это тотже филипс, а значит 8 бит устройство, 6 бит - комманда (данные) (я думаю что румб, какая разница - 90 или 64 ?)

ну с сопряжением напряжений (хе-хе) не сожгли вы ни чиго.- непояли вы сапи протосс, ну ладно, удачи, обращайтесь
 
 Top
Механик Post Id



Полковник


Сообщений всего: 76
Дата рег-ции: Апр. 2014  



Я не говорю, что я сжёг что-то, просто когда перепаивал акселерометр с одной платы на другую повредились контакты на микросхеме Грустный (моя поспешность....)
В магазине закончились эти акселерометры гы-гы! гы-гы!
Думаю, что попробую другой взять, уже нашёл: схож по характеристикам MMA7455
У него контакты больше, а их количество-меньше, может его удастся запаять лучше Улыбка
 
 Top
Vontane Post Id


Рядовой


Сообщений всего: 4
Дата рег-ции: Май 2016  



Очень хорош давно пользуюсь и жало нет, советую вам Голливудская улыбка Подмигивающий
 
 Top
Страниц (1): [1]
« Программирование микроконтроллеров »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru