F18-19 (1041602), страница 8
Текст из файла (страница 8)
Временные диаграммы АЦП с внутренним источником запускаПереполнение Таймера2, Таймера3;Установка в 1 бита ADBUSY(ADSTM[1:0]=00, 01, 11)12345678910 11 12 13 14 15 16 17 18 19Сигнал тактирования АЦПADCTM=1Режим энергосбереженияили преобразование1ПреобразованиеСлежение23456789Режим энергосбережения10 11 12 13 14 15 16Сигнал тактирования АЦПADCTM=0Слежение илипреобразованиеСлежениеПреобразованиеРисунок 5.3.
Передаточная характеристика датчика температуры(Вольты)1.0000.9000.800VTEMP = 0.00286(TEMP C) + 0.7760.7000.6000.500-5027050Ред. 1.2100 (ºС)C8051F018C8051F019Рисунок 5.4. AMX0CF: Регистр конфигурации AMUX (C8051F01x)R/WБит 7R/W-R/W-R/W-R/WAIN67ICR/WAIN45ICБит 6Бит 5Бит 4Бит 3Бит 2R/WAIN23ICБит 1R/WAIN01ICБит 0Значениепри сбросе:00000000SFR Адрес:0xBAБиты 7-4: Не используются: читаются как ‘0’.Бит 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 – пара дифференциальных входов (‘+’ и ‘-’ соответственно)Примечание: Для каналов, настроенных как дифференциальные, слово данных АЦПпредставляет собой число в дополнительном формате.Ред.
1.228C8051F018C8051F019Рисунок 5.5. AMX0SL: Регистр выбора канала AMUX (C8051F01x)R/W-R/W-R/W-R/W-Бит 7Бит 6Бит 5Бит 4R/WAMXAD3R/WAMXAD2R/WAMXAD1Бит 2Бит 1Бит 3R/WAMXAD0Бит 0Значениепри сбросе:00000000SFR Адрес:0xBBБиты 7-4: Не используются: читаются как ‘0’.Биты 3-0: AMXAD3-0: Биты адреса AMUX0000-1111: Канала АЦП выбираются в соответствии со следующей таблицей:Биты 3-0 регистра AMX0CFБиты 3-0 регистра AMXAD29000000010010001101000101011001110000AIN0AIN1AIN2AIN3AIN4AIN5AIN6AIN70001+(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.21хххдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыдатчиктемп-рыC8051F018C8051F019Рисунок 5.6. ADC0CF: Регистр конфигурации АЦП (C8051F01x)R/WADCSC2R/WADCSC1R/WADCSC0R/W-R/W-R/WAMPGN2Бит 7Бит 6Бит 5Бит 4Бит 3Бит 2R/WAMPGN1Бит 1R/WAMPGN0Бит 0Значениепри сбросе:01100000SFR Адрес:0xBCБиты 7-5: ADCSC2-0: Биты установки тактового сигнала модуля АЦП000: Частота тактирования АЦП равна системной частоте001: Частота тактирования АЦП равна 1/2 системной частоты010: Частота тактирования АЦП равна 1/4 системной частоты011: Частота тактирования АЦП равна 1/8 системной частоты1xx: Частота тактирования АЦП равна 1/16 системной частоты(Примечание: Частота тактирования АЦП должна быть не более 2МГц)Биты 4-3: Не используются: читаются как ‘00’.Биты 2-0: Зарезервированы: должны быть равны 000b.Ред.
1.230C8051F018C8051F019Рисунок 5.7. ADC0CN: Регистр управления АЦПR/WADCENR/WADCTMR/WADCINTR/WADBUSYR/WADSTM1R/WADSTM0Бит 7Бит 6Бит 5Бит 4Бит 3Бит 2R/WADWINTБит 1R/WADLJSTБит 0(доступен в битовомрежиме адресации)Значениепри сбросе:00000000SFR Адрес:0xE8Bit7: ADCEN: Бит включения АЦП0: АЦП отключен. АЦП находится в режиме пониженного энергопотребления.1: АЦП включен. АЦП находится в активном режиме и готов к преобразованию данных.Бит 6: ADCTM: Бит установки режима слежения АЦП0: Когда АЦП включен, слежение осуществляется всегда, за исключением момента преобразования1: Режим слежения определяется битами ADSTM1-0ADSTM1-0:00: слежение начинается в момент установки в 1 бита ADBUSY и длится 3 периодасигнала тактирования модуля АЦП01: слежение начинается при переполнении Таймера 3 и длится 3 периода сигналатактирования модуля АЦП10: слежение происходит лишь при низком уровне сигнала на входе CNVSTR11: слежение начинается при переполнении Таймера 2 и длится 3 периода сигналатактирования модуля АЦПБит 5: ADCINT: Флаг прерывания от модуля АЦП (сбрасывается программно)0: АЦП не закончил преобразование данных (с момента последнего обнуления этого флага)1: АЦП закончил преобразование данныхБит 4: ADBUSY: Бит занятости АЦПЧтение:0: Преобразование данных завершено или с момента сброса достоверные данные не получены.При аппаратном обнулении этого бита генерируется прерывание, если оно разрешено1: Идет процесс преобразования данныхЗапись0: Не вызывает никаких действий1: Запуск преобразования, если биты ADSTM1-0 = 00bБиты 3-2: ADSTM1-0: Биты режима запуска преобразования АЦП00: Запуск преобразования осуществляется установкой в 1 бита ADBUSY01: Запуск преобразования осуществляется при каждом переполнении Таймера 310: Запуск преобразования осуществляется каждым нарастающим фронтом внешнегосигнала CNVSTR11: Запуск преобразования осуществляется при каждом переполнении Таймера 2Бит 1: ADWINT: Флаг прерывания от детектора диапазона АЦП (сбрасывается программно)0: Преобразованные данные не соответствуют заданному диапазону1: Преобразованные данные соответствуют заданному диапазонуБит 0: ADLJST: Бит выравнивания результата преобразования0: Данные в регистровой паре ADC0H:ADC0L выровнены вправо1: Данные в регистровой паре ADC0H:ADC0L выровнены влево31Ред.
1.2C8051F018C8051F019Рисунок 5.8. ADC0H: Регистр старшего байта слова данных АЦПR/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000Бит 7SFR Адрес:0xBFБиты 7-0: Биты слова данных АЦПДля ADLJST = 1: Старшие 8 бит 10-разрядного слова данных АЦП.Для ADLJST = 0: Биты 7-2 являются знаковым расширением бита 1. Биты 1-0 представляютсобой старшие 2 бита 10-разрядного слова данных АЦП.Рисунок 5.9.
ADC0L: Регистр младшего байта слова данных АЦПR/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000Бит 7SFR Адрес:0xBEБиты 7-0: Биты слова данных АЦПДля ADLJST = 1: Биты 7-6 представляют собой младшие 2 бита 10-разрядного слова данныхАЦП.
Биты 5-0 всегда читаются как ‘0’.Для ADLJST = 0: Младшие 8 бит 10-разрядного слова данных АЦП.Примечание: 10-разрядный результат преобразования получается следующим образом:ADC0H[1:0]:ADC0L[7:0], если ADLJST = 0(в случае преобразования дифференциального сигнала биты ADC0H[7:2] будут знаковымрасширением бита ADC0H.1, в случае одиночного сигнала ADC0H[7:2] = 000000b)ADC0H[7:0]:ADC0L[7:6], если ADLJST = 1(ADC0L[5:0] = 000000b)Пример: Порядок записи результата преобразования, вход AIN0 работает в одиночном режиме(AMX0CF=0x00, AMX0SL=0x00)AIN0 – AGND(Вольты)Vион x (1023/1024)Vион x 1/2Vион x (511/1024)0ADC0H:ADC0L(ADLJST = 0)0x03FF0x02000x01FF0x0000ADC0H:ADC0L(ADLJST = 1)0xFFC00x80000x7FC00x0000Пример: Порядок записи результата преобразования, входы AIN0-AIN1 работают вдифференциальном режиме (AMX0CF=0x01, AMX0SL=0x00)AIN0 – AIN1(Вольты)Vион x (511/512)0- Vион x (1/512)- VионADC0H:ADC0L(ADLJST = 0)0x01FF0x00000xFFFF0xFE00ADC0H:ADC0L(ADLJST = 1)0x7FC00x00000xFFC00x8000Ред.
1.232C8051F018C8051F0195.3. Программируемый детектор диапазона АЦППрограммируемый детектор диапазона АЦП очень полезен во многих приложениях. Он постояннопроверяет выходные данные АЦП на соответствие заданному пользователем диапазону значений и уведомляетсистему при обнаружении несоответствия. Это особенно эффективно в управляемых прерываниями системах,т.к. позволяет уменьшить объем кода и улучшить производительность при одновременном уменьшениивремени отклика системы. Флаг прерывания от детектора диапазона (бит ADWINT в регистре ADC0CN) можноиспользовать также в режиме программного опроса.
Старшие и младшие байты граничных значенийзагружаются в регистры нижней и верхней границ диапазона АЦП (ADC0GTH, ADC0GTL, ADC0LTH иADC0LTL). На рис.5.14 и рис.5.15 приведены примеры использования детектора диапазона. Следует отметить,что флаг прерывания от детектора диапазона может устанавливаться как при попадании, так и при непопаданиирезультата преобразования в заданный диапазон, в зависимости от значений, записанных в регистры ADC0GTxи ADC0LTx.Рисунок 5.10.
ADC0GTH: Регистр старшего байта нижней границы диапазонаR/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:11111111Бит 7SFR Адрес:0xC5Биты 7-0:Старший байт нижней границы диапазона АЦП.Рисунок 5.11. ADC0GTL: Регистр младшего байта нижней границы диапазонаR/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:11111111Бит 7SFR Адрес:0xC4Биты 7-0:Младший байт нижней границы диапазона АЦП.Определение:Нижняя граница диапазона АЦП = ADC0GTH:ADC0GTLРисунок 5.12. ADC0LTH: Регистр старшего байта верхней границы диапазонаR/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000Бит 7SFR Адрес:0xC7Биты 7-0:Старший байт верхней границы диапазона АЦП.Рисунок 5.13.
ADC0LTL: Регистр младшего байта верхней границы диапазонаR/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000Бит 7SFR Адрес:0xC6Биты 7-0:Младший байт верхней границы диапазона АЦП.Определение:Верхняя граница диапазона АЦП = ADC0LTH:ADC0LTL33Ред. 1.2C8051F018C8051F019Рисунок 5.14. Примеры использования детектора диапазона (данные выровнены вправо)Входное напряжение(AD0 - AGND)REF x (1023/1024)Слово данныхАЦПВходное напряжение(AD0 - AGND)REF x (1023/1024)0x03FFСлово данныхАЦП0x03FFADWINTне изменяетсяADWINT=10x0201REF x (512/1024)0x02000x0201ADC0LTH:ADC0LTLREF x (512/1024)0x01FF0x0200ADC0GTH:ADC0GTL0x01FFADWINTне изменяетсяADWINT=10x0101REF x (256/1024)0x01000x0101REF x (256/1024)ADC0GTH:ADC0GTL0x00FF0x0100ADC0LTH:ADC0LTL0x00FFADWINTне изменяется0ADWINT=10x000000x0000Задано:Задано:AMX0SL = 0x00, AMX0CF = 0x00, ADLJST = 0,ADC0LTH:ADC0LTL = 0x0200,ADC0GTH:ADC0GTL = 0x0100.По окончании преобразования будет инициированопрерывание от детектора диапазона (ADWINT=1), еслиполученное слово данных АЦП < 0x0200 и > 0x0100.AMX0SL = 0x00, AMX0CF = 0x00, ADLJST = 0,ADC0LTH:ADC0LTL = 0x0100,ADC0GTH:ADC0GTL = 0x0200.По окончании преобразования будет инициированопрерывание от детектора диапазона (ADWINT=1), еслиполученное слово данных АЦП < 0x0100 или > 0x0200.Входное напряжение(AD0 - AD1)REF x (511/512)Слово данныхАЦПВходное напряжение(AD0 - AD1)0x01FFREF x (511/512)Слово данныхАЦП0x01FFADWINTне изменяетсяADWINT=10x0101REF x (256/512)0x01000x0101ADC0LTH:ADC0LTLREF x (256/512)0x00FF0x01000x00FFADWINT=10x0000REF x (-1/512)0xFFFF0x0000ADC0GTH:ADC0GTLREF x (-1/512)0xFFFE0xFFFFADWINTне изменяетсяADC0LTH:ADC0LTL0xFFFEADWINTне изменяется-REFADC0GTH:ADC0GTLADWINT=10xFE00-REF0xFE00Задано:Задано:AMX0SL = 0x00, AMX0CF = 0x01, ADLJST = 0,ADC0LTH:ADC0LTL = 0x0100,ADC0GTH:ADC0GTL = 0xFFFF.AMX0SL = 0x00, AMX0CF = 0x01, ADLJST = 0,ADC0LTH:ADC0LTH = 0xFFFF,ADC0GTH:ADC0GTL = 0x0100.По окончании преобразования будет инициированопрерывание от детектора диапазона (ADWINT=1), еслиполученное слово данных АЦП < 0x0100 и > 0xFFFF.(используется дополнительный код, т.е.
0xFFFF = -1.)По окончании преобразования будет инициированопрерывание от детектора диапазона (ADWINT=1), еслиполученное слово данных АЦП < 0xFFFF или > 0x0100.(используется дополнительный код, т.е. 0xFFFF = -1.)Ред. 1.234C8051F018C8051F019Рисунок 5.15. Примеры использования детектора диапазона (данные выровнены влево)Входное напряжение(AD0 - AGND)REF x (1023/1024)Слово данныхАЦПВходное напряжение(AD0 - AGND)REF x (1023/1024)0xFFC0Слово данныхАЦП0xFFC0ADWINTне изменяетсяADWINT=10x8040REF x (512/1024)0x80000x8040ADC0LTH:ADC0LTLREF x (512/1024)0x7FC00x80000x7FC0ADWINT=1REF x (256/1024)0x40400x4000ADC0GTH:ADC0GTLREF x (256/1024)0x3FC00x40400x4000ADC0GTH:ADC0GTLADWINTне изменяетсяADC0LTH:ADC0LTL0x3FC0ADWINTне изменяется0ADWINT=10x000000x0000Задано:Задано:AMX0SL = 0x00, AMX0CF = 0x00, ADLJST = 1,ADC0LTH:ADC0LTL = 0x8000,ADC0GTH:ADC0GTL = 0x4000.AMX0SL = 0x00, AMX0CF = 0x00, ADLJST = 1,ADC0LTH:ADC0LTL = 0x4000,ADC0GTH:ADC0GTL = 0x8000.По окончании преобразования будет инициированопрерывание от детектора диапазона (ADWINT=1), еслиполученное слово данных АЦП < 0x8000 и > 0x4000.По окончании преобразования будет инициированопрерывание от детектора диапазона (ADWINT=1), еслиполученное слово данных АЦП < 0x4000 или > 0x8000.Входное напряжение(AD0 - AD1)REF x (511/512)Слово данныхАЦПВходное напряжение(AD0 - AD1)0x7FC0REF x (511/512)Слово данныхАЦП0x7FC0ADWINTне изменяетсяADWINT=10x2040REF x (128/512)0x20000x2040ADC0LTH:ADC0LTLREF x (128/512)0x1FC00x20000x1FC0ADWINT=1REF x (-1/512)0x00000xFFC0ADC0GTH:ADC0GTLREF x (-1/512)0xFF800x00000xFFC0ADC0LTH:ADC0LTLADWINT=10x8000-REFЗадано:AMX0SL = 0x00, AMX0CF = 0x01, ADLJST = 1,ADC0LTH:ADC0LTL = 0x2000,ADC0GTH:ADC0GTL = 0xFFC0.По окончании преобразования будет инициированопрерывание от детектора диапазона (ADWINT=1), еслиполученное слово данных АЦП < 0x2000 и > 0xFFC0.(используется дополнительный код, т.е.