- •Семейство микроконтроллеров aDuC70xxс прецизионной подсистемой аналогоцифрового преобразования.
- •Общее описание
- •Терминология и сокращения
- •Дифференциальная нелинейность
- •Погрешность смещения
- •Погрешность усиления
- •Режим 16-битных команд Thumb (t)
- •Умножение 32-разрядных чисел (m)
- •Встроенный отладчик EmbeddedIce (I)
- •Исключения
- •Регистры arm
- •Время обработки прерывания
- •Организация памятив aDuC70xx
- •Память Flash/ее
- •Память sram
- •Регистры внутрикристальных периферийных устройств.
- •Функция преобразования ацп
- •Тактирование
- •Особенности ацп в микросхеме aDuC7019
- •Интерфейс ацп с регистрами mmrs
- •Дифференциальный режим
- •Псевдодифференциальный режим
- •Однополярный режим
- •Структура аналогового входа
- •Подача сигнала на аналоговые входы
- •Калибровка ацп
- •Датчик температуры
- •Источник опорного напряжения
- •Энергонезависимая память flash/ee
- •Надежность Flash/ee памяти
- •Программирование флэш-памяти через последовательные интерфейсы.
- •Программирование флэш-памяти через интерфейс jtag
- •Интерфейс управления памятью Flash /ee
- •Защита памяти flash/ee
- •Существует два уровня защиты:
- •Последовательность записи ключа такова:
- •Интерфейс управления памятью Flash /ee
- •Подробное описание регистров интерфейса управления памятью Flash/ee
- •Время выполнения программы из памяти sram и из флэш-памяти
- •Отображение блоков памяти в адресное пространство
- •Причины формирования сигнала начального сброса reseTи действие этого сигнала
- •Прочая аналоговая периферия
- •Использование цап
- •Монитор источника питания
- •Компаратор
- •Генератор и схема фапч Система тактирования микроконтроллера
- •Использование внешнего кварцевого резонатора
- •Переход в режим тактирования от внешнего генератора
- •Система управления питанием
- •Интерфейс системы управления питанием и тактированием
- •Цифровая периферия Трехфазный широтно-импульсный модулятор (шим)
- •Модели в 40-выводных корпусах (aDuC7020, 21, 22)
- •Описание блока шим
- •Отключение блока шим
- •Портыдискретного параллельного ввода/вывода
- •Последовательные интерфейсы в микросистемах aDuC70xx
- •Мультиплексирование выводовпоследовательныхинтерфейсов
- •Последовательный интерфейс uart
- •Структурная схема передатчика и приёмника
- •Набор линий интерфейса и протокол канального уровня
- •Контрольный бит и спобобы его использования
- •Задание скорости передачи (частоты следования битовых интерваловBaudrate) в aDuC70xx
- •Дробный делитель (FractionalDivider)
- •Основные регистры сф, ассоциированные с подсистемой uart
- •Сетевой режим с аппаратной поддержкой адресации.
- •Последовательный синхронный периферийный интерфейс spi.
- •Последовательные интерфейсы i2c Блок программируемой логики
- •Подсистема прерываний микрокомпьютера aDuC70xx
- •Источники запросов прерываний
- •Интерфейс внешней параллельной адресуемой магистрали
- •Таймерная подсистема
Последовательный синхронный периферийный интерфейс spi.
В микросистеме ADuC702x аппаратно реализован синхронный последовательный периферийный интерфейс SPI. SPI является промышленнымстандартом, он позволяет одновременно синхронно передавать и принимать 8-битные данные, т.е. обеспечивать полнодуплексный режим со скоростью передачи до 3.48 Мбит в секунду, как показано в табл ???. Интерфейс SPI не работоспособен в режиме ведущего (master) при настройках делителя тактовой частоты ядра (CD) POWCON[2:0] = 6 или 7. Порт SPI может быть сконфигурирован для работы в режиме ведущего или ведомого (master/slave) и обычно использует четыре линии: MISO, MOSI, SCL, and#CS.
Синхронный последовательный интерфейс SPI в основном варианте предназначен для связи двух устройств. Основной узел синхронного последовательного интерфейса это пара сдвиговых регистров, каждый из которых находится в одном из двух связанных устройств. Оба регистра тактируются одной и той же последовательностью синхроимпульсов, которые формирует единственный генератор, находящийся в одном из связанных устройств. Устройство, формирующее тактовые импульсы, называют ведущим (master). Другое устройство называют ведомым (slave).
Для запуска передачи ведущее устройство должно поместить передаваемый байт в буферный регистр своего передатчика. Немедленно запустится генератор тактовых импульсов, которыйсформирует пакет из восьми импульсов.Под их воздействием содержимое сдвигового регистра «мастера» передается в «slave» и одновременно в обратную сторону.
Перевод фрагмента из описания SPIв дата-шите 68hc11a8
==== Начало фрагмента =======
Формат передачи при CPHA=0
...Выводы MISOи MOSIна masterи на slaveсоединены «напрямую», поэтому диаграмма может интерпретироваться как для master так и для slave. ... Сигнал SS# - входной для slave, вывод SS для master не показан, но предполагается, что он не используется. ...
Если CPHA= 0, сигнал SS#должен сниматься и вновь становиться активным между передачами отдельных байтов (сдвиг в регистрах происходит по окончанию тактового импульса – апн). Если при этом slave производит запись в регистр данных SPDR в то время как SS# = 0, будет сформирован сигнал ошибки write-collision.
Если CPHA =1, сигнал SS# может оставаться активным (низким) между передачами отдельных байтов, например, его можно соединить с «землей» напостоянно. ...(сдвиг в регистрах происходит по началу тактового импульса ‑апн)
Основной элемент интерфейса SPIэто сдвиговый регистр и буферный регистр чтения. Иными словами, система single-buffered в направлении передачи и double-buffered в направлении приема. Это означает, что новый байт можно поместить в SPI-передатчик лишь после окончания сдвига предыдущего байта, в то время как после приема байта, он автоматически копируется в буферный регистр чтения, и сдвиговый регистр оказывается свободен для приема следующего байта. Принятый байт следует считать из буферного регистра до окончания приема следующего байта, иначе будет зарегистрирована ошибка overrunerror. Сдвиговый регистр (по записи) и буфер приемника (по чтению) «видны» программисту через один и тот же адрес. ....
Вывод SS# ведет себя по-разному на master и на slave. На slave этот вывод является входом, предназначенным для активации интерфейса SPI (разрешения обмена). Если SS# на slave неактивен, то slave игнорирует изменения сигналов на входах SPI и держит выход MISOв высокоимпедансном состоянии. На устройстве master вывод SS# может использоваться как error-detection вход (для конфигурации multi-master), либо как GP-выход, не связанный с SPI.
Если устройство находится в режиме master, и на входе SS# появляется (извне) сигнал 0 (другое устройство пытается войти в режим master) – это немедленно выявляется схемотехникой и выводит устройства из режима master, предотвращая возможное повреждение выходов из-за электрической коллизии. Для этого выводы порта D должны быть сконфигурированы в режим open-drain (режим wiredORDWOM)и должен использоваться внешний pull-up резистор.Это свойство позволяет использовать и другие «необычные» конфигурации, например, когда выводы MISOи MOSI соединены вместе и образуют однопроводную двунаправленную линию данных.
----------------- Конец фрагмента --------------------------------------------------------------------
SPITX – регистр-буфер передачи.
Доступен только по записи. Запись байта в этот регистр вызывает немедленное его копирование в сдвиговый регистр и начало передачи, т.е. запускает генератор тактовой частоты. Буфер передачи после записи первого байта немедленно освобождается, позволяя тут же записать второй байт.
SPIRX– регистр-буфер приемника.
Доступен только по чтению. По окончании передачи принятый байт копируется в буфер приемника, позволяя программе прочитать принятый байт без спешки.
Регистр SPICON – управляющий регистр порта SPI (два байта).
Бит |
Название |
Назначение |
15:13 |
Не используются |
|
12 |
Непрерывная передача |
0 – после передачи каждого байта сигнал SS снимается на время одного тактового периода, даже если следующий байт записывается в буфер передатчика до окончания передачи предыдущего. 1 – при записи следующего байта в буфер передатчика до окончания передачи предыдущего, сигнал SSсохраняет состояние Low |
11 |
Замкнуть выход на вход (тестовый реж.) |
Если 1 – выход передатчика замыкается на вход приемника, позволяет протестировать правильность функционирования |
10 |
Разрешение выхода данных ведомого. |
Если 1 – разрешается выходной сигнал данных в режиме ведомого. |
9 |
Разрешение выхода сигнала SS на ведущем. |
Если 0, то при передаче автоматически формируется сигнал SS, если 1, то линия SSв состоянии High. |
8 |
Разрешение замены данных в SPIRX. |
Если 1, то приходящий байт заменяет ранее принятый (но не считанный), если 0 – принятый байт теряется. |
7 |
Режим работы SPITX при запуске от SPIRX |
Если 1, то передается нулевой байт. Если 0, то повторяется передача предыдущего байта. |
6 |
Выбор режима запуска и прерывания. |
Если 1 – передача запускается записью в регистр SPITX, иначе ‑ запуск при считывании из SPIRX. |
5 |
Порядок передачи битов |
Если 1 – младшие биты вперед, иначе – старшие биты вперед. |
4 |
Не используется |
|
3 |
Полярность тактирования |
Если 1 – уровень тактирования в паузе между пакетами высокий, иначе – низкий. |
2 |
Фаза тактирования |
Если 1 – тактовый импульс в начале битового интервала, иначе – в конце. |
1 |
Режим ведущего/ведомого |
Если 1 – SPIв режиме ведущего, иначе – в режиме ведомого. |
0 |
Разрешение SPI |
Если 1 – подсистема SPIвключена, иначе выключена. |
Регистр SPISTA– состояния последовательного синхронного интерфейса (один байт)
Бит |
|
Описание |
7:6 |
|
Резервировано |
5 |
SRxOvf |
Флаг переполнения буфера приемникаSPIRX– следующий байт принят до того, как был прочитан предыдущий. Флаг сбрасывается при чтении SPIRX. Бит SPICON.8 определяет, который байт будет потерян. |
4 |
SRxIrq |
Флаг запроса прерывания от приемника SPI. Устанавливается, если установлен хотя бы один из битов 3 или 5. Сбрасывается при чтении регистра SPIRX. |
3 |
SRxFul |
Флаг наличия нового байта в SPIRX. Устанавливается по окончанию приема байта. Сбрасывается при чтении регистра SPIRX. |
2 |
STxEmp |
1 – буфер передатчика пуст. Бит сбрасывается при записи в буфер передатчика SPI. Устанавливается в режиме запуска чтением регистра данных, в том случае, если перед этим в буфер передатчика не были записаны данные. |
1 |
STxIrq |
Бит запроса преывания от передатчика SPI. Устанавливается, если бит0=0 или бит2=1 |
0 |
STxIdle |
Флаг установлен в 1, пока идет передача. Сбрасывается в 0 по окончании передачи. Нулевое состояние этого флага сигнализирует, что передавать нечего. |
Зависимость флагов от состояний регистров данных.
SRxOvf 1<<5 // 1 - переполнения приемника
SRxIrq 1<<4 // Флаг запроса прерывания от SPIRX
SRxFul 1<<3 // 1 - данные готовы
STxEmp 1<<2 // 1 - Буфер TX свободен
STxIrq 1<<1 // Флаг запроса прерывания от SPITX
STxIdle 1<<0 // 1 - идет сдвиг