СОВРЕМЕННАЯ ЭЛЕКТРОНИКА №9/2015
ИНЖЕНЕРНЫЕ РЕШЕНИЯ 53 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 9 2015 ние выходами каналов, опрос кнопок управления, формирование аудиосиг- налов, измерение напряжений с помо- щью АЦП, вычисление и вывод на ЖКИ значений температуры и напряжения питания, а также решает другие более мелкие задачи. После включения питания и инициа- лизации процессорного ядра и исполь- зуемых в данном приложении перифе- рийных узлов МК (аппаратный модуль I2C1, таймер системных сигналов вре- мени SysTick, EEPROM) программа про- изводит тестирование модуля Digital Light Sensor путём записи значения 03 в командный регистр REG_CTL датчи- ка TSL2561 и последующего чтения это- го регистра. Как сказано в технической информации [1], если чтение командно- го регистра возвращает то же самое зна- чение 03, то можно считать, что циф- ровая часть датчика функционирует корректно. Результат чтения регистра REG_CTL программа выводит на ЖКИ. Затем программа производит инициа- лизацию датчика TSL2561 модуля Digital Light Sensor, задавая с помощью команд управления его основные настройки: режим выполнения АЦП, длительность цикла АЦП, коэффициент аналогового усиления входных сигналов. Записыва- емые в соответствующие рабочие реги- стры TSL2561 значения сразу же чита- ются программой из датчика обратно и выводятся на ЖКИ. Таким образом, пользователь может визуально контро- лировать исправность датчика и резуль- тат его инициализации. Процесс ини- циализации длится несколько секунд и сопровождается звуковыми сигнала- ми пьезоэлемента BQ1. Выведенный на ЖКИ набор значений регистров Digital Light Sensor, соответствующий исправ- ному датчику и успешному завершению инициализации периферии МК, пока- зан на рисунке 8а. Обмен командами/данными МК с модулем датчика Digital Light Sensor осуществляется в программе с помо- щью функции записи N байт в ведо- мое устройствоWR_N_byte_Slave_I2C() и функции чтения K байт из ведомо- го устройства RD_K_byte_Slave_I2C(). Указанные функции инициируют про- цесс обмена по шине I 2 C для аппарат- ного модуля I2C1 МК. Согласно опи- санию TSL2561 [1], чтение данных из него может осуществляться побайтно, пословно или блочно, то есть сразу всего массива данных. Внашем случае исполь- зуется пословное чтение, реализуемое функцией READ_TSL2561_ADC_WORD(). Рис. 6. Принципиальная схема устройства
RkJQdWJsaXNoZXIy MTQ4NjUy