реклама на сайте
подробности

 
 
> atmega32 + HMC5883 (по i2c), подключение компаса к мк
Kruftin
сообщение May 13 2012, 11:18
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 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


Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  compass.rar ( 457.6 килобайт ) Кол-во скачиваний: 52
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Kruftin
сообщение May 14 2012, 19:45
Сообщение #2


Частый гость
**

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



Ладно завтра перепаяю, и дам ему чизбургеров на 5Вольт. Хотя щас попробую. От 5 Вольт лучше не стало.

Сообщение отредактировал Kruftin - May 14 2012, 19:58
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение May 14 2012, 20:00
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(Kruftin @ May 14 2012, 23:45) *
Ладно завтра перепаяю, и дам ему чизбургеров на 5Вольт. Хотя щас попробую. От 5 Вольт лучше не стало.

5V и на mege?
Цитата
TWBR should be 10 or higher if the TWI operates in Master mode. If TWBR is lower than 10, the
Master may produce an incorrect output on SDA and SCL for the reminder of the byte. The prob-
lem occurs when operating the TWI in Master mode, sending Start + SLA + R/W to a Slave (a
Slave does not need to be connected to the bus for the condition to happen).


Артём , это есть выше , но в 32 мы этого не нашли . Если в TWBR будет хотя бы 10 то при 8 мгц SCL=83333


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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   Да на меге у меня от 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 11:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01449 секунд с 7
ELECTRONIX ©2004-2016