Форум РадиоКот 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/ |