void main(void) {
CPUinitO; //инициализация системы
_disable_interrupt(); //запрет прерываний
INTERRUPTSinit(); //инициализация прерываний
TIMEROinitstart(); //инициализация ТО
_enable_interrupt(); //разрешение прерываний
delay(1000000); //задержка на сброс ЖКИ
lcd_init(); //инициализация ЖКИ
delay(1000000); //
lcd_clear(); //очистка экрана ЖКИ
SPIOinit(); //инициализация модуля SPI0
AD7705_CS_RES(); //Инициализация линий CS и RES AD7705
AD7705reset(); //Сброс AD7705 через SPI0
AD7705init(); //Инициализация AD7705 через SPI0
A_LED1_0FF; //Погасить светодиоды 1, 2 A_LED2_OFF;
while(1) //Начало основного цикла
{
AD7705izm_ind (); //измерение AD7705 и индикация результата в десятичном виде,
//в дискретах АЦП и вольтах delay(100000); //задержка
По существу, предлагаемый проект представляет собой цифровой вольтметр с разрешающей способностью около 0.0001В и диапазоном входного напряжения 0...2.5 В.
Фрагмент принципиальной схемы подключения AD7705 к LPC2129, который необходимо добавить к базовому макету целевой пользовательской системы (Рис. 33.3), приведен на Рис. 33.8. Соединительные разъемы на схеме условно не показаны.
Помимо «штатных» сигнальных линий интерфейса SPI (MISO, MOSI, SCLK и CS), программа использует вход сброса RESET микросхемы AD7705, при подаче на который внешнего НИЗКОГО уровня производится сброс внутренней логики, цифрового фильтра, аналогового модулятора AD7705 и запись в регистры AD7705 заданных по умолчанию значений.
Микросхеме AD7705 требуется для работы внешнее опорное напряжение, для получения которого используется микросхема источника опорного напряжения AD780 [15]. Опорное напряжение, вырабатываемое AD780, составляет 2.5 В. Соответственно, входное измеряемое напряжение AD7705 может лежать в диапазоне от 0 до +2.5 В. Тактироваться AD7705 может от встроенного генег^атора с внешним кварцевым резонатором на частоту 1 МГц, 2 МГц, 2.4576 МГц или 4.9152 МГц. Чтобы повысить эффективную разрешающую способность аналого-цифровых преобразований прициспользовании AD7705, целесообразно разде-
лить общий провод в схеме на аналоговую и цифровую «земли», как показано на Рис. 33.8, причем, соединяться между собой эти «земли» должны в одной точке (лучше всего, непосредственно на отрицательном выводе источника питания).
if (flagn_kn0==l)
//нажималась ли кнопка 0
flagn_kn0=0; A_LED1_0N; AD7705reset(); AD7705init(); A_LED1_0FF;
//да, сбросить флаг нажатия //зажечь светодиод 1 //сброс AD7705 через SPI0 //инициализация AD7705 через SPI0 //погасить светодиод 1
// //
Упрощенная внутренняя блок-схема AD7705 изображена на Рис. 33.9. Устройство имеет регистровый банк, состоящий из нескольких регистров, предназначенных для управления и конфигурирования. К каждому из них можно обращаться через SPI. Первый регистр в банке называется регистром связи. Этот 8-битный регистр управляет выбором канала АЦП, определяет является ли следующая операция SPI операцией записи или чтения, а также определяет из каких регистров последует чтение и какие регистры будут доступны для записи в ходе следующего обращения. Сеанс обмена с AD7705 через SPI, с целью произвести запись или чтение любого регистра устройства, всегда должен начинаться с записи в регистр связи. Регистр связи содержит также бит занятости устройства (бит 7) DRDY. НИЗКИЙ уровень DRDY означает, что результат последнего преобразования, находящийся в 16-битном регистре данных AD7705 после завершения преобразования или автокалибровки, доступен для чтения. Если бит DRDY установлен (в ВЫСОКИЙ уровень), то чтение результата АЦП запрещено. Состояние бита DRDY всегда совпадает с состоянием одноименного логического выхода микросхемы, таким образом опрос готовности к чтению результата АЦП ведущее устройство может производить и без участия SPI. Назначение отдельных битов регистра связи приведено в Табл. 33.1.
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |