Xreferat.com » Рефераты по информатике и программированию » Работа периферийных устройств

Работа периферийных устройств

Содержание


Введение

1. Параллельные порты ввода-вывода

2. Последовательный порт ввода-вывода SPI

3. Последовательный порт ввода-вывода UART

4. Последовательный порт ввода-вывода TWSI (I2C)

5. Таймеры-счетчики общего назначения

5.1 Таймер-счетчик типа А

5.2 Таймер-счетчик типа В

5.3 Таймер-счетчик типа С

5.4 Таймер-счетчик типа D

5.5 Таймер-счетчик типа Е

6. Сторожевой таймер

7. Аналого-цифровой преобразователь

8. Аналоговый компаратор

9. Программируемый аппаратный модулятор

10. Блок прерываний

Литература


Введение


В работе периферийных устройств участвуют регистры ввода-вывода. Работа периферийных устройств определяется состоянием разрядов регистров управления, а состояние периферийных устройств отражается состоянием разрядов регистров состояния. Имена и номера регистров ввода-вывода у микроконтроллеров разных типов указаны в приложении П4. Имена и номера разрядов регистров управления и разрядов регистров состояния приведена в приложении П5.

1. Параллельные порты ввода-вывода


Число параллельных портов ввода-вывода, суммарное число выводов портов и суммарное число выводов, выполняющих альтернативные функции, у микроконтроллеров разных типов указано в табл.1.1 в колонках Р, I/O и ALT соответственно.

В табл.1 приведены имена портов и указано число выводов (в числителе) и число выводов, выполняющих альтернативные функции (в знаменателе) для каждого порта в отдельности.

В состав порта РХ (X = А, В, С, D, Е) входят три регистра ввода-вывода с именами DDRX, PORTX и PINX. Регистр PINX не имеет аппаратной реализации. Это имя используется в командах, по которых выполняется чтение байтов на выводах порта.

Число разрядов в регистрах равно числу выводов порта.


Таблица 1

Тип МК Имя порта

PA PB PC PD PE PF
t11
6/6



t12
6/6



t15
6/6



2323
3/2



2343
5/3



1200
8/2
7/2

2313
8/3
7/7

t28 4/1 8/5*
8/0

4433
6/6 6/6 8/8

8515 8/8 8/8 8/8 8/7

8535 8/8 8/8 8/2 8/8

m163 8/8 8/8 8/4 8/8

m103 8/8 8/8 8/8* 8/7 8/8 8/8*
* - PC - только выходы, PB, PF - только входы

Состояние разряда DDRX. Y определяет направление передачи бита через вывод порта PX. Y. При DDRX. Y = 0 вывод PX. Y работает в режиме входа, при DDRX. Y = 1 - в режиме выхода.

В режиме входа состояние разряда PORTX. Y определяет состояние вывода PX. Y. При PORTX. Y = 0 вывод находится в высокоимпендансном состоянии (Z-состояние), при PORTX. Y = 1 вывод, порта через внутренний резистор с сопротивлением 30-120 кОм подключается к шине VCC. В режиме входа вывод PX. Y соединен с шиной данных ШД. Y.

Значение входного сигнала на отдельном выводе порта может быть определено с использованием команд условного перехода с мнемокодом SBIC PINX, Y (№ 113) или SBIS PINX, Y (№ 114). При одном значении сигнала выбирается одно продолжение программы, при другом значении сигнала - другое продолжение.

В режиме выхода разряд PORTX. Y определяет значение выходного сигнала на выводе PX. Y. При PORTX. Y = 0 выходной сигнал имеет низкий уровень напряжения (U0l), при PORTX. Y = 1 - высокий уровень напряжения (UOнI).

В табл.2 указано состояние вывода порта PX. Y при различных комбинациях состояний разрядов DDRX. Y и PORTX. Y.


Таблица 2

DORX. Y PORTX. Y PX. Y
0 0 Вход, (Z)
0 1 Вход, (R)
1 0 Выход, (U0L)
1 1 Выход, (UOH)

В статическом состоянии при низком уровне выходного сигнала ток нагрузки IOL должен быть не более, чем 20 мА, при высоком уровне сигнала ток нагрузки IOH должен быть не более, чем 3 мА. При этом суммарный ток нагрузки для всех выводов микроконтроллера должен быть не более, чем некоторое пороговое значение (200-400 мА для микроконтроллеров разных типов) и суммарный ток нагрузки для выводов микроконтроллера, расположенных на одной стороне корпуса микросхемы, также должен быть не более, чем некоторое пороговое значение (100-200 мА для микроконтроллеров разных типов).

Задание значения выходного сигнала на отдельных выводах порта выполняется с использованием команд с мнемокодами CBI PORTX, Y (№ 65) (для низкого уровня) и SBI PORTX, Y (№ 66) для высокого уровня.

При совместном использовании всех разрядов порта для приема и выдачи байтов используются команды с мнемокодами IN Rd, PINX (№ 60) и OUT PORTX, Rr (№ 61) соответственно.

Обращение к параллельному порт) ' для приема и выдачи байтов может быть выполнено с использованием команд с обращением по адресам в адресном пространстве SRAM (№№ 34-57). При этом в качестве адресов используются номера регистров ввода-вывода, увеличенные на $20.

При пуске и перезапуске микроконтроллера все разряды регистров DDRX и PORTX всех портов сбрасываются в нулевое состояние и выводы портов работают в режиме входов и находятся в Z состоянии.

Исключением является разряд PORTA.2 регистра PORTA в микроконтроллере типа t28, который устанавливается в единичное состояние.

В микроконтроллере тина m163 при установке в единичное состояние разряда PUD регистра SFIOR (№ $30) во всех разрядах всех портов разрывается цепь, связывающая вывод порта с шпион VCC через резистор. В микроконтроллере типа t15 разряд PUD входит в регистр MCUCR (№ $35).

В микроконтроллере типа t28 выводы порта РВ подключаются через резисторы к шине VCC при единичном состоянии разряда PLUPB регистра MCUCS.

2. Последовательный порт ввода-вывода SPI


Порт SPI входит в состав периферийных устройств микроконтроллеров типа 4433, 8515, 8535, ml63 и t10З.

Основным элементом порта SPI является восьмиразрядный реверсивный сдвигающий регистр, который используется для параллельного ввода из шипы данных микроконтроллера байта, предназначенного для выдачи: последовательной выдачи байта на выход микроконтроллера с одновременным последовательным вводом байта со входа микроконтроллера и параллельной выдачи введенного байта в буферный регистр для последующей передачи в шину данных микроконтроллера. Сдвигающий регистр и буферный регистр имеют одно имя - SPDR (№ $0F). Запись байта в сдвигающий регистр выполняется по команде OUT SPDR, RI, чтение байта из буферного регистра - по команде IN Rd, SPDR.

В состав порта SPI входят также регистр управления SPCR (№ $0D), регистр состояния SPSR (№ $0Е) и элементы, управляющие работой порта. Структурная схема порта SPI изображена.

Порт SPI переводится в рабочее состояние при установке в единичное состояние разряда SPE регистра SPCR. При этом выводы порта MOSI, MISO, SCK и SS подключаются к внешним выводам микроконтроллера в соответствии с табл.3.


Таблица 3

Выводы порта SPI Тип МК

4433 8515 8535 ГП163 m10З
MOSI РВЗ РВ5 РВ5 РВ5 РВ2
MISO РВ4 РВ6 РВ6 РВ6 РВЗ
SCK РВ5 РВ7 РВ7 РВ7 РВ1
SS РВ2 РВ4 РВ4 РВ4 РВО

