Informatics Point

Информатика и проектирование

Работа по шине I2C

Как и любое устройство, работающее по интерфейсу I2C, датчик имеет свой собственный уникальный адрес для работы. HMC5883L присвоен адрес 0х1E. С восьмым битом записи/чтения адрес будет 0х3D для чтения и 0х3C для записи.

Карта регистров датчика представлена в таблице ниже (Рис.6):

Рис.6

Как видно, для настройки датчика доступны регистры (это те, куда можно что-то записать) находящиеся на адресах 00 (configuration register A), 01 (configuration register B) и 02 (mode register).

Configuration Register A (CRA)

Рис.7. Регистр конфигурации А

Первый из доступных, для настройки датчика, регистров. Каждый бит имеет свое имя, для того чтобы было видно с каким еще битом в регистре он связан (например, биты CRA6 и CRA5 имеют общее имя MA1 и MA0 соответственно, так как отвечают за один и тот же параметр) CRA7 - зарезервированный бит и пока не используется CRA6|CRA5 - устанавливают число замеров (семплов) перед выдачей результата измерения. Эти биты могут принимать значения: 00 = 1(Default); 01 = 2; 10 = 4; 11 = 8 Пример: чтобы установить 4 семпла записываем в CRA6 единицу, a в CRA5 ноль. CRA4|CRA3|CRA2 - устанавливают с какой скоростью будут записываться данные в регистры считывания данных (Data Output Registers). 000 - 0,75 Гц 001 - 1,5 Гц 010 - 3 Гц 011 - 7,5 Гц 100 - 15 Гц (дефолтное значение) 101 - 30 Гц 110 - 75 Гц 111 - зарезервировано Пример: для того чтобы увеличить скорость записи данных до 75 Гц записываем в CRA4 единицу, в CRA3 единицу, в CRA2 ноль. CRA1|CRA0 - настраивают тип измерения. Тут какие-то технические заморочки с импедансом в магниторезистивной нагрузке датчика в каждой из осей. Оставили значение регистров по умолчанию (00 - нормальный режим измерения) . Пример: настроим полностью регистр А, установим количество семплов равным 8 , скорость записи данных 3 Гц, нормальный тип измерения. Для этого мы должны отправить в регистр 8 бит данных, в двоичном представлении это будет: &b01101000.

Configuration Register B (CRB)

Рис.8. Регистр конфигурации В

В регистре B настраивается чувствительность датчика к магнитному полю. За эти установки отвечают биты CRB7|CRB6|CRB5. Остальные 5 бит не используются, но для корректной работы они должны быть забиты нулями. Зависимость чувствительности (Lsb/Gauss) датчика от установленных битов CRB7|CRB6|CRB5

-1370 001 -1090 (дефолтное значение) 010 - 820 011 - 660 100 - 440 101 - 390 110 - 330 111 - 230 Пример: установим максимальную чувствительность датчика, для этого отправим в регистр B бинарное значение &b00000000 3.3. Mode Register (MR)

Рис.9 Режим регистрации

В последнем оставшемся регистре, настраиваются такие параметры как скорость работы на шине I2C и режим работы датчика. Высокоскоростной режим работы I2C (3400 кГц) устанавливается записью в бит MR7 единицы. MD1|MD0 устанавливают режим работы датчика: 00 - режим непрерывного измерения. 01 - режим единичного измерения (в этом режиме датчик работает по умолчанию). После измерения и записи результата в регистр вывода данных датчик уходит в режим ожидания (Idle) 10 - погружает датчиков режим ожидания. Потребление в этом режиме падает до 2 мкА 11 - также погружает датчик в режим ожидания.

Пример: установим высокоскоростное соединение датчика с микроконтроллером на скорости 3400кГц и запустим режим непрерывного измерения. Для этого запишем в регистр бинарное значение &b10000000. Измеренные по трем осям данные забираются из соответствующих регистров, для каждой из осей данные состоят из двух байт - старшего и младшего. Для получения результата их необходимо сложить, но это уже очевидные вещи поэтому приступим непосредственно к коду и железу. Для того чтобы самостоятельно не паять можно купить вот такую готовую печатную плату, представлена на (Рис.10):

Рис.10.Печатная плата

Стоимость 5$ и помимо минимально необходимой обвязки содержит стабилизатор питания и схему преобразователя уровней. Поэтому эту плату можно подключать к 5-и вольтовой схеме без опасности спалить сенсор. Подключается плата с датчиком напрямую к микроконтроллеру, подтягивающие резисторы ставить не нужно, они уже имеются на плате (Рис.11):

Перейти на страницу: 1 2

Лучшие статьи по информатике

Цифровой таймер для насоса
Устройства способные облегчить жизнь в быту, уже давно заполнили наши дома. Данное устройство, как раз одно из таких, и предназначено для периодического зап ...

Сенсорный выключатель
Целью данного курсового проекта является разработка, выбор и обоснование конструкции, технологического процесса сборки Сенсорного выключателя. Для обоснован ...

Разработка сети передачи данных Нуринского РУТ Карагандинской области на основе создания цифровых РРЛ
Оцифрованные магистрали, на базе которых строятся современные сети передачи информации, должны быть стандарта SDH (Synchronous Digital Hierarchy -это синхро ...

Меню сайта