Например TDA7294

Форум РадиоКот :: Просмотр темы - LSM303DLHC и MSP430
Форум РадиоКот
https://radiokot.ru/forum/

LSM303DLHC и MSP430
https://radiokot.ru/forum/viewtopic.php?f=61&t=88089
Страница 1 из 1

Автор:  bishop-strip [ Ср апр 10, 2013 00:02:50 ]
Заголовок сообщения:  LSM303DLHC и MSP430

Здравствуйте уважаемые схемотехники, программисты и конструктора!
Работы с микроконтроллером 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 работает правильно и мы можем записывать и считывать. Получается, что проблема в инициализации...
Возможно я не прав. Помогите пожалуйста товарищи!)
Заранее спасибо!

Автор:  bishop-strip [ Чт апр 11, 2013 17:13:46 ]
Заголовок сообщения:  Re: LSM303DLHC и MSP430

Товарищи разработчики! Неужели никто не сталкивался с подобным магнитометром?:)

Автор:  oleg110592 [ Чт апр 11, 2013 17:33:59 ]
Заголовок сообщения:  Re: LSM303DLHC и MSP430

Вы привели непонятный (мне) кусочек кода
//Настроем магнитометр
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/

Автор:  bishop-strip [ Сб апр 20, 2013 09:57:49 ]
Заголовок сообщения:  Re: LSM303DLHC и MSP430

Спасибо за ответ, извините, по работе не мог отписться побыстрее....

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

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

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

Автор:  bishop-strip [ Сб апр 20, 2013 10:43:49 ]
Заголовок сообщения:  Re: LSM303DLHC и MSP430

Под работой акселерометра, я подразумеваю, что считваю данные по адресу 0x28 - 0x2D.
Помогите пожалуйста!) очень нужно!)

Автор:  md5sum [ Сб апр 20, 2013 11:16:31 ]
Заголовок сообщения:  Re: LSM303DLHC и MSP430

По приведенным примерам не понятно, поэтому уточню:
Вы в курсе, что акселерометр и магнитометр имеют разные адреса устройст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

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

Автор:  bishop-strip [ Сб апр 20, 2013 12:31:01 ]
Заголовок сообщения:  Re: LSM303DLHC и MSP430

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

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/