Главная  Радио и связь 

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

+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)



DDRB,temp

.•НАПРАВЛЕНИЕ передачи линий порта В

temp,1<<РВ0

PORTB,temp

;УСТАНОВКА линии РВО

temp, ( (1«SPIE)

+ (1«SPE) + (1«MSTR))

SPCR,temp

;ИНИЦИАЛИЗАЦИЯ SPI

temp,1<<SE

MCOCR,temp

;ОПРЕДЕЛЕНИЕ режима SLEEP

temp,(1<<WDE) +

(1«WDP2) + (1«WDP1) + (WDPO)

WDTCR,temp

;ИНИЦИАЛИЗАЦИЯ сторожевого таймера

Cycle: Idi

XH,high(1024*4)

XL,low(1024*4)

Step: sbiw

XL, 4

rcall

Send

breq

Cycle

rjmp

Step

SPI STC:wdr

reti

Send: cbi

PORTB,PBO

Pause

SPDR.XH

sleep

SPDR.XL

sleep

PORTB,PBO

Приведенная программа начинается блоком векторов прерываний, в котором используется не рассматривавшееся ранее прерывание окончания передачи 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