![]() | |
|
Главная Радио и связь +5 В uref Аналоговый вход -микроконтроллера * К выходу НЧ генератора --кАЦП ~Г J 620 У U 12к -i-Ki аналоговому 12к ВХОДУ устройства Рис. 37. Защита входов АЦП микро- Рис. 38. Устройство смещения контроллера от перенапряжения напряжения Эта схема обеспечивает для генератора стандартную нагрузку в 600 Ом. Резисторы 7?2 и представляют собой делитель для сигнала генератора. В то же время они обеспечивают постоянное смещение в точке соединения, ет до минимума ошибки преобразования, возникающие при работе АЦП и ЦАП. В этой микросхеме регулировка напряжения осушествляется так, чтобы поддерживать на контакте А напряжение в 2.5 В (Uohxa)- Напряжение Urep и сопротивления резисторов Л4 и 7?5 связаны выражением: Urep = Ukoht.a(1 + R4/R5) + Ikoht.aR4- ТоК I конт.А? протекающий через контакт А микросхемы, составляет 0.01 А. При использовании указанных на схеме резисторов напряжение Urp составляет примерно 2.7 В. Опорным напряжением Urep, подаваемым на контакт AREF микроконтроллера, определяется и допустимый диапазон входных напряжений на входах АЦП микроконтроллера РСО, РС1 и РС2. Для того чтобы цифровой код, полученный в результате работы АЦП, соответствовал входному напряжению, это напряжение не должно выходить за границы диапазона O...UREP. Для защиты от напряжения, превышающего напряжение питания микроконтроллера, а также от напряжения ниже О В входы микроконтроллера, связанные с АЦП, снабжены ограничительными диодами, как показано на Рис. 37. Максимальный допустимый ток через эти диоды составляет 1 мА. Для проверки работы устройств, реализуемых по приведенной ранее схеме, понадобится подавать переменное синусоидальное напряжение от низкочастотного генератора. Для того чтобы синусоидальное напряжение, изменяющееся в диапазоне от минус до плюс U, могло быть подано на вход АЦП микроконтроллера, оно должно быть преобразовано таким образом, чтобы напряжению -на входе АЦП соответствовало напряжение, немного превышающее О В, а напряжению -HUm - напряжение, чуть меньшее Urep. Для этого поступающее на вход АЦП напряжение должно быть смещено на величину Urep/2. В этом случае можно будет полностью использовать диапазон АЦП. Простейшая схема, реализующая такое преобразование, изображена на Рис. 38. равное половине напряжения Uref- Входное сопротивление со стороны АЦП составляет порядка 100 МОм и практически не оказывает влияния на работу устройства смещения напряжения. Для того чтобы напряжение смещения было точно равно половине Uref> резисторы R2, должны быть прецизионными, выходное сопротивление источника сигнала (в данном случае генератора) близко к нулю, а поступающее напряжение не должно содержать постоянной составляющей. Прежде всего надо проверить связь микроконтроллера через SPI с микросхемой ЦАП. Проще всего для этого реализовать генератор пилообразного напряжения. Для этого в микросхему ЦАП с небольшим интервалом будем передавать коды, начиная с нуля с приращением в единицу. После достижения кодом максимального значения, а для 10-разрядного ЦАП оно составляет 2" - 1 (1023), весь цикл повторится. Минимальному коду будет соответствовать нулевое напряжение на выходе ЦАП, максимальному - напряжение Uref- 6.2.2. Программа для генератора пилообразного напряжения ;Посылка кода О1023 , О ,1023 ,... в 10-разрядный ЦАП TLC5615 .include "с:\avr\def\m8def.inc" .def temp = rl6 .CSEG .org 0 rjmp RESET ; Reset Handler nop ; EXT INTO ; IRQO Handler nop ; EXT INT1 ; IRQl Handler nop ; TIM1 CAPT ; Timerl Capture Handler nop ; TIM1 C0MP ; Timerl compare Handler nop ; TIM1 0VF ; Timerl Overflow Handler nop ; TIM0 OVF ; TimerO Overflow Handler rjmp SPI STC ; SPI Transfer Complete Handler nop ; 0SART RXC ; USART RX Complete Handler nop ; USART DRE ; DDR Empty Handler nop ; 0SART TXC ; 0SART TX Complete Handler nop ; ADC ; ADC Conversion Complete Interrupt Handler nop ; EE RDY ; EEPROM Ready Handler nop ; ANA COMP ; Analog Comparator Handler .MACRO Pause nop ENDMACRO RESET: cli Idi rl6,low(RAMEND) .-ИНИЦИАЛИЗАЦИЯ стека out SPL,rl6 Idl temp,(l«PB0) + (1«PB3) + (1«PB5)
Приведенная программа начинается блоком векторов прерываний, в котором используется не рассматривавшееся ранее прерывание окончания передачи SPI (далее будем именовать его прерыванием SPI). Как следует из названия, прерывание возникает после окончания передачи данных как данные, записанные в регистр SPDR (регистр данных SPI). Определение макроса Pause начинается директивой .MACRO и заканчивается директивой .ENDMACRO; содержимое макроса находится между строками с указанными директивами. Меткой RESET: начинается основная часть программы. После инициализации стека определяется направление передачи линий порта В. Линии РВО, РВЗ и РВ5 определяются как выходные, линия РВ1 определяется как вход, остальные линии порта В в работе устройства не участвуют. На линию РВО, соединенную с контактом CS микросхемы ЦАП, выводится ВЫСОКИЙ уровень, запрещающий работу ЦАП. Для инициализации SPI в регистре управления SPCR устанавливаются разряды SPIE, SPE и MSTR. Установка разряда SPIE разрешает работу прерывания SPI, установка разряда SPE разрешает работу SPI, а установка разряда MSTR переводит SPI в режим ведущего (Master). 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 [ 69 ] 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 0.0055 |