- •Семейство микроконтроллеров 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
- •Источники запросов прерываний
- •Интерфейс внешней параллельной адресуемой магистрали
- •Таймерная подсистема
Отключение блока шим
В случае неисправности в системе очень важно мгновенно отключить генератор ШИМ с целью безопасности. Подача сигнала низкого уровня на вход PWMTRIP обеспечивает мгновенное, асинхронное (т.е. не связанное с тактированием процессора) отключение ШИМ контроллера. Все шесть выходов будут переведены в отключенное, т.е. в состояние "высокого" логического уровня. Кроме того, импульсы PWMSYNC будут запрещены. На входе PWMTRIP имеется внутренний притягивающий к "земле" резистор, так что если этот вход оказывается отключенным, блок ШИМ отключается. Состояние входа PWMTRIP может быть считано процессором с помощью разряда 3 регистра PWMSTA.
При появлении сигнала отключения ШИМ генерируется прерывание PWMTRIP, а внутреннее тактирование блока генерации ШИМ будет остановлено. После отключения ШИМ генерация может быть снова запущена (например, в подпрограмме обработки прерывания PWMTRIP) путем программирования всех регистров PWMDAT0, PWMCH0, PWMCH1 и PWMCH2. Если причина сбоя устранена, и вход PWMTRIP переведен в высокий логический уровень, внутреннее тактирование генератора ШИМ восстанавливается и новые величины длительности импульсов принимаются блоком генерации со следующим импульсом PWMSYNC.
Следует отметить, что прерывание PWMTRIP доступно только в IRQ, а прерывание PWMSYNC доступно только в FIQ. Оба прерывания используют один и тот же бит в контроллере прерываний. Поэтому, только одно из прерываний может обрабатываться в данный момент. Смотри раздел Системы Прерываний для рассмотрения деталей.
Портыдискретного параллельного ввода/вывода
(Описание в ТО, стр.63)
Микроконтроллеры ADuC7019/.../7029 имеют до 40 двунаправленных выводов (в англоязычной терминологии – GPIO, GeneralPurposeInput/Output). Выводы объединены в пять байтовых (8‑битных) портов: P0...P4. В микросхемах семейства количество линий ввода/вывода для различных моделей семейства 70xx различно, может составлять от 13 до 40 линий и указано в ТО, стр.95, табл. ORDERING GUIDE
Поскольку младшие модели семейства упакованы в корпуса с 40 либо 64 выводами, некоторые порты в этих моделях содержат менее чем 8 выводов.
Следует заметить, чтофактическое количество выводов, которые можно использовать для параллельного дискретного ввода-вывода, в реальных микросхемахотличается от указанного в ТО, стр.95, и в таблице приведено в отдельном столбце. Причины, по которым некоторые выводы не учтены в оригинальных описаниях, автору пока неизвестны.
Некоторые выводы параллельных портов задействованы для специальных целей на стартовом этапе: во время формирования сигнала Reset, а также при использовании отладочного интерфейса JTAG. Эти выводы в табл. ??? отмечены в отдельном столбце.
Все выводы параллельных портов допускают подачу входных сигналов от логических микросхем с 5-вольтовым питанием.
Все выводыпараллельных портов мультиплексированы, т.е.помимо ввода-вывода дискретных сигналовмогут использоваться другими внутрикристальными подсистемами (см. табл. ??? описания функций выводов параллельных портов).
С каждым (байтовым) портом ввода-вывода связан внутренний (байтовый) регистр данных
Все выводы GPIO имеют внутренний, подтягивающий к уровню «1» pull-up резистор.В фирменном техническом описании указывается, что величина этого резистора составляет около 100кОм. Реально этот «резистор» ведет себя как неидеальный генератор тока, величина которого при нулевом напряжении на входе порта составляет около 30 мА, слабо уменьшается при возрастании входного напряжения до 1,5...2 В, а при дальнейшем возрастании напряжения ток быстро уменьшается до нуля. Так что в качестве резистора там, скорее всего используется «полуоткрытый» полевой транзистор. Подтягивающие резисторы выводов P0[7:0] и P1[7:0] могут быть программно отключены (см. далее), в остальных портах подтягивающие резисторы отключить нельзя.
Каждый порт управляется четырьмя периферийными регистрами:GPxCON, GPxDAT, GPxSET, GPxCLR, для отключения pull-up резисторов порты P0 и P1 имеют пятый периферийный регистр PxPAR.(Здесь и далее x представляет номер порта от 0 до 4)
1) GPxCON: 32-битовый регистр управления порта х. управляет функцией каждого вывода порта х. В этом регистре восемь двухбитовых полей (два младших бита каждой тетрады) по отдельности задают функцию каждого вывода порта, т.е. биты 1:0 задают функцию вывода Px.0, биты 5:4 – функцию вывода Px.1 и т.д. Один из четырех кодов конфигурации 00, 01, 10, 11 может быть задан индивидуальнодля каждого вывода. Соответствие между кодом конфигурации и функцией вывода дано в табл.???. Код конфигурации 00 соответствует функции параллельного ввода
2) GPxDAT: 32-битовый регистр данных порта х. ‑конфигурирует направление выводов порта х, ‑устанавливает выходной уровень, если вывод GPIO сконфигурирован на выход, ‑принимает и сохраняет уровень входного сигнала, если вывод GPIO сконфигурирован на вход.
Регистр содержит четыре восьмибитовых поля, используемых независимо.
GPxDAT: |
31 24 |
23 16 |
15 8 |
7 0 |
Функция: |
Направление |
Запись в регистр |
Сост. после сброса |
Сигналы на выводах |
Выводы: |
7 6 5 4 3 2 1 0 |
7 6 5 4 3 2 1 0 |
7 6 5 4 3 2 1 0 |
7 6 5 4 3 2 1 0 |
Направление (Direction)–8-битовое полеGPxDAT[31:24] задает направление передачи соответственно для выводов 7…0 порта с номеромx,запись «1» конфигурирует соответствующий вывод как выход, а запись «0» ‑ как вход. Это битовое поле доступно как по записи так и почтению.
Регистр данных(Output)–8-битовое полеGPxDAT[23:16]позволяет задать содержимое внутреннего регистра данных порта, а если некоторые из выводов порта сконфигурированы на выход, то и выходные сигналы на соответствующих контактах. Поле доступно как по записи, так и по чтению. Заметим, что если выводы сконфигурированы в режиме GPIOкак входы, либо выбран не режим GPIO, то содержимое внутреннего регистра порта не влияет на состояние внешних выводов.
Состояние после сброса (Reset): биты GPxDAT[15:8] отражают состояние сигналов на выводах порта после сброса, это поле доступно только по чтению.
Сигналы на выводах (Input)биты GPxDAT[7:0], доступны только по чтению и отражают логические уровни на внешних выводах, ассоциированных с портом; эти сигналы зависят от следующих факторов: от режима порта, от наличия/активации внутренних pull-upрезисторов, от состояния внешних цепей, подключённых к выводам.Следует принимать во внимание, что состояния, возвращаемые при чтении поля GPxDAT[07:00] возвращают состояние на внешнем выводе и в случае, когда вывод сконфигурирован не для параллельного ввода-вывода, а используется другой внутрикристальной подсистемой.??? проверить
3) GPxSET: запись в этот регистр константы, содержащей единицы в отдельных позициях поля [23:16] приводит к установке в 1 соответствующих битов внутреннего регистра порта, оставляя прочие биты внутреннего регистра неизменными. Т.е.это эквивалентно операции логического ИЛИ записываемой константы на содержимое внутреннего регистра с последующей записью результата назад во внутренний регистр.
4) GPxCLR: запись в этот регистр константы, содержащей единицы в отдельных позициях поля [23:16] приводит к сбросу в 0 соответствующих битов внутреннего регистра порта, оставляя прочие биты внутреннего регистра неизменными.
Подтягивающие резисторы для выводов P0.0, P0.(4:7) а также для всех выводов P1 можно отключить программно, для этого служат два периферийных регистраGP0PARи GP1PAR.Запись единиц в битыGP0PAR[0], GP0PAR[4], GP0PAR[8],... GP0PAR[28] отключает pull-upрезисторы соответственно в 0, 1,...7 выводах порта.
(см. ??? в описании Rev.0 еще и GP3PAR). Изменение содержимого регистров GPxDAT следует выполнять только после изменений в GPxPAR. (а что будет, если изменить PAR, а DATне подтверждать???)
Нагрузочная способность выводов параллельных портовсоставляет 1.6 мА,при этом указанное значение тока допустимо одновременно не более чем для 20 выводов.(???непонятно, что остальные, обычно приводят суммарный ток всех выводов???)
Следует учитывать, что во время процедуры начального сброса состояние вывода P0.6 отличается от состояния по
Note that the kernel changes P0.6 from its default configuration at reset (MRST) to GPIO mode. If MRST is used for external circuitry, an external pull-up resistor should be used to ensurethat the level on P0.6 does not drop when the kernel switches mode. Otherwise, P0.6 goes low for the reset period. For example, if MRST is required for power down, it can be reconfigured in GP0CON MMR.
В ТО в табл.стр.61 и в табл.стр.37 для GP0CON дано значение после RESET 0x00000000, что не соответствует предыдущему абзацу. Симулятор показывает после RESET состояние GP0CON=0x01001000 – вывод P0.3-TRST, P0.6-MRST. Как на реальном устройстве, еще не смотрел.)
Когда микроконтроллер ADuC7019-29 входит в энергосберегающий режим (power-saving), то выводы портов сохраняют своё состояние.
В таблице приведены альтернативные функции выводов параллельных портов, указаны для некоторых контактов особые функции, они описаны далее(проверить!!!), указано, какие выводы каких портов присутствуют в различных моделях МК,
Таблица
Порт |
Конт |
Код конфигурации |
Особые функции |
7019, 7020 |
7021 |
7022 |
7024, 7025 |
7026, 7027 |
7028 |
|
|||
00 |
01 |
10 |
11 |
||||||||||
0 |
P0.0 |
GPIO |
CMP |
MS0 |
PLAI[7] |
Boot Mode1) |
10 |
10 |
09 |
15 |
20 |
G1 |
|
P0.1 |
GPIO |
PWM2H |
BLE |
‑ |
|
‑ |
‑ |
‑ |
‑ |
16 |
‑ |
|
|
P0.2 |
GPIO |
PWM2L |
BHE |
‑ |
|
‑ |
‑ |
‑ |
‑ |
24 |
‑ |
|
|
P0.3 |
GPIO |
TRST |
A16 |
ADCBUSY |
|
18 |
18 |
17 |
27 |
34 |
G5 |
|
|
P0.4 |
GPIO/IRQ0 |
PWMTRIP |
MS1 |
PLAO[1] |
IRQ02) |
20 |
20 |
19 |
31 |
40 |
H7 |
|
|
P0.5 |
GPIO/IRQ1 |
ADCBUSY |
MS2 |
PLAO[2] |
IRQ12) |
21 |
21 |
20 |
32 |
41 |
H8 |
|
|
P0.6 |
GPIO/T1 |
MRST |
‑ |
PLAO[3] |
Вход T13) |
11 |
11 |
10 |
16 |
21 |
H1 |
|
|
P0.7 |
GPIO |
ECLK/XCLK1 |
SIN |
PLAO[4] |
Int/ExtClck4) |
23 |
23 |
22 |
34 |
43 |
F7 |
|
|
1 |
P1.0 |
GPIO/T1 |
SIN |
SCL0 |
PLAI[0] |
Вход T13) |
33 |
33 |
32 |
50 |
62 |
B6 |
|
P1.1 |
GPIO |
SOUT |
SDA0 |
PLAI[1] |
|
32 |
32 |
31 |
49 |
61 |
A7 |
|
|
P1.2 |
GPIO |
RTS |
SCL1 |
PLAI[2] |
|
31 |
31 |
30 |
48 |
60 |
A8 |
|
|
P1.3 |
GPIO |
CTS |
SDA1 |
PLAI[3] |
|
30 |
30 |
29 |
47 |
59 |
B8 |
|
|
P1.4 |
GPIO/IRQ2 |
RI |
CLK |
PLAI[4] |
IRQ22) |
29 |
29 |
28 |
46 |
58 |
B7 |
|
|
P1.5 |
GPIO/IRQ3 |
DCD |
MISO |
PLAI[5] |
IRQ32) |
28 |
28 |
27 |
45 |
57 |
E6 |
|
|
P1.6 |
GPIO |
DSR |
MOSI |
PLAI[6] |
|
27 |
27 |
26 |
40 |
52 |
D7 |
|
|
P1.7 |
GPIO |
DTR |
CSL |
PLAO[0] |
|
26 |
26 |
25 |
39 |
51 |
D6 |
|
|
2 |
P2.0 |
GPIO |
#CONVSTART |
SOUT |
PLAO[5] |
Пуск АЦП5) |
22 |
22 |
21 |
33 |
42 |
G8 |
|
P2.1 |
GPIO |
PWM0H |
#WS |
PLAO[6] |
|
‑ |
‑ |
‑ |
‑ |
49 |
‑ |
|
|
P2.2 |
GPIO |
PWM0L |
#RS |
PLAO[7] |
|
‑ |
‑ |
‑ |
‑ |
50 |
‑ |
|
|
P2.3 |
GPIO |
‑ |
AE |
‑ |
|
‑ |
‑ |
‑ |
‑ |
17 |
‑ |
|
|
P2.4 |
GPIO |
PWM0H |
MS0 |
‑ |
|
‑ |
‑ |
‑ |
‑ |
33 |
‑ |
|
|
P2.5 |
GPIO |
PWM0L |
MS1 |
‑ |
|
‑ |
‑ |
‑ |
‑ |
35 |
‑ |
|
|
P2.6 |
GPIO |
PWM1H |
MS2 |
‑ |
|
‑ |
‑ |
‑ |
‑ |
36 |
‑ |
|
|
P2.7 |
GPIO |
PWM1L |
MS3 |
‑ |
|
‑ |
‑ |
‑ |
‑ |
48 |
‑ |
|
|
3 |
P3.0 |
GPIO |
PWM0H |
AD0 |
PLAI[8] |
|
‑ |
‑ |
‑ |
23 |
29 |
E4 |
|
P3.1 |
GPIO |
PWM0L |
AD1 |
PLAI[9] |
|
‑ |
‑ |
‑ |
24 |
30 |
F4 |
|
|
P3.2 |
GPIO |
PWM1H |
AD2 |
PLAI[10] |
|
‑ |
‑ |
‑ |
25 |
31 |
E5 |
|
|
P3.3 |
GPIO |
PWM1L |
AD3 |
PLAI[11] |
|
‑ |
‑ |
‑ |
26 |
32 |
F5 |
|
|
P3.4 |
GPIO |
PWM2H |
AD4 |
PLAI[12] |
|
‑ |
‑ |
‑ |
29 |
38 |
G6 |
|
|
P3.5 |
GPIO |
PWM2L |
AD5 |
PLAI[13] |
|
‑ |
‑ |
‑ |
30 |
39 |
G7 |
|
|
P3.6 |
GPIO |
PWMTRIP |
AD6 |
PLAI[14] |
|
‑ |
‑ |
‑ |
37 |
46 |
D5 |
|
|
P3.7 |
GPIO |
PWMSINC |
AD7 |
PLAI[15] |
|
‑ |
‑ |
‑ |
38 |
47 |
E7 |
|
|
4 |
P4.0 |
GPIO |
‑ |
AD8 |
PLAO[8] |
|
‑ |
‑ |
‑ |
43 |
55 |
C6 |
|
P4.1 |
GPIO |
‑ |
AD9 |
PLAO[9] |
|
‑ |
‑ |
‑ |
44 |
56 |
C7 |
|
|
P4.2 |
GPIO |
‑ |
AD10 |
PLAO[10] |
|
34 |
‑ |
‑ |
51 |
63 |
A6 |
|
|
P4.3 |
GPIO |
‑ |
AD11 |
PLAO[11] |
|
‑ |
‑ |
‑ |
52 |
64 |
C5 |
|
|
P4.4 |
GPIO |
‑ |
AD12 |
PLAO[12] |
|
‑ |
‑ |
‑ |
53 |
65 |
D4 |
|
|
P4.5 |
GPIO |
‑ |
AD13 |
PLAO[13] |
|
‑ |
‑ |
‑ |
54 |
66 |
C4 |
|
|
P4.6 |
GPIO |
‑ |
AD14 |
PLAO[14] |
|
‑ |
‑ |
‑ |
13 |
18 |
F1 |
|
|
P4.7 |
GPIO |
‑ |
AD15 |
PLAO[15] |
|
‑ |
‑ |
‑ |
14 |
19 |
G2 |
|
|
Всего выводов параллельных портов: |
16 |
15 |
15 |
31 |
40 |
31 |
|
1) Если при включении питания или при действии внешнего сигнала Reset на выводе P0.0 присутствует сигнал низкого уровня (логического нуля), то микросхема входит в режим загрузки программы через асинхронный последовательный интерфейс. Если же во время действия сигнала Reset на выводе P0.0 присутствует логическая 1, то начинается выполнение программы из внутрикристальнойFlash-памяти. Для задания уровня лог.1 производитель рекомендует использовать подтягивающий резистор величиной 1 кОм.
2)Входы запроса прерывания P0.4, P0.5, P1.4, P1.5 активны, если для этих выводов задан режим параллельного ввода-вывода. Следует учитывать, что активный уровень сигнала запроса прерывания – высокий, на выводе, сконфигурированном как вход, может возникнуть из-за наличия внутренних pull‑up резисторов, а также из-за того, что вывод сконфигурирован как выход, и в разряде внутреннего регистра записана 1.
3)Входы P0.6 или P1.0 могут быть использованы как источник счетных импульсов для Таймера1 только если вывод сконфигурирован ??? для параллельного ввода-вывода (???).
4)Вывод P0.7 может быть использован при коде конфигурации 01 либо для вывода внутренней тактовой частоты на внешние цифровые элементы, либо для подачи внешней тактовой частоты для тактирования ядра. Для переключения вывода в эти режимы следует использовать указания, данные на стр.???
5)Вывод P2.0 используется как вход запуска АЦП внешним логическим сигналом. В версиях кристаллов с идентификаторами I31 или I51 (третья строка маркировки микросхемы) этот вывод активен (низким уровнем вызывает запуск АЦП) при любых настройках как регистра конфигурации порта так и режима запуска АЦП, если только не запрещена работа АЦП битом ADCCON. Это указано в документе S05883-0-8/07(D) SiliconAnomalyList, ADuC7019/ADuC702x.