Например TDA7294

Форум РадиоКот • Просмотр темы - LSM303DLHC и MSP430
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пн июл 28, 2025 03:55:45

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: LSM303DLHC и MSP430
СообщениеДобавлено: Ср апр 10, 2013 00:02:50 
Открыл глаза

Зарегистрирован: Чт окт 28, 2010 11:20:39
Сообщений: 71
Рейтинг сообщения: 0
Здравствуйте уважаемые схемотехники, программисты и конструктора!
Работы с микроконтроллером MSP430 и магнитометром LSM303DLHC.
Этот магнитометр использует шину I2C для передачи данных. На микроконтроллере я реализовал программный I2C.

Приведу кусок кода. Не удивляйтесь (и не ругайтесь) наличием классов, среда разработки позволяет использовать С++'ные классы и так мне удобнее....

//Определим пины, которые будут играть свои роли - SCL и SDA, порта 11 бит 1 и бит 2.
i2c.Set_SDA(&P11OUT, &P11IN, &P11REN, &P11DIR, BIT2);
i2c.Set_SCL(&P11OUT, &P11IN, &P11REN, &P11DIR, BIT1);

//Настроем магнитометр
i2c.WriteData(0x00, 0x14);
i2c.WriteData(0x02, 0x00);

while(1)
{
//Считываем значения
Temp = i2c.ReadData(0x03);
Temp = i2c.ReadData(0x04);
}


Проблема заключается в том, что при считывании по этому адресу , TEMP = 0x00.
Хотя я перепроверял:
Temp = i2c.ReadData(0x00);
Temp после этого равен 0х14... значит I2C работает правильно и мы можем записывать и считывать. Получается, что проблема в инициализации...
Возможно я не прав. Помогите пожалуйста товарищи!)
Заранее спасибо!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: LSM303DLHC и MSP430
СообщениеДобавлено: Чт апр 11, 2013 17:13:46 
Открыл глаза

Зарегистрирован: Чт окт 28, 2010 11:20:39
Сообщений: 71
Рейтинг сообщения: 0
Товарищи разработчики! Неужели никто не сталкивался с подобным магнитометром?:)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: LSM303DLHC и MSP430
СообщениеДобавлено: Чт апр 11, 2013 17:33:59 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Вы привели непонятный (мне) кусочек кода
//Настроем магнитометр
i2c.WriteData(0x00, 0x14);
i2c.WriteData(0x02, 0x00);

В библиотеке ардуино для сабжа включение выглядит так:
Код:
#define LSM303_CTRL_REG1_A       0x20
#define LSM303_CTRL_REG4_A       0x23
#define LSM303_MR_REG_M          0x02
........
// Turns on the LSM303's accelerometer and magnetometers and places them in normal
// mode.
void LSM303::enableDefault(void)
{
  // Enable Accelerometer
  // 0x27 = 0b00100111
  // Normal power mode, all axes enabled
  writeAccReg(LSM303_CTRL_REG1_A, 0x27);

  if (_device == LSM303DLHC_DEVICE)
    writeAccReg(LSM303_CTRL_REG4_A, 0x08); // DLHC: enable high resolution mode

  // Enable Magnetometer
  // 0x00 = 0b00000000
  // Continuous conversion mode
  writeMagReg(LSM303_MR_REG_M, 0x00);
}

не сходится
если что - тут брал: http://www.robototehnika.ru/e-store/catalog/202/965/


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: LSM303DLHC и MSP430
СообщениеДобавлено: Сб апр 20, 2013 09:57:49 
Открыл глаза

Зарегистрирован: Чт окт 28, 2010 11:20:39
Сообщений: 71
Рейтинг сообщения: 0
Спасибо за ответ, извините, по работе не мог отписться побыстрее....

i2c.WriteData(0x00, 0x14);
i2c.WriteData(0x02, 0x00);

Передача данных... 0х00 - адресс, 0х14 - значение...
так вот если я настраиваю так:
i2c.WriteData(0x00, 0x10);
i2c.WriteData(0x20, 0x97);

То работаент только акселерометр... следовательно... я настроил и2с правильно... значит какие-то недочеты в настройке магнитометра....


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: LSM303DLHC и MSP430
СообщениеДобавлено: Сб апр 20, 2013 10:43:49 
Открыл глаза

Зарегистрирован: Чт окт 28, 2010 11:20:39
Сообщений: 71
Рейтинг сообщения: 0
Под работой акселерометра, я подразумеваю, что считваю данные по адресу 0x28 - 0x2D.
Помогите пожалуйста!) очень нужно!)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: LSM303DLHC и MSP430
СообщениеДобавлено: Сб апр 20, 2013 11:16:31 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Вт окт 27, 2009 22:39:19
Сообщений: 672
Откуда: Москва
Рейтинг сообщения: 0
По приведенным примерам не понятно, поэтому уточню:
Вы в курсе, что акселерометр и магнитометр имеют разные адреса устройстI2C?
Цитата:
For linear acceleration the default (factory) 7-bit slave address is 0011001b.
For magnetic sensors the default (factory) 7-bit slave address is 0011110xb

Т.е. это два разных устройства, со своими адресами которые впихнули в один корпус.

_________________
— Не говорите мне что делать и я не скажу куда Вам идти...


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: LSM303DLHC и MSP430
СообщениеДобавлено: Сб апр 20, 2013 12:31:01 
Открыл глаза

Зарегистрирован: Чт окт 28, 2010 11:20:39
Сообщений: 71
Рейтинг сообщения: 0
Да спасибо! тоже недавно вычитал из даташита....(пропустил, балда...:))
Спасибо за ответ...
Вообщем что б писать в магнитометр, адресс утсройства должен быть не 0x32, 0x33, а 0x3C, 03D!
Резюме: Нужно внимательней читать даташит!)


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y