Порт SPI может работать в режиме ведущего (master) или ведомого (slave). Выбор режима определяется состоянием разряда MSTR регистра SPCR. При MSTR = 1 порт работает в режиме ведущего. При этом вывод MOSI является выходом, вывод MISO - входом, вывод SCK - выходом. Функция вывода SS зависит от состояния разряда DDRB. X (X = 2, 4, 0) регистра DDRB. Если DDRB. X = 1 (вывод РВ. Х является выходом), вывод SS порта SPI не подключен к выводу РВ. Х порта РВ. Если DDRB. X = 0 (вывод РВ. Х является входом), значение сигнала на этом входе влияет на работу порта SPI. При единичном значении сигнала на этом входе порт работает в режиме ведущего, а при появлении нулевого значения сигнала он переводится в режим ведомого и для возвращения в режим ведущего после появления единичного значения сигнала на входе SS требуется вновь установить разряд MSTR регистра SPCR в единичное состояние.

В режиме ведущего обмен байтами начинается при записи байта в сдвигающий регистр SPDR (W). В схеме управления СУ1 вырабатывается серия из восьми импульсов, которая управляет сдвигом в регистре SPDR (W) и выдается на выход SCK для управления сдвигом в регистре ведомого порта.

Полярность импульсов определяется состоянием разряда CPOL регистра SPCR. При CPOL = 0 сигнал на выходе SCK в исходном состоянии имеет нулевое значение, импульс формируется при переходе сигнала к единичному значению. При CPOL=1 сигнал в исходном состоянии имеет единичное значение и импульс формируется при переходе сигнала к нулевому значению.

Направление сдвига в регистре и порядок следования битов на выходе MOSI определяется состоянием разряда DORD регистра SPCR. При DORD = 0 выдача байта начинается со старшего бита (D7), при DORD = 1 выдача начинается с младшего бита (DO). При выдаче каждого бита на выход MOSI соответствующий бит из ведомого порта поступает на вход MISO и вводится в сдвигающий регистр.

Серия из восьми импульсов в ведущем порте формируется из тактового сигнала СК путем деления частоты в пересчетной схеме ПС. Коэффициент деления К определяется комбинацией состояний разрядов SPR0 и SPR1 регистра SPCR в соответствии с табл.4. В микроконтроллере типа ml63 в регистре состояния SPSR есть дополнительный разряд SPI2X, при единичном состоянии которого скорость передачи увеличивается в два раза.


Таблица 4

SPR1 SPR0 к КГ
0 0 4 2
0 1 16 8
1 0 64 32
1 1 128 64

4 - в МК типа m163 при SPI2X = 1

При завершении выдачи/приема байта устанавливается в единичное состояние разряд SPIF регистра состояния SPSR и при единичном состоянии разряда SPIE регистра SPCR в блок прерываний поступает запрос прерывания SPI STC (SPI Serial Transfer Complete).

Разряд SPIF сбрасывается в нулевое состояние аппаратно при переходе к выполнению соответствующей прерывающей программы или при чтении регистра SPSR перед записью нового байта в регистр SPDR (W).

При записи нового байта в регистр SPDR (W) в процессе сдвига Ранее записанного байта устанавливается в единичное состояние разряд WCOL регистра SPSR (ошибка при вводе). Разряд WCOL сбрасывается в нулевое состояние при чтении регистра SPSR.

При MSTR = 0 порт работает в режиме ведомого. В этом случае вывод MOSI работает как вход, вывод MISO - как выход, выводы SСК и SS - как входы. Выводы порта подключаются к соответствующим выводам порта РВ при установке в единичное состояние разряда SPE регистра SPCR. Порт переходит в рабочее состояние при нулевом значении сигнала на входе SS.

При поступлении серии импульсов на вход SCK из регистра SPDR (W) на вывод MISO последовательно выводится байт, ранее записанный в этот регистр. Одновременно в регистр вводится байт, поступающий на вход MOSI. При завершении обмена байтами устанавливается в единичное состояние разряд SPIF регистра SPSR и при единичном состоянии разряда SPIE в регистре SPCR в блок прерываний поступает запрос прерывания SPI STC.

Состояние разрядов CPOL и DORD в регистре SPCR у ведомого порта должно совпадать с состоянием одноименных разрядов у ведущего порта. Состояние разрядов SPR0 и SPR1 не влияет на работу порта.

Состояние разряда СРНА определяет значение сигнала на выходе MISO при переходе порта в рабочее состояние (SS = 0) до и после обмена байтами. При СРНА = 0 при переходе порта в рабочее состояние па выходе MISO появляется значение бита, который будет выдаваться первым, а значение сигнала после выдачи восьмого бита является неопределенным. При СРНА= 1 значение сигнала на выходе MISO при переходе порта в активное состояние является неопределенным, а после передачи восьмого бита на выходе MISO сохраняется значение переданного бита.

При подключении к ведущему порту нескольких ведомых портов шины MOSI, MISO и SCK являются общими для всех портов, а выводы SS ведомых микроконтроллеров должны быть соединены со специальными выходами ведущего микроконтроллера с помощью отдельных шин. В качестве специальных выходов ведущего микроконтроллера могут использоваться любые выводы любых портов, не используемые в иных целях.

3. Последовательный порт ввода-вывода UART


Порт UART входит в состав периферийных устройств микроконтроллеров типа 2313, 4433,8515, 8535, ml63 и m10

Порт UART содержит передатчик, приемник, тактовый генератор и аппаратуру управления передачей и приемом. Передатчик получает байт из шины данных микроконтроллера и формирует и выдает последовательность битов (кадр.), которая кроме битов, составляющих байт (DO, D1,. ., D7), содержит стартовый бит (start), имеющий нулевое значение, и столовый бит (stop), имеющий единичное значение. Между старшим битом байта (D7) п стоповым битом может помещаться дополнительный бит (СВ).

Приемник выделяет стартовый бит, принимает кадр, формат которого (число битов) задан, расформировывает принятый кадр и подготавливает байт для выдачи в шипу данных микроконтроллера.

Тактовый генератор формирует сигнал, определяющий скорость передачи и приема битов и позволяющий выделять биты при приеме кадра.

В состав порта входят регистр данных передатчика UDR (Т), регистр Данных приемника UDR (R), регистр управления UCR или UCSRB (№ $0А), регистр состояния USR пли UCSRA (№ $0В), регистр задания скорости передачи/приема UBRR (№ $09) и другие элементы. Регистры Данных передатчика и приемника имеют один номер - $0С. При обращении для записи выбирается регистр UDR (T), при обращении Для чтения - регистр UDR (R).

Передатчик готов к работе при установке в единичное состояние разряда TXEN регистра управления UCR. При этом выход передатчика TXD подключается к выводу определенного порта микроконтроллера. Передача кадра начинается при загрузке байта в регистр UDR (T). Загрузку можно выполнять при единичном состоянии разряда UDRE регистра состояния USR. При сбросе микроконтроллера в исходное состояние устанавливается UDRE = 1.

Загруженный байт передается в сдвигающий регистр передатчика TSR и происходит выдача кадра на выход микроконтроллера TXD.

При нулевом состоянии разряда CHR9 регистра UCR формируется кадр из десяти битов. При CHR9 = 1 кадр содержит одиннадцать битов. Значение дополнительного бита в этом случае должно быть указано в разряде ТХВ8 регистра UCR.

Первый байт при загрузке немедленно передается в регистр TSR и разряд UDRE регистра USR сохраняет единичное состояние, что позволяет сразу после загрузки первого байта загружать в регистр UDR (T) второй байт. Второй и последующие байты сохраняются в регистре UDR (Т) до завершения выдачи из регистра TSR предыдущего кадра. При этом разряд UDRE регистра USR находится в нулевом состоянии и загрузка очередного байта в регистр UDR (T) запрещена.

При завершении выдачи кадра из регистра TSR и отсутствии очередного байта в регистре UDR (T) устанавливается в единичное состояние разряд ТХС регистра USR и при единичном состоянии разряда TXCIE регистра UCR в блок прерываний поступает запрос прерывания UART ТХС.

Разряд ТХС регистра USR сбрасывается в нулевое состояние аппаратно при переходе микроконтроллера к выполнению соответствующей прерывающей программы или программно при выполнении команды установка бита в единичное состояние.

При единичном состоянии разряда UDRE регистра USR и единичном состоянии разряда UDRIE регистра UCR в блок прерываний поступает запрос прерывания UART DRE. Разряд UDRE сбрасывается в нулевое состояние при записи байта в регистр UDR (T). Прерывающая программа, выполняемая по запросу прерывания UART DRE, должна содержать команду записи в регистр UDR (T) для прекращения действия этого запроса прерывания.

Приемник готов к работе при установке в единичное состояние разряда RXEN регистра UCR. При этом вход приемника RXD подключается к выводу определенного порта микроконтроллера. При обнаружении на входе RXD отрицательного фронта сигнала, приемник определяет уровень сигнала в момент времени, отстоящий от фронта на половину интервала, отводимого на передачу бита при заданной скорости передачи. При обнаружении нулевого уровня принимается решение о приеме стартового бита и далее определяются уровни сигнала в моменты времени, отстоящие друг от друга на интервал, отводимый на передачу бита. Получаемая последовательность значений вводится в сдвигающий регистр приемника RSR. Если принимается кадр из одиннадцати битов (CHR9 = 1), дополнительный бит принимается в Разряд RXB8 регистра UCR. Если на месте ожидаемого стопового бита сигнал имеет пулевое значение, устанавливается в единичное состояние Разряд FE регистра USR (ошибка формата). Разряд FE сбрасывается в нулевое состояние при появлении единичного значения стопового бита.

Принятый байт из регистра RSR переписывается в регистр UDR (R). При этом устанавливается в единичное состояние разряд RXC регистра USR и при единичном состоянии разряда RXCIE регистра UCR в блок прерываний поступает запрос прерывания UART RXC.

Разряд RXC регистра USR сбрасывается в нулевое состояние при чтении регистра UDR (R). Прерывающая программа, выполняемая по запросу прерывания UART RXC, должна содержать команду чтения из Регистра UDR для прекращения действия этого запроса. Если при завершении приема кадра принятый ранее байт не считан из регистра UDR (R), устанавливается в единичное состояние разряд OR регистра USR (состояние переполнения). Разряд OR сбрасывается в нулевое состояние при передаче байта из регистра RSR в регистр UDR (R).

Тактовый генератор BRG формирует сигнал, определяющий скорость передачи н приема битов и дополнительный сигнал, обеспечивающий выделение битов при приеме кадра. Скорость передачи и приема BR, бит/с, зависит от частоты тактового сигнала микроконтроллера FCK и числа (UBRR), двоичный код которого записан в регистре UBRR, и определяется по формуле:


Работа периферийных устройств


Для работы со стандартными скоростями приема-передачи (4800, 9600,14400, 19200, 28800, 38400, 57600, 76800 и 115200 бит/с) используются кварцевые резонаторы со специальными значениями резонансной частоты (3, 6864; 7,3728; 11,059 Мгц).

В порте UART микроконтроллеров типа 4433 и ml63 регистр управления вместо имени UCR имеет имя UCSRB, а регистр состояния вместо имени USR - имя UCSRA. Регистр UCSRA имеет дополнительный разряд МРСМ. При единичном состоянии разряда приемник принимает кадры, у которых дополнительный бит (СВ) имеет единичное значение и игнорирует кадры при СВ = 0. При нулевом состоянии разряда МРСМ принимаются кадры с любым значением дополнительного бита. Наличие разряда МРСМ позволяет организовать простейшую локальную сеть (мультипроцессорную систему), в которой имеется один ведущий контроллер и несколько ведомых. Каждому ведомому контроллеру присваивается определенный номер.

В исходном состоянии у всех ведомых контроллеров МРСМ = 1.

Ведущий контроллер передает кадр, в котором СВ = 1, а байт является номером ведомого котроллера, который должен принять данные из ведущего.

Все ведомые контроллеры принимают кадр. Контроллер, опознавший свой номер, сбрасывает разряд МРСМ в нулевое состояние. Далее ведущий контроллер передает кадры, в которых СВ = 0, а байты представляют собой данные для выбранного ведомого контроллера. Эти кадры принимаются только ведомым контроллером, у которого МРСМ = 0. При обнаружении кадра с СВ = 1 выбранный контроллер переводит разряд МРСМ в единичное состояние и переходит в исходное состояние.

В микроконтроллере типа ml63, кроме того, регистр UCSRA имеет дополнительный разряд U2X, а для задания скорости передачи используются два регистра - регистр UBRR (№$09) для задания младших восьми разрядов кода числа и регистр UBRRHI (№$20) для задания старших четырех разрядов кода числа. Скорость передачи определяется по формуле

где К = 16 при U2X = 0, К = 8 при U2X = 1.


Работа периферийных устройств


В табл.5. указаны выводы портов микроконтроллеров, используемые в качестве входа приемника (RXD) и выхода передатчика (TXD) у микроконтроллеров разных типов.


Таблица 5

Вывод

Тип мк

порта UART 2313 4433 8515 8535 m163 m10З
RXD TXD PD0 PD1 PD0 PD1 PD0 PD1 PD0 PD1 PD0 PD1 РЕО РЕ1

4. Последовательный порт ввода-вывода TWSI (I2C)


Порт TWSI входит в состав периферийных устройств микроконтроллера типа ml6

Через порт TWSI микроконтроллер подключается к двухпроводной шине IС.

Устройство может работать в качестве ведущего или ведомого. Статус микроконтроллера, подключенного к шине 1С, устанавливается программными средствами.

Линия SCL предназначена для передачи синхросигнала из веду цего Устройства в ведомое. Линия SDA совместно с линией SCL используется для передачи сигналов начала и конца обмена, адресных байтов и байтов данных и сигналов подтверждения приема байта. Линии SCL и SDA соединены с одноименными выводами подключенных устройств.

Кроме того, они через резисторы R1 и R2 подключены к шине VCC. При отсутствии обмена в линиях SCL и SDA устанавливается высокий уровень сигнала.

Ведущее устройство после перевода его в активное состояние дожидается освобождения шины от обмена между другими устройствами и формирует в шине посылку начала обмена {Start, ST), которая представлена переходом сигнала в линии SDA от высокого уровня к низкому уровню при высоком уровне сигнала в линии SCL.

После выдачи посылки ST в линии SCL устанавливается низкий уровень сигнала и далее формируется последовательность из девяти положительных импульсов. Установка требуемого значения бита в линии SDA производится при низком уровне сигнала в линии SCL. Передача байта начинается со старшего разряда.

Первым байтом, выдаваемом в шину ведущим устройством после выдачи посылки ST, является адресный байт. Старшие семь битов адресного байта представляют номер (адрес) ведомого устройства, с которым будет выполняться обмен, (А6,..., АО), а младший бит W/R определяет направление обмена. При W/R = 0 байты данных будут передаваться из ведущего устройства в ведомое, при W/R = 1 - в противоположном направлении. Ведомое устройство после получения восьмого бита устанавливает в линии SDA низкий уровень сигнала, что является подтверждением приема байта для ведущего устройства, (Acknowledge, ACK).

После адресного байта ведущее устройство передает (при W/R = 0) или принимает (при W/R =1) байты данных.

При передаче байта данных принимающее устройство после приема восьмого бита устанавливает в линии SDA низкий уровень сигнала (АСК), а передающее устройство при появлении девятого импульса опрашивает состояние линии SDA. Низкий уровень сигнала является подтверждением приема байта данных. При обнаружении высокого уровня подтверждения нет (No Acknowledge, NAC), что свидетельствует об отсутствии обмена или ошибке при передаче байта.

После успешной передачи байта данных возможны три варианта продолжения работы ведущего устройства:

1) передача следующего байта в том же направлении с участием того же ведомого устройства;

2) выбор другого ведомого устройства пли смена направления обмена или то и другое;

3) окончание обмена с освобождением линии.

В нервом случае ведущее устройство формирует последовательность из девяти импульсов и выполняется пересылка очередного байта данных. Во втором случае ведущее устройство формирует посылку ST и выдает новый адресный байт. В третьем случае ведущее устройство формирует посылку конца обмена (Stop, SP), которая представляется переходом сигнала в линии SDA от низкого уровня к высокому при высоком уровне сигнала в линии SCL.

Все ведомые устройства при обнаружении в шине посылки ST принимают адресный байт и сравнивают полученный адрес с собственным адресом, который хранится в одном из регистров порта. При совпадении адресов формируется посылка АСК и устройство переводится в режим ожидания очередной серии из девяти импульсов для приема или передачи байта данных в зависимости от значения бита W/R в принятом адресном байте.

Все перечисленные операции в ведомом устройстве выполняются аппаратно.

Порт TWSI у микроконтроллера типа ml63 содержит 5 регистров ввода-вывода:

■ регистр данных TWDR (№ $03);

■ регистр адреса TWAR (№ $02);

■ регистр состояния TWSR (№ $01);

■ регистр задания скорости передачи TWBR (№ $00);

■ регистр управления TWCR (№ $36).

Порт переводится в активное состояние при установке в единичное состояние разряда TWEN регистра TWCR. При этом выводы порта SCL и SDA подключаются к внешним выводам микроконтроллера PC0 и РС1 соответственно.

Порт начинает работать в качестве ведущего после установки в единичное состояние разряда TWSTA регистра TWCR.

При работе в качестве ведущего генератор G формирует импульсный сигнал, который через буферную схему I/OCL выдается в линию SCL. Скорость передачи битов определяется числом, код которого записан в регистре TWBR. Положение фронтов импульсов в импульсном сигнале связано с выполнением определенных операций в порте и может изменяться в некоторых пределах. Осредненное значение скорости передачи BR, бит/с, определяется по формуле

Работа периферийных устройств


где FCK - тактовая частота микроконтроллера; (TWBR) - число, код которого записан в регистр TWBR ( (TWBR) >7); tA - показатель, учитывающий растяжение некоторых интервалов между фронтами импульсов (tА = 200-600 нс).

При работе порта в качестве ведомого порядок его работы определяется импульсной последовательностью, которая через вывод SCL и буферную схему I/OCL поступает в схему управления СУ.

Регистр TWDR имеет цепи для сдвига кода влево. В него параллельно записываются байты, предназначенные для последовательного вывода в линию SDA через буферную схему I/ODA, и последовательно вводятся байты, поступающие из линии SDA через буферную схему I/ODA. импулсы сдвига поступают из схемы управления.

Регистр TWAR используется только при работе порта в качестве ведомого. Код, записанный в старших семи его разрядах, представляет собственный адрес микроконтроллера (А6,..., АО). Этот код сравнивается с помощью схемы сравнения СС с кодом в старших семи битах адресного байта, принятого в регистр TWDR.

Младший разряд TWGCE регистра TWAR разрешает прием байтов данных (при TWGCE = 1) после получения адресного байта с адресом общего вызова для всех ведомых микроконтроллеров ($00).

Регистр TWCR содержит разряды, определяющие работу схемы управления, (TWEA, TWSTA, TWSTO и TWEN), отражающие состояние порта (TWINT и TWWC) и разряд TWIE, разрешающий поступление запроса прерывания из порта в блок прерываний. Запрос прерывания TWSI поступает в блок прерываний при TWINT

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту
Нужна помощь в написании работы?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Пишем статьи РИНЦ, ВАК, Scopus. Помогаем в публикации. Правки вносим бесплатно.

Похожие рефераты: