Сборка лекции, страница 6
Описание файла
Документ из архива "Сборка лекции", который расположен в категории "". Всё это находится в предмете "электроника" из , которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "электроника и микропроцессорная техника" в общих файлах.
Онлайн просмотр документа "Сборка лекции"
Текст 6 страницы из документа "Сборка лекции"
rjmp start ; запроса RESET
.org OVF0addr ; Адрес вектора прерывания по переполнению
rjmp tim0 ; ТС0 (имя OVF0addr определено в файле m8535def.inc)
start:
ldi temp, LOW(RAMEND) ; Младший байт адреса самой старшей ячейки памяти
out spl, temp
ldi temp, HIGH(RAMEND) ; Старший байт адреса самой старшей ячейки памяти
out sph, temp
rcall port_init
rcall tim0_init
sei
loop:
rjmp loop
tim0: .
.
.
reti
port_init:
ldi temp,$ff
out ddrb,temp
out ddrc,temp
ldi temp,00
out ddra,temp
out ddrd,temp
ret
tim0_init:
ldi temp,$03
out tccr0,temp
; Это мы выбрали частоту, с которой будет считать таймер-счётчик (см. лекцию 7)
ldi temp,(1<<toie0)
out timsk,temp
ret
Лекция 9. 14.11.2006.
Одновременно с работой процессора МК осуществляется функционирование периферийных устройств, таких как таймеры-счётчики, АЦП, порты последовательной передачи данных и т.д.
При завершении работы того или иного периферийного устройства (например, таймер-счётчик досчитал до конкретного заданного числа) формируется соответствующий запрос прерываний, что приводит к тому, что в программный счётчик загружается адрес в соответствии с таблицей:
Адреса и приоритеты запросов прерывания
В ячейке памяти программ по соответствующему адресу расположена команда безусловного перехода к метке, по которой расположена подпрограмма обслуживания соответствующего запроса прерывания.
При переходе к подпрограмме обслуживания прерывания старший разряд регистра состояния, т.е. разрешение любых прерываний, сбрасывается в нулевое состояние. Поэтому возврат из подпрограммы обслуживания прерывания осуществляется с помощью команды reti. Тем самым, старший разряд регистра состояния опять переходит в единичное состояние.
Т.о. процессор и периферийные устройства работают независимо друг от друга (процессор работает, одновременно считает счётчик).
Последовательный порт ввода/вывода SPI (Serial Peripheral Interface)
ППВВ предназначен для ввода/вывода байтов при обмене данными с другими устройствами, имеющими порт SPI. Обмен выполняется под управлением тактового сигнала порта.
Устройство, инициализирующее обмен и вырабатывающее тактовый сигнал, является ведущим (master).
Устройство, выполняющее обмен при поступлении тактового сигнала, является ведомым (slave).
Обмен выполняется по 3 линиям связи.
Основным элементом порта SPI является 8-разрядный реверсивный сдвигающий регистр.
SPI – Serial Peripheral Interface
MISO – Master in, slave out.
MOSI – Master out, slave in.
SS – сигнал выбор-кристалл (Chip-Seleсt), служащий для выбора одного из нескольких периферийных устройств для работы с ним.
MSB – старший значащий бит.
LSB – младший значащий бит.
SCK – синхронизирующий импульс.
Временная диаграмма работы SPI:
ПС - пересчётная схема.
ШДМК – шина данных МК.
СУ – схема управления.
В состав порта входит 8-разрядный реверсивный сдвигающий регистр, который используется для параллельного ввода из шины данных МК байта, предназначенного для передачи и вывода данных в последовательном коде через вывод MOSI МК.
Одновременно с этим происходит приём последовательных данных со входа MOSI МК и параллельная выдача введённого байта в буферный регистр для последующей передачи на шину данных МК.
Сдвигающий и буферный регистр имеют одно имя SPDR ($0F).
Запись байта в сдвигающий регистр выполняется по команду OUT SPDR, Rr.
Чтение байта из буферного регистра - по команде IN Rd ,SPDR.
Помимо этого в состав порта входят:
• регистр управления SPRC,
• регистр состояния SPSR и
• устройства, управляющие работой порта.
SPI Control Register – SPCR
• Bit 7 – SPIE: SPI Interrupt Enable – разрешение прерывания
• Bit 6 – SPE: SPI Enable - прерывание
• Bit 5 – DORD: Data Order
• Bit 4 – MSTR: Master/Slave Select
• Bit 3 – CPOL: Clock Polarity - полярность синхронизирующего сигнала
• Bit 2 – CPHA: Clock Phase - фаза синхронизирующего сигнала
• Bits 1, 0 – SPR1, SPR0: SPI Clock Rate Select 1 and 0
Порт переводится в рабочее состояние при записи УС в регистр управления порта.
Установка в 1 состояние разряда SPE регистра SPCR подключает выводы (MOSI и др.) к внешним выводам МК. 1 в разряде MSTR переводит порт в режим «ведущего», а 0 в этом разряде – в режим «ведомого».
В режиме «ведущего» выводы MOSI и SCK МК являются выходами, вывод MOSI является входом.
В этом режиме порт не формирует сигнал на выводе SS. Для обеспечения обмена с устройством, имеющим порт SPI, необходимо на входе SS этого устройства программными средствами сформировать требуемые уровни сигнала.
В этом режиме обмен начинается при записи данных в регистр сдвига SPDR. В СУ1 вырабатывается серия из 8 импульсов, которая управляет сдвигами в регистрах передатчика и приёмника.
Полярность импульсов определяется 3 разрядом SPCR. При СРОL=0 сигнал на выходе SCK в исходном состоянии имеет низкий уровень, и импульс формируется при переходе сигнала к 1 значению. При CPOL=1 – наоборот.
Направление сдвига в регистре и порядок следования битов на выходе MOSI определяется состоянием разряда DORD регистра управления. При DORD=0 передача начинается со старшего бита, при DORD=1 с младшего.
Лекция 10. 21.11.2006.
Организация обмена в последовательном канале связи.
SPI_MasterInit: ; Set MOSI and SCK output, all others input
ldi r17,(1<<DD_MOSI)|(1<<DD_SCK)
out DDR_SPI,r17
; Enable SPI, Master, set clock rate fck/16 ; разрешение передачи, выбор частоты передачи
ldi r17,(1<<SPE)|(1<<MSTR)|(1<<SPR0)
out SPCR,r17
ret
SPI_MasterTransmit:; Start transmission of data (r16) ;передача данных
out SPDR,r16 ;зарузка данных в регистр сдвига
Wait_Transmit: ; Wait for transmission complete ;формирование запроса прерываний
sbis SPSR, SPIF ; обработка прерываний организована анализом бита регистра состояния (программная реализация обработки запроса прерываний)
rjmp Wait_Transmit ; ожидание, когда все данные будут выданы
ret
Аналого-цифровой преобразователь (АЦП)
АЦП формирует десятиразрядный двоичный код числа, пропорционального величине напряжения аналогового сигнала на входе МК.
В состав АЦП входят:
• 10-ти разрядный регистр последовательных приближений,
• ЦАП,
• компаратор с функцией выборки-хранения аналогового сигнала,
• аналоговый мультиплексор для подключения одного из входов МК,
• регистр управления ADMUX,
• регистр управления-состояния ADCSR и
• шестнадцаниразрядный буферный регистр результата.
Аналоговый мультиплексор подключает один из входов МК (восемь линий канала А для 8535) ко входу компаратора. Двоичный код номера подключаемого входа задается комбинацией состояний трех младших разрядов регистра управления ADMUX.
MUX2 | MUX1 | MUX0 | Вх.АЦП | Вх.МК |
0 | 0 | 0 | ADC0 | PA0 |
0 | 0 | 1 | ADC1 | PA1 |
0 | 1 | 0 | ADC2 | PA2 |
0 | 1 | 1 | ADC3 | PA3 |
1 | 0 | 0 | ADC4 | PA4 |
1 | 0 | 1 | ADC5 | PA5 |
1 | 1 | 0 | ADC6 | PA6 |
1 | 1 | 1 | ADC7 | PA7 |
Адреса регистра даны в адресном пространстве регистров ввода-вывода и в общем адресном пространстве.
Преобразование аналогового сигнала в цифровой код выполняется под управлением тактового сигнала, частота которого должна находится в диапазоне от 50 кГц до 200 кГц.
Тактовый сигнал формируется в пересчётной схеме (ПС) путем деления частоты тактового сигнала МК.
ПС работает при 1 состоянии разряда ADEN регистра управления ADCSR.
Коэффициент деления частоты определяется комбинацией состояний трех младших разрядов УС, записанного в регистр управления ADCSR.
Преобразование начинается после записи УС в регистр управления ADCSR и при условии, что 6-й разряд (ADSC) УС установлен в 1 состояние. Этот разряд аппаратно переводится в 0 состояние после завершения преобразования. Сформированный 10-ти разрядный код переписывается в регистр результата ADCL, ADCH и при этом устанавливается в единичное состояние 4 (ADIF) разряд регистра ADCSR. А при единичном состоянии 3 (ADIE) разряда УС в блок прерываний поступает запрос прерывания ADC CC (Conversion complete).
Разряд ADIF регистра сбрасывается в нулевое состояние аппаратно при переходе МК к выполнению прерывающей программы.
Чтение данных из регистра результата должно начинаться с чтения младшего байта. При этом блокируется занесение нового результата из регистра последовательных приближений в регистр результата и считанный затем старший байт принадлежит тому же результату, что и считанный ранее младший байт.
АЦП может работать в одиночном и циклическом режиме. Выбор режима определяется состоянием 5 (ADFR) разряда УС. При 0 состоянии этого разряда преобразователь работает в одиночном режиме таким образом, что после перехода в 1 состояние разряда ADSC преобразование начинается и через определенное время (65-260 мкс) завершается. Для выполнения следующего преобразования необходимо вновь установить в 1 состояние разряд ADSC регистра управления.
В циклическом режиме следующее преобразование начинается сразу же за предыдущим. Вывод АЦП из этого режима осуществляется установкой в 0 состояние разряда ADFR регистра управления-состояния ADCSR.
• Bit 7 – ADEN: ADC Enable
• Bit 6 – ADSC: ADC Start Conversion
• Bit 5 – ADFR: ADC Free Running Select
• Bit 4 – ADIF: ADC Interrupt Flag
• Bit 3 – ADIE: ADC Interrupt Enable
• Bits 2..0 – ADPS2..ADPS0: ADC Prescaler Select Bits
Лекция 11 23.11.2006.