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

 
 
6 страниц V  < 1 2 3 4 > »   
Reply to this topicStart new topic
> atmega32 + HMC5883 (по i2c), подключение компаса к мк
ILYAUL
сообщение May 14 2012, 18:46
Сообщение #16


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

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



Цитата(Kruftin @ May 14 2012, 22:11) *
Ну питание на платку я могу подать до 5 Вольт. Так вот TWBR, то почему я должен в единичку поставить, если у меня контроллер то в ведущем режиме работает(master)? Ну я не думаю что у меня калькулятор меня обманывает, вроде частоту верно рассчитал.

Верно. Давайте остановимся на 8 мгц TWBR=0x03 частота = 200000гц

Блин , забыл в своей формуле 4
TWBR=(SYSCLK/(2*SCL_Freq)-8) /4



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

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Kruftin
сообщение May 14 2012, 18:50
Сообщение #17


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

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



Ну сейчас попробую. Он даже старт не может выставить 08. На 1МГц все также 0х30. И еще кстати есть подвижки в лучшую сторону: если я ставлю TWBR больше 10, то у меня старт проходит на 8МГц, но 0х30 в ответе на посылку адреса. Т.е. может быть скорость то та?Кстати попробовал поставить делитель 4 вместо 1, так вот старт не проходит, хм странно, а может быть такое, что компас только на одну скорость настроен?
Скажу сразу, что на 8МГц все значения TWBR ниже 10 не катят, а вот на 1МГц катят все значения.

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


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

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



Цитата(Kruftin @ May 14 2012, 22:50) *
Ну сейчас попробую. Он даже старт не может выставить 08. На 1МГц все также 0х30. И еще кстати есть подвижки в лучшую сторону: если я ставлю TWBR больше 10, то у меня старт проходит на 8МГц, но 0х30 в ответе на посылку адреса. Т.е. может быть скорость то та?Кстати попробовал поставить делитель 4 вместо 1, так вот старт не проходит, хм странно, а может быть такое, что компас только на одну скорость настроен?

А адрес то какой 0x3D или 0x1E


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

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Kruftin
сообщение May 14 2012, 19:15
Сообщение #19


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

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



Код
        i2cSendStart();
    i2cWaitForComplete();
    i2cWrite_Address(0x3C);    //write to HMC
    i2cWaitForComplete();

0х3С разумеется идет на запись в регистр
Адрес по идее устройства 0х1Е, но ты добавляй бит на запись или чтение и будет 0х3С на запись и 0х3D на чтение.

Сообщение отредактировал Kruftin - May 14 2012, 19:25
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
_Артём_
сообщение May 14 2012, 19:31
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(Kruftin @ May 14 2012, 21:50) *
а может быть такое, что компас только на одну скорость настроен?

Не может. Задана только максимальная скорость.
Либо - это новое слово в науке и технике.

Нашёл такой пунктик в DS на м88. Может ваш случай?
Цитата
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).


Go to the top of the page
 
+Quote Post
Kruftin
сообщение May 14 2012, 19:35
Сообщение #21


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

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



Не ну если я получаю код в статусном регистре, то значит компас мне отвечает? Артем, писали уже про этот пунктик, он влияет лишь на работу на частоте выше 1МГц, однако коды приходят те же самые, что и при TWBR меньшем 10.

Сообщение отредактировал Kruftin - May 14 2012, 19:44
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение May 14 2012, 19:36
Сообщение #22


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

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



Цитата(Kruftin @ May 14 2012, 23:15) *
Адрес по идее устройства 0х1Е, но ты добавляй бит на запись или чтение и будет 0х3С на запись и 0х3D на чтение.

Так стоп. Если к 1E добвить в конце адресной посылке 1 будет 1F т.к по условию I2C LSB является битом определяющим действие.
Ну да он же 9 всё разобрался. Знаешь , попробуй дать ему родные 5V там согласователь уровней есть и они определяют в схеме тоже 5 . Может на 3-х фронты заваливает , хотя и не должен. И измени ему посылку , дай ему STOP дождсь ответ -Start - ответ - адрес или передерни питание .


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

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Kruftin
сообщение May 14 2012, 19:45
Сообщение #23


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

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


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

Группа: Свой
Сообщений: 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
сообщение May 14 2012, 20:02
Сообщение #25


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

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



Да на меге у меня от 3 батареек на 1,5 вольт (4,5 вольт правда). Кстати пробовал сначала дать стоп(дождался когда он пройдет), потом старт, тоже самое.

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


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

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



Страно это
Цитата
если я ставлю TWBR больше 10, то у меня старт проходит на 8МГц, но 0х30...
- это ответ на данные а не на адрес. Почему он адрес воспринимает как данные , только в том случае если адрес он уже принял и всё остальное считает данными.


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

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Kruftin
сообщение May 14 2012, 20:15
Сообщение #27


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

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



Дак да на адрес у него ответ то 0х20, а на данные 0х30(адрес он воспринимает как адрес). Все равно это типа негативные ответы. Я просто и после адреса смотрел статус и после посылки данных. Ответы то логичные, но содержат not ack. Может надо где-нибудь расставить задержки? Надо бубен прикупить походу. 1111493779.gif

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


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

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



Цитата(Kruftin @ May 15 2012, 00:15) *
Может надо где-нибудь расставить задержки?

Нет у Вас прямая проверка бита TWINT в ожидании ответа.


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

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Kruftin
сообщение May 15 2012, 03:17
Сообщение #29


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

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



Ну как то же люди работают с такими компасами? Или все на ардуино перешли и берут готовый код. Компас такими ответами просто посылает... Да еще и предделитель когда меняешь он отказывается нормальные данные посылать, хотя тут говорят, что частота любая может быть на i2c, главное меньше заданной в даташите компаса. Листаю сижу англиканские сайты, пока ниче не нашел про проблемы похожие.

Сообщение отредактировал Kruftin - May 15 2012, 03:18
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение May 15 2012, 05:00
Сообщение #30


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

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



А почему так запитаны по разному mega и компас. Чем вызвана такая разница?


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

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

6 страниц V  < 1 2 3 4 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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