F60-67 (1041605), страница 13
Текст из файла (страница 13)
REF1CN: Регистр управления ИОН АЦП1R/WБит 7R/W-R/W-R/W-R/W-R/W-Бит 6Бит 5Бит 4Бит 3Бит 2R/WBIASE1Бит 1R/WREFBE1Бит 0Значениепри сбросе:00000000SFR Адрес: 0xD1SFR страница: 1Биты 7-2: Зарезервированы: читаются как 000000b; необходимо записать 000000b.Бит 1: BIASE1: Бит включения генератора напряжения смещения АЦП1. (Если АЦП1 используется, то этотбит должен быть установлен в 1).0: Внутренний генератор напряжения смещения отключен.1: Внутренний генератор напряжения смещения включен.Бит 0: REFBE1: Бит включения внутреннего буферного усилителя АЦП1.0: Внутренний буферный усилитель АЦП1 отключен. Можно использовать внешнее опорноенапряжение.1: Внутренний буферный усилитель АЦП1 включен.
Внутреннее опорное напряжение подается навывод VREF1.Ред. 1.262C8051F060/1/2/3/4/5/6/7Рисунок 5.13. ADC0H: Регистр старшего байта слова данных АЦП0R/WR/WR/WR/WR/WR/WR/WR/WЗначениепри сбросе:Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0SFR Адрес: 0xBFSFR страница: 000000000Бит 7Биты 7-0: Старшие биты слова данных АЦП0.Рисунок 5.14. ADC0L: Регистр младшего байта слова данных АЦП0R/WR/WR/WR/WR/WR/WR/WR/WЗначениепри сбросе:Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0SFR Адрес: 0xBESFR страница: 000000000Бит 7Биты 7-0: Младшие биты слова данных АЦП0.63Ред. 1.2C8051F060/1/2/3/4/5/6/7Рисунок 5.15.
Пример слова данных АЦП016-разрядный результат преобразования АЦП0 получается следующим образом:Пример: Порядок записи результата преобразования АЦП0, вход AIN0 работает в однофазном режиме(AMX0SL=0x00)AIN0 – AIN0G(Вольты)VREF * (65535/65536)VREF/2VREF * (32767/65536)0ADC0H:ADC0L0xFFFF0x80000x7FFF0x0000Пример: Порядок записи результата преобразования АЦП0, входы AIN0-AIN1 работают вдифференциальном режиме (AMX0SL=0x40)AIN0 – AIN1(Вольты)VREF * (32767/32768)VREF/2VREF * (1/32768)0- VREF * (1/32768)- VREF/2- VREFADC0H:ADC0L0x7FFF0x40000x00010x00000xFFFF0xC0000x8000nCode = Vin x (Gain/VREF) x 2 ;‘n’ = 16, если входы работают в однофазном режиме;‘n’ = 15, если входы работают в дифференциальном режиме.Ред.
1.264C8051F060/1/2/3/4/5/6/7Рисунок 5.16. ADC1H: Регистр старшего байта слова данных АЦП1R/WR/WR/WR/WR/WR/WR/WR/WЗначениепри сбросе:Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0SFR Адрес: 0xBFSFR страница: 100000000Бит 7Биты 7-0: Старшие биты слова данных АЦП1.Рисунок 5.17. ADC1L: Регистр младшего байта слова данных АЦП1R/WR/WR/WR/WR/WR/WR/WR/WЗначениепри сбросе:Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0SFR Адрес: 0xBESFR страница: 100000000Бит 7Биты 7-0: Младшие биты слова данных АЦП1Рисунок 5.18. Пример слова данных АЦП116-разрядный результат преобразования АЦП1 получается следующим образом:Пример: Порядок записи результата преобразования АЦП1, вход AIN1 работает в однофазном режиме(AMX1SL=0x00)AIN1 – AIN1G(Вольты)VREF * (65535/65536)VREF/2VREF * (32767/65536)0ADC1H:ADC1L0xFFFF0x80000x7FFF0x0000nCode = Vin x (Gain/VREF) x 2 ;‘n’ = 16В дифференциальном режиме слово данных АЦП сохраняется в регистрах ADC0H и ADC0L.
Врегистрах ADC1H и ADC1L всегда присутствует результат преобразования однофазного АЦП1, независимоот режима работы.65Ред. 1.2C8051F060/1/2/3/4/5/6/75.4. Калибровка.При изготовлении МК модули АЦП калибруются по нелинейности, смещению и усилению. АЦП0 иАЦП1 допускают также независимую внутрисистемную калибровку по каждому из этих параметров. Процесскалибровки инициируется с помощью соответствующих бит в регистрах конфигурации АЦП0 и АЦП1.
Доступк калибровочным коэффициентам можно получить с помощью регистра-указателя калибровки АЦП(ADC0CPT, см. рис.5.22) и регистра калибровочного коэффициента АЦП (ADC0CCF, см. рис.5.23). Биты CPTRрегистра ADC0CPT определяют, какой калибровочный коэффициент будет считываться/записываться причтении/записи регистра ADC0CCF. На рис.5.19 показан порядок расположения калибровочных коэффициентов.Рисунок 5.19.
Расположение калибровочных коэффициентовADC0CCFADC0CPTБиты 5-0Бит 7Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 00x00Калибровочные коэффициенты нелинейности (ячейки от 0x00 до 0x12)..0x120x13Ксмещ 7Ксмещ 60x140x150x16Кусил 7Кусил 6Ксмещ 5Ксмещ 4Ксмещ 3Ксмещ 2Ксмещ 1Ксмещ 0Ксмещ 13Ксмещ 12Ксмещ 11Ксмещ 10Ксмещ 9Ксмещ 8Кусил 5Кусил 4Кусил 3Кусил 2Кусил 1Кусил 0Кусил 12Кусил 11Кусил 10Кусил 9Кусил 8Модули АЦП калибруются по нелинейности при изготовлении. Обычно не требуется дополнительнойкалибровки по нелинейности. Если калибровка по нелинейности все же необходима, она может бытьинициирована установкой в 1 бита ADCnLCAL. При завершении калибровки бит ADCnLCAL будет аппаратносброшен в 0. Калибровочные коэффициенты нелинейности сохраняются в ячейках, показанных на рис.5.19.При выполнении калибровок коэффициентов смещения и усиления в качестве источниковкалибровочных напряжений можно использовать как внутренние, так и внешние напряжения.
Бит ADCnSCALопределяет, какое напряжение (внутреннее или внешнее) используется в процессе калибровки. Для обеспеченияточности калибровку коэффициента смещения следует производить перед калибровкой коэффициентаусиления. Расшифровка значений калибровочных коэффициентов смещения и усиления приведена на рис.5.20.Калибровка коэффициента смещения инициируется установкой в 1 бита ADCnOCAL.
При завершениикалибровки бит ADCnOCAL будет аппаратно сброшен в 0. Калибровка коэффициента смещения позволяеткомпенсировать ошибки смещения в диапазоне примерно ±3,125% полной шкалы. Значение коэффициентасмещения добавляется к значению сигнала на входе AINnG (до оцифровки его с помощью АЦП). Калибровкакоэффициента усиления инициируется установкой в 1 бита ADCnGCAL. При завершении калибровки битADCnGCAL будет аппаратно сброшен в 0. Калибровка коэффициента усиления позволяет компенсироватьошибки крутизны характеристики в диапазоне примерно ±3,125%. Значение коэффициента усилениядобавляется к значению опорного напряжения VREF АЦП, что приводит к изменению крутизны передаточнойхарактеристики преобразователя. На рис.5.21 показано, каким образом значения коэффициентов смещения иусиления влияют на аналоговые сигналы, используемые АЦП.Ред.
1.266C8051F060/1/2/3/4/5/6/7Рисунок 5.20. Использование значений регистров смещения и усиленияЗначение регистра коэффициента смещения влияет на смещение аналогового входного сигналаследующим образом:Регистр коэффициента смещения(14 бит)0x3FFF0x2000Приблизительное изменение смещения(В)-3.125% * VREF00x0000+3.125% * VREF0х2000 ─ Значение регистра коэффициента смещенияИзменение смещения ≈ --------------------------------------------------------------- х 3,125% х VREF8192Значение регистра коэффициента усиления влияет на крутизну передаточной характеристикиАЦП следующим образом:Регистр коэффициента усиления(13 бит)0x1FFF0x1000Приблизительное изменение крутизныпередаточной характеристики+3.125%00x0000-3.125%Значение регистра коэффициента усиления ─ 0х1000Изменение крутизны характеристики ≈ ------------------------------------------------------------------ х 3,125%4096Рисунок 5.21. Схема калибровки смещения и усиленияVREFКоэффициентсмещенияAINn++-АЦПnAINnG67КоэффициентусиленияРед.
1.216Данные АЦПnC8051F060/1/2/3/4/5/6/7Рисунок 5.22. ADC0CPT: Регистр-указатель калибровки АЦПR/WINCRR/WADCSELR/WCPTR5R/WCPTR4R/WCPTR3R/WCPTR2Бит 7Бит 6Бит 5Бит 4Бит 3Бит 2R/WCPTR1Бит 1R/WCPTR0Бит 0Значениепри сбросе:11010111SFR Адрес: 0xBASFR страница: FБит 7: INCR: Разрешение/запрещение автоматического инкрементирования указателя адреса.0: Автоматическое инкрементирование запрещено.1: Автоматическое инкрементирование разрешено. Значение, содержащееся в CPTR5-0, будетавтоматически инкрементироваться после каждой операции чтения или записи регистраADC0CCF.Бит 6: ADCSEL: Выбор калибровочного коэффициента АЦП.0: При чтении/записи регистра ADC0CCF будет происходить чтение/запись калибровочныхкоэффициентов АПЦ0.1: При чтении/записи регистра ADC0CCF будет происходить чтение/запись калибровочныхкоэффициентов АПЦ1.Биты 5-0: CPTR5-0: Указатель калибровочного коэффициента.Эти биты определяют, к какой ячейке калибровочных коэффициентов (см.
рис. 5.19) будет получендоступ при чтении/записи регистра ADC0CCF.Рисунок 5.23. ADC0CCF: Регистр калибровочного коэффициента АЦПR/WR/WR/WR/WR/WR/WR/WR/WЗначениепри сбросе:Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0SFR Адрес: 0xBBSFR страница: FразличноеБит 7Биты 7-0: Калибровочные коэффициенты из ячеек, на которые указывают битыCPTR5-0 регистра ADC0CPT.Ред. 1.268C8051F060/1/2/3/4/5/6/75.5.
Программируемый детектор диапазона АЦП0Программируемый детектор диапазона АЦП0 постоянно проверяет выходные данные АЦП0 насоответствие заданному пользователем диапазону значений и уведомляет систему при обнаружениинесоответствия. Это особенно эффективно в управляемых прерываниями системах, т.к. позволяет уменьшитьобъем кода и улучшить производительность при одновременном уменьшении времени реакции системы. Флагпрерывания от детектора диапазона (бит AD0WINT в регистре ADC0CN) можно использовать также в режимепрограммного опроса.
Старшие и младшие байты граничных значений загружаются в регистры нижней иверхней границ диапазона АЦП0 (ADC0GTH, ADC0GTL, ADC0LTH и ADC0LTL). Детектор диапазона можноиспользовать как в однофазном, так и в дифференциальном режиме работы АЦП. В дифференциальном режимедля сравнения используется общий результат АЦП0 и АЦП1, который содержится в регистрах данных АЦП0.На рис.5.28 и рис.5.29 приведены примеры использования детектора диапазона. Следует отметить, что флагпрерывания от детектора диапазона может устанавливаться как при попадании, так и при непопаданиирезультата преобразования в заданный диапазон, в зависимости от значений, записанных в регистры ADC0GTxи ADC0LTx.Рисунок 5.24.
ADC0GTH: Регистр старшего байта нижней границы диапазонаR/WR/WR/WR/WR/WR/WR/WR/WЗначениепри сбросе:Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0SFR Адрес: 0xC5SFR страница: 011111111Бит 7Биты 7-0: Старший байт нижней границы диапазона АЦП0.Рисунок 5.25. ADC0GTL: Регистр младшего байта нижней границы диапазонаR/WR/WR/WR/WR/WR/WR/WR/WЗначениепри сбросе:Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0SFR Адрес: 0xC4SFR страница: 011111111Бит 7Биты 7-0: Младший байт нижней границы диапазона АЦП0.69Ред. 1.2C8051F060/1/2/3/4/5/6/7Рисунок 5.26. ADC0LTH: Регистр старшего байта верхней границы диапазонаR/WR/WR/WR/WR/WR/WR/WR/WЗначениепри сбросе:Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0SFR Адрес: 0xC7SFR страница: 000000000Бит 7Биты 7-0: Старший байт верхней границы диапазона АЦП0.Рисунок 5.27. ADC0LTL: Регистр младшего байта верхней границы диапазонаR/WR/WR/WR/WR/WR/WR/WR/WЗначениепри сбросе:Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0SFR Адрес: 0xC6SFR страница: 000000000Бит 7Биты 7-0: Младший байт верхней границы диапазона АЦП0.Ред.
1.270C8051F060/1/2/3/4/5/6/7Рисунок 5.28. Пример использования детектора диапазона 16-разрядного АЦП0(однофазный режим работы)Входное напряжение(AIN0 - AIN0G)СловоданныхАЦП0Входное напряжение(AIN0 - AIN0G)СловоданныхАЦП0REF x (65535/65536)0xFFFFREF x (65535/65536)0xFFFFAD0WINTне изменяетсяAD0WINT=10x2001REF x (8192/65536)0x20000x2001ADC0LTH:ADC0LTLREF x (8192/65536)0x1FFF0x20000x1FFFAD0WINT=10x1001REF x (4096/65536)0x10000x1001ADC0GTH:ADC0GTLREF x (4096/65536)0x0FFF0x1000ADC0LTH:ADC0LTLAD0WINT=10x00000Задано:AMX0SL = 0x00,ADC0LTH:ADC0LTL = 0x2000,ADC0GTH:ADC0GTL = 0x1000.По окончании преобразования будетинициировано прерывание от детекторадиапазона (AD0WINT = ‘1’), если полученноеслово данных АЦП0 < 0x2000 и > 0x1000.71AD0WINTне изменяется0x0FFFAD0WINTне изменяется0ADC0GTH:ADC0GTL0x0000Задано:AMX0SL = 0x00,ADC0LTH:ADC0LTL = 0x1000,ADC0GTH:ADC0GTL = 0x2000.По окончании преобразования будетинициировано прерывание от детекторадиапазона (AD0WINT = ‘1’), если полученноеслово данных АЦП0 > 0x2000 или < 0x1000.Ред.
1.2C8051F060/1/2/3/4/5/6/7Рисунок 5.29. Пример использования детектора диапазона 16-разрядного АЦП0(дифференциальный режим работы)Входное напряжение(AIN0 - AIN1)СловоданныхАЦП0Входное напряжение(AIN0 - AIN1)REF x (32767/32768)0x7FFFREF x (32767/32768)СловоданныхАЦП00x7FFFAD0WINTне изменяетсяAD0WINT=10x1001REF x (4096/32768)0x10000x1001ADC0LTH:ADC0LTLREF x (4096/32768)0x0FFF0x10000x0FFFAD0WINT=10x0000REF x (-1/32768)0xFFFF0x0000ADC0GTH:ADC0GTLREF x (-1/32768)0xFFFE0xFFFFAD0WINTне изменяетсяADC0LTH:ADC0LTL0xFFFEAD0WINT=1AD0WINTне изменяется-REFADC0GTH:ADC0GTL0x8000-REFЗадано:AMX0SL = 0x40,ADC0LTH:ADC0LTL = 0x1000,ADC0GTH:ADC0GTL = 0xFFFF.По окончании преобразования будетинициировано прерывание от детекторадиапазона (AD0WINT = ‘1’), если полученноеслово данных АЦП0 < 0x1000 и > 0xFFFF.(Используется дополнительный код,т.е 0xFFFF = -1).Ред. 1.20x8000Задано:AMX0SL = 0x40,ADC0LTH:ADC0LTL = 0xFFFF,ADC0GTH:ADC0GTL = 0x1000.По окончании преобразования будетинициировано прерывание от детекторадиапазона (AD0WINT = ‘1’), если полученноеслово данных АЦП0 < 0xFFFF или > 0x1000.(Используется дополнительный код,т.е 0xFFFF = -1).72C8051F060/1/2/3/4/5/6/7Таблица 5.2.