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

Профессионал
    
Группа: Свой
Сообщений: 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
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
May 14 2012, 18:50
|

Частый гость
 
Группа: Участник
Сообщений: 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
|
|
|
|
|
May 14 2012, 19:14
|

Профессионал
    
Группа: Свой
Сообщений: 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
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
May 14 2012, 19:15
|

Частый гость
 
Группа: Участник
Сообщений: 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
Эскизы прикрепленных изображений
|
|
|
|
|
May 14 2012, 19:31
|
Гуру
     
Группа: Свой
Сообщений: 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).
|
|
|
|
|
May 14 2012, 20:00
|

Профессионал
    
Группа: Свой
Сообщений: 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
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
May 14 2012, 20:11
|

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

|
Страно это Цитата если я ставлю TWBR больше 10, то у меня старт проходит на 8МГц, но 0х30... - это ответ на данные а не на адрес. Почему он адрес воспринимает как данные , только в том случае если адрес он уже принял и всё остальное считает данными.
--------------------
Закон Мерфи:
Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|