F20-23 (1041603), страница 14
Текст из файла (страница 14)
AMX0CF: Регистр конфигурации AMUX0 (C8051F022/3)R/WБит 7R/W-R/W-R/W-R/WAIN67ICR/WAIN45ICБит 6Бит 5Бит 4Бит 3Бит 2R/WAIN23ICБит 1R/WAIN01ICБит 0Значениепри сбросе:00000000SFR Адрес:0xBAБиты 7-4: Не используются: читаются как 0000b.Бит 3: AIN67IC: Бит конфигурации пары входов AIN6, AIN70: AIN6 и AIN7 – независимые одиночные входы1: AIN6 и AIN7 – пара дифференциальных входов (‘+’ и ‘-’ соответственно)Бит 2: AIN45IC: Бит конфигурации пары входов AIN4, AIN50: AIN4 и AIN5 – независимые одиночные входы1: AIN4 и AIN5 – пара дифференциальных входов (‘+’ и ‘-’ соответственно)Бит 1: AIN23IC: Бит конфигурации пары входов AIN2, AIN30: AIN2 и AIN3 – независимые одиночные входы1: AIN2 и AIN3 – пара дифференциальных входов (‘+’ и ‘-’ соответственно)Бит 0: AIN01IC: Бит конфигурации пары входов AIN0, AIN10: AIN0 и AIN1 – независимые одиночные входы1: AIN0 и AIN1 – пара дифференциальных входов (‘+’ и ‘-’ соответственно)Примечание: Для каналов, настроенных как дифференциальные, слово данных АЦПпредставляет собой число в дополнительном формате.63Ред.
1.4C8051F020/1/2/3Рисунок 6.6. AMX0SL: Регистр выбора канала AMUX0 (C8051F022/3)R/W-R/W-Бит 7Бит 6R/W-R/W-Бит 5Бит 4R/WR/WR/WR/WAMX0AD3 AMX0AD2 AMX0AD1 AMX0AD0Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000SFR Адрес:0xBBБиты 7-4: Не используются: читаются как 0000b.Биты 3-0: AMX0AD3-0: Биты адреса AMUX00000-1111b: Каналы АЦП выбираются в соответствии со следующей таблицей:Биты 3-0 регистра AMX0CFБиты 3-0 регистра AMX0AD000000010010001101000101011001110000AIN0AIN1AIN2AIN3AIN4AIN5AIN6AIN70001+(AIN0)-(AIN1)AIN2AIN3AIN4AIN5AIN6AIN70010AIN0+(AIN2)-(AIN3)AIN4AIN5AIN6AIN70011+(AIN0)-(AIN1)+(AIN2)-(AIN3)AIN4AIN5AIN6AIN70100AIN00101+(AIN0)-(AIN1)0110AIN00111+(AIN0)-(AIN1)1000AIN01001+(AIN0)-(AIN1)1010AIN01011+(AIN0)-(AIN1)1100AIN01101+(AIN0)-(AIN1)1110AIN01111+(AIN0)-(AIN1)AIN1AIN1AIN1AIN1AIN1AIN1AIN1AIN2AIN3+(AIN4)-(AIN5)AIN6AIN7AIN2AIN3+(AIN4)-(AIN5)AIN6AIN7+(AIN2)-(AIN3)+(AIN4)-(AIN5)AIN6AIN7+(AIN2)-(AIN3)+(AIN4)-(AIN5)AIN6AIN7AIN2AIN3AIN4AIN5+(AIN6)-(AIN7)AIN2AIN3AIN4AIN5+(AIN6)-(AIN7)+(AIN2)-(AIN3)AIN4AIN5+(AIN6)-(AIN7)+(AIN2)-(AIN3)AIN4AIN5+(AIN6)-(AIN7)AIN2AIN3+(AIN4)-(AIN5)+(AIN6)-(AIN7)AIN2AIN3+(AIN4)-(AIN5)+(AIN6)-(AIN7)+(AIN2)-(AIN3)+(AIN4)-(AIN5)+(AIN6)-(AIN7)+(AIN2)-(AIN3)+(AIN4)-(AIN5)+(AIN6)-(AIN7)Ред.
1.41хххдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-ры64C8051F020/1/2/3Рисунок 6.7. ADC0CF: Регистр конфигурации АЦП0 (C8051F022/3)R/WAD0SC4R/WAD0SC3R/WAD0SC2R/WAD0SC1R/WAD0SC0Бит 7Бит 6Бит 5Бит 4Бит 3R/WR/WR/WAMP0GN2 AMP0GN1 AMP0GN0Бит 2Бит 1Бит 0Значениепри сбросе:11111000SFR Адрес:0xBCБиты 7-3: AD0SC4-0: Биты установки периода сигнала дискретизации АЦП0Частота сигнала дискретизации АЦП0 определяется частотой системного тактового сигнала всоответствии со следующим уравнением:AD0SC = SYSCLK/(CLKSAR0 – 1),где AD0SC – 5-разрядное значение, задаваемое битами AD0SC4-0CLKSAR0 – необходимая частота сигнала дискретизации АЦП0Максимальное значение частоты сигнала дискретизации АЦП0 приведено в табл.6.1.Биты 2-0: AMP0GN2-0: Коэффициент усиления программируемого усилителя (PGA) АЦП0.000: Кус = 1001: Кус = 2010: Кус = 4011: Кус = 810х: Кус = 1611х: Кус = 0.565Ред.
1.4C8051F020/1/2/3Рисунок 6.8. ADC0CN: Регистр управления АЦП0 (C8051F022/3)R/WAD0ENR/WAD0TMR/WAD0INTБит 7Бит 6Бит 5R/WR/WAD0BUSY AD0CM1Бит 4Бит 3R/WR/WR/WAD0CM0 AD0WINT AD0LJSTБит 2Бит 1Бит 0Значениепри сбросе:00000000SFR Адрес:(доступен в битовомрежиме адресации)0xE8Bit7: AD0EN: Бит включения АЦП00: АЦП0 отключен. АЦП0 находится в режиме пониженного энергопотребления.1: АЦП0 включен. АЦП0 находится в активном режиме и готов к преобразованию данных.Бит 6: AD0TM: Бит установки режима слежения АЦП00: Когда АЦП0 включен, слежение осуществляется всегда, за исключением момента преобразования.1: Режим слежения определяется битами AD0CM1-0.Бит 5: AD0INT: Флаг прерывания от АЦП0 (устанавливается при завершении преобразования)Этот флаг должен быть сброшен программно.0: АЦП0 не закончил преобразование данных (с момента последнего обнуления этого флага)1: АЦП0 закончил преобразование данныхБит 4: AD0BUSY: Бит занятости АЦП0Чтение:0: Преобразование данных завершено или в данный момент преобразование не осуществляется.При аппаратном обнулении этого бита флаг AD0INT устанавливается в 1.1: Идет процесс преобразования данныхЗапись0: Не вызывает никаких действий1: Инициирует запуск преобразования АЦП0, если биты AD0CM1-0 = 00bБиты 3-2: AD0CM1-0: Биты выбора режима запуска преобразования АЦП0Если AD0TM = 0:00: Запуск преобразования осуществляется установкой в 1 бита AD0BUSY.01: Запуск преобразования осуществляется при переполнении Таймера 3.10: Запуск преобразования осуществляется нарастающим фронтом внешнего сигнала CNVSTR.11: Запуск преобразования осуществляется при переполнении Таймера 2.Если AD0TM = 1:00: слежение (выборка) начинается в момент установки в 1 бита AD0BUSY и длится 3 периодасигнала дискретизации АЦП0, затем начинается преобразование данных.01: слежение (выборка) начинается при переполнении Таймера 3 и длится 3 периода сигналадискретизации АЦП0, затем начинается преобразование данных.10: слежение (выборка) происходит лишь при низком уровне сигнала на входе CNVSTR;преобразование запускается нарастающим фронтом сигнала на входе CNVSTR.11: слежение (выборка) начинается при переполнении Таймера 2 и длится 3 периода сигналадискретизации АЦП0; затем начинается преобразование данных.Бит 1: AD0WINT: Флаг прерывания от детектора диапазона АЦП0 (сбрасывается программно)0: Преобразованные данные не соответствуют заданному диапазону (с момента последнегообнуления этого флага).1: Преобразованные данные соответствуют заданному диапазонуБит 0: AD0LJST: Бит выравнивания результата преобразования0: Данные в регистровой паре ADC0H:ADC0L выровнены вправо1: Данные в регистровой паре ADC0H:ADC0L выровнены влевоРед.
1.466C8051F020/1/2/3Рисунок 6.9. ADC0H: Регистр старшего байта слова данных АЦП (C8051F022/3)R/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000Бит 7SFR Адрес:0xBFБиты 7-0: Старшие биты слова данных АЦП0.Для AD0LJST = 0: Биты 7-2 являются знаковым расширением бита 1. Биты 2-0 представляютсобой старшие 2 бита 10-разрядного слова данных АЦП0.Для AD0LJST = 1: Биты 7-0 являются старшими 8 битами 10-разрядного слова данных АЦП0.Рисунок 6.10. ADC0L: Регистр младшего байта слова данных АЦП (C8051F022/3)R/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000Бит 7SFR Адрес:0xBEБиты 7-0: Младшие биты слова данных АЦПДля AD0LJST = 0: Биты 7-0 являются младшими 8 битами 10-разрядного слова данных АЦП0.Для AD0LJST = 1: Биты 7-6 представляют собой младшие 2 бита 10-разрядного слова данныхАЦП0.
Биты 5-0 всегда читаются как ‘0’.67Ред. 1.4C8051F020/1/2/3Рисунок 6.11. Пример слова данных АЦП0 (C8051F022/3)10-разрядный результат преобразования АЦП0 получается следующим образом:ADC0H[1:0]:ADC0L[7:0], если AD0LJST = 0(в случае преобразования дифференциального сигнала биты ADC0H[7:2] будут знаковымрасширением бита ADC0H.1, в случае одиночного сигнала ADC0H[7:2] = 000000b)ADC0H[7:0]:ADC0L[7:6], если AD0LJST = 1(ADC0L[5:0] = 000000b)Пример: Порядок записи результата преобразования, вход AIN0 работает в одиночном режиме(AMX0CF=0x00, AMX0SL=0x00)AIN0 – AGND(Вольты)VREF * (1023/1024)VREF/2VREF * (511/1024)0ADC0H:ADC0L(AD0LJST = 0)0x03FF0x02000x01FF0x0000ADC0H:ADC0L(AD0LJST = 1)0xFFC00x80000x7FC00x0000Пример: Порядок записи результата преобразования, входы AIN0-AIN1 работают вдифференциальном режиме (AMX0CF=0x01, AMX0SL=0x00)AIN0 – AIN1(Вольты)VREF * (511/512)VREF/2VREF * (1/512)0- VREF * (1/512)- VREF/2- VREFADC0H:ADC0L(AD0LJST = 0)0x01FF0x01000x00010x00000xFFFF(-1)0xFF00(-256)0xFE00(-512)ADC0H:ADC0L(AD0LJST = 1)0x7FC00x40000x00400x00000xFFC00xC0000x8000Для AD0LJST = 0:nCode = Vin x (Gain/VREF) x 2 ;‘n’ = 10, если входы работают в одиночном режиме;‘n’ = 9, если входы работают в дифференциальном режиме.Ред.
1.468C8051F020/1/2/36.3. Программируемый детектор диапазона АЦППрограммируемый детектор диапазона АЦП0 постоянно проверяет выходные данные АЦП0 насоответствие заданному пользователем диапазону значений и уведомляет систему при обнаружениинесоответствия. Это особенно эффективно в управляемых прерываниями системах, т.к. позволяет уменьшитьобъем кода и улучшить производительность при одновременном уменьшении времени реакции системы. Флагпрерывания от детектора диапазона (бит AD0WINT в регистре ADC0CN) можно использовать также в режимепрограммного опроса. Старшие и младшие байты граничных значений загружаются в регистры нижней иверхней границ диапазона АЦП0 (ADC0GTH, ADC0GTL, ADC0LTH и ADC0LTL). На рис.6.16, рис.6.17,рис.6.18 и рис.6.19 приведены примеры использования детектора диапазона. Следует отметить, что флагпрерывания от детектора диапазона может устанавливаться как при попадании, так и при непопаданиирезультата преобразования в заданный диапазон, в зависимости от значений, записанных в регистры ADC0GTxи ADC0LTx.Рисунок 6.12.
ADC0GTH: Регистр старшего байта нижней границы диапазона (C8051F22/3)R/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:11111111Бит 7SFR Адрес:0xC5Биты 7-0: Старший байт нижней границы диапазона АЦП0.Рисунок 6.13. ADC0GTL: Регистр младшего байта нижней границы диапазона (C8051F22/3)R/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:11111111Бит 7SFR Адрес:0xC4Биты 7-0: Младший байт нижней границы диапазона АЦП0.Рисунок 6.14.