|
atmega32 + HMC5883 (по i2c), подключение компаса к мк |
|
|
|
May 13 2012, 11:18
|

Частый гость
 
Группа: Участник
Сообщений: 115
Регистрация: 30-05-11
Из: Екатеринбург
Пользователь №: 65 365

|
Добрый день! Возникла проблема при подключении к мк атмега32 компаса HMC5883. Устанавливаю состояние старт, а вот затем посылаю адрес для записи, в ответ на который получаю состояние регистра статуса twi равное 0х20, что означает: данные переданы, получен Not ack. Вот такие дела. Причем коды состояния я получаю только лишь при работе на частоте 1 МГц, на 8Мгц не могу получить даже состояние старт. Код прилагаю даже в двух вариантах. Также в архив положил даташит на компас. Вот участок кода где я проверяю статус: Код void HMC5843(void) { //unsigned char xh, xl, yh, yl, zh, zl; long xo, yo, zo; i2cSendStart(); i2cWaitForComplete(); i2cWrite_Address(0x3C); //write to HMC i2cWaitForComplete(); status_er = i2cGetStatus(); i2cWrite_Data(0x02); //mode register i2cWaitForComplete(); i2cWrite_Data(0x00); //continuous measurement mode i2cWaitForComplete(); //status_er = i2cGetStatus(); //i2cCheckForMT_SLA(); i2cSendStop(); Полезные ссылки: 1)http://www.seeedstudio.com/wiki/index.php?title=Twig_-_3-axis_Compass_v1.0b
Эскизы прикрепленных изображений
|
|
|
|
Сообщений в этой теме
Kruftin atmega32 + HMC5883 (по i2c) May 13 2012, 11:18 ILYAUL А где Вы устанавливаете скорость передачи? May 13 2012, 14:24 Kruftin В архиве компас есть полный код программы(для CVAV... May 13 2012, 18:01 ILYAUL Как всё сложно- то . Moжет проще TWBR=SYSCLK/(2*... May 13 2012, 18:31 Kruftin Можно и так. Но вот при частоте тактирования 1МГц ... May 13 2012, 19:41 ILYAUL Цитата(Kruftin @ May 13 2012, 23:41) К ко... May 13 2012, 21:30 Kruftin Именно так. May 14 2012, 08:48 ILYAUL Уменя складывается впечатление , что у Вас проблем... May 14 2012, 10:16 Navovvol с I2C не сталкивался, но пытаясь разобраться вот н... May 14 2012, 11:08 Kruftin Дак а почему тогда вариант номер 2 не катит?
КодTW... May 14 2012, 11:46 ILYAUL Нет я ошибся
ЦитатаСудя по приложенному Вами DS, ... May 14 2012, 17:49 Navovvol нашел вот такое примечание в даташите, правда на м... May 14 2012, 12:07 Kruftin В даташите на атмегу32 я такого не нашел. Не ну се... May 14 2012, 14:39 zombi Цитата(Kruftin @ May 14 2012, 17:39) Сейч... May 14 2012, 15:38 Kruftin Ну питание на платку я могу подать до 5 Вольт. Так... May 14 2012, 18:11 ILYAUL Цитата(Kruftin @ May 14 2012, 22:11) Ну п... May 14 2012, 18:46 Kruftin Ну сейчас попробую. Он даже старт не может выстави... May 14 2012, 18:50 ILYAUL Цитата(Kruftin @ May 14 2012, 22:50) Ну с... May 14 2012, 19:14 _Артём_ Цитата(Kruftin @ May 14 2012, 21:50) а мо... May 14 2012, 19:31 Kruftin Код i2cSendStart();
i2cWaitForComplete... May 14 2012, 19:15 ILYAUL Цитата(Kruftin @ May 14 2012, 23:15) Адре... May 14 2012, 19:36 Kruftin Не ну если я получаю код в статусном регистре, то ... May 14 2012, 19:35 Kruftin Ладно завтра перепаяю, и дам ему чизбургеров на 5В... May 14 2012, 19:45 ILYAUL Цитата(Kruftin @ May 14 2012, 23:45) Ладн... May 14 2012, 20:00 Kruftin Да на меге у меня от 3 батареек на 1,5 вольт (4,5 ... May 14 2012, 20:02 ILYAUL Страно это Цитатаесли я ставлю TWBR больше 10, то ... May 14 2012, 20:11 Kruftin Дак да на адрес у него ответ то 0х20, а на данные ... May 14 2012, 20:15 ILYAUL Цитата(Kruftin @ May 15 2012, 00:15) Може... May 14 2012, 21:14 Kruftin Ну как то же люди работают с такими компасами? Или... May 15 2012, 03:17 ILYAUL А почему так запитаны по разному mega и компас. Че... May 15 2012, 05:00 Kruftin Я сейчас питаю мегу и компас от 4,5 вольт. Ну а на... May 15 2012, 05:10 ILYAUL ЦитатаВсё как надо-это работает , как положено? Ра... May 15 2012, 05:16 Kruftin Между компасом и моей отладочной? Расстояние санти... May 15 2012, 06:21 ILYAUL Цитата(Kruftin @ May 15 2012, 10:21) Похо... May 15 2012, 18:01 Kruftin У меня фантазии хватает, тока вот применить я ее н... May 15 2012, 18:41 ILYAUL На сеглдняшний момент мы имеем :
1 Связь между meg... May 15 2012, 19:20 Kruftin По коду в котором явно задается регистр TWBR:
КодT... May 15 2012, 19:26 Kruftin Спасибо ILYAUL, осциллограф помог. Оказалось я пер... May 16 2012, 12:47 Kruftin На данный момент все проверки проходят по даташиту... May 17 2012, 18:34 ILYAUL Цитата(Kruftin @ May 17 2012, 22:34) На д... May 18 2012, 15:07 Kruftin Попытаюсь, но если его крутить каждый раз надо для... May 19 2012, 16:08 ILYAUL Цитата(Kruftin @ May 19 2012, 20:08) Попы... May 19 2012, 19:29  _Артём_ Цитата(ILYAUL @ May 19 2012, 22:29) Доста... May 19 2012, 20:05   ILYAUL Цитата(_Артём_ @ May 20 2012, 00:05) При ... May 20 2012, 13:09 Kruftin Не ну какие-то данные он должен сразу скинуть, даж... May 20 2012, 12:05 Kruftin А как из даташита то понять что сделать, чтобы ком... May 20 2012, 13:42 ILYAUL Он хоть в каком режиме у Вас работает? И выкладыва... May 20 2012, 19:06 Kruftin Я использую режим continious mode (получается запи... May 21 2012, 05:14 ILYAUL Почему Вы говорите о 2 данных , если их по идее до... May 21 2012, 20:56 Kruftin Дак их итак шесть. Вы же код вроде читали? Там я с... May 22 2012, 03:11 Kruftin Фатал. Как оказалось компас базируется не на HMC58... May 22 2012, 10:48 ILYAUL 3. Write Mode (02) – send 0x3C 0x02 0x00 (Co... May 22 2012, 17:56 Kruftin Да задержку поставлю. Режим single mode я пробую з... May 22 2012, 19:30 ILYAUL Цитата(Kruftin @ May 22 2012, 23:30) Т.е.... May 22 2012, 21:34 Kruftin По идее, так и по даташиту, код который составлен ... May 23 2012, 03:08 ILYAUL Цитата(Kruftin @ May 23 2012, 07:08) Кста... May 23 2012, 08:00 Kruftin Ща попробую self-test. На нем тока написано L883 2... May 23 2012, 09:06 Kruftin Ну в общем заметен прогресс. Менял я сейчас значен... May 23 2012, 10:22 ILYAUL Посмотри, что вот так будет
CODE i2cSendStart();
... May 23 2012, 11:11 Kruftin 0xFF во всех регистрах. Только я не совсем понял к... May 23 2012, 11:23 ILYAUL Цитата(Kruftin @ May 23 2012, 15:23) 0xFF... May 23 2012, 11:30 Kruftin Дак и LSB меняются, усиление меняешь дак они сильн... May 23 2012, 11:45 ILYAUL Цитата(Kruftin @ May 23 2012, 15:45) Это ... May 23 2012, 12:15 Kruftin А как пересчитать? Получается я использую double а... May 23 2012, 12:16 ILYAUL Поищи в инете, где-то я видел как пересчитывают ,... May 23 2012, 14:48 Kruftin Вот нашел пример преобразования. Только надо чтобы... May 23 2012, 16:53 _Артём_ Цитата(Kruftin @ May 23 2012, 19:53) Вот ... May 23 2012, 18:49 Kruftin Т.е. в массиве Buf будут лежать десятичные цифры? ... May 24 2012, 05:29 Kruftin Так вот только формула для определения севера неве... May 24 2012, 17:57 Kruftin Мда, на данный момент я получаю правдивые значения... May 31 2012, 13:06 _Артём_ Цитата(Kruftin @ May 31 2012, 16:06) Прич... May 31 2012, 13:27 Kruftin Не я имею ввиду, что магнитный север я смотрел по ... May 31 2012, 15:48 ILYAUL Z нашёл иот такую формулу для него
Код// convert ... Jun 1 2012, 06:12 Kruftin Ну у меня точно такая же, если скачать код и посмо... Jun 1 2012, 14:26 Kruftin А компас то работает четко. Правда оказалось, что ... Jun 5 2012, 19:10 eu1cc А кто знает, как смещение по Z координате корректи... Apr 14 2013, 20:31
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|