Catcatcat electronics

Loading ...

Перейти к содержимому
Catcatcat electronics Electronic design studio based on microcontrollers of Microchip Technology Corporation
  • Facebook
  • Instagram
  • LinkedIn
  • Pinterest
  • Магазин
  • Skype
  • Telegram
  • X.com
  • WhatsApp
  • YouTube
  • RSS
  • E-mail
Вход / Регистрация
  • Home
  • Design Services
    • Design Services
    • Electronic design studio
  • Projects
    • Projects
    • News, Chat
    • List of site articles
    • List of site pages
  • Download
    • Libraries
    • Examples of building program code for PIC controllers
    • System software – bootloader for 8-bit PIC microcontrollers
    • Catcatcat electronics data file database
    • Datasheets for components used in projects.
  • Education
    • MPLAB® Code Configurator
    • FAQ
    • Printed circuit boards
    • Where to begin?
    • Learning PIC24, the XC16 compiler
    • Изучаем PIC32, компилятор XC32
    • Interesting features and solutions
  • RTMV technology
    • Project ch-светомузыка
    • Demonstration of prototypes – ch-светомузыка
    • Из истории развития классической светомузыки
    • Ch-светомузыка — basic concepts
    • Theoretical part — ch-светомузыка
    • Узлы светомузыки
    • Development news
  • Circuit Design
    • Printed circuit boards
    • ILLISSI project
      • Системные платы
      • ILLISSI-4С-secundo
      • ILLISSI-4B-primum
    • OLED displays
      • Справочник по OLED дисплеям
      • OLED дисплей CNK109632
      • OLED дисплей CNK109630
      • OLED дисплей CNK111063
    • Интегральный радиоприемник — RDA5807FP
    • Подключение SD/MMC карт памяти к PIC-микроконтроллеру
    • GPS — система глобального позиционирования
  • Buy
  • About
  • Club
  • Community
    • Register
    • Sign In
    • Forgot password?
    • Search users

10-бит, высокоскоростной, аналого-цифровой преобразователь, часть 1

Views: 1373


Измерение постоянного напряжения.

Ну и  как можно обойти АЦП, тем более что он позволяет сканировать со скоростью до 500 тысяч преобразование в секунду (500 ksps).

Структурная схема

pic24-13-600x600

И так мысли в слух:

В PIC24 серии АЦП более продвинутый, более гибкая схема управления, выборки и конвертирования и получения результата. принцип работы прост усилитель (S/H) выборки/хранения может через коммутаторы подключаться к контактам контроллера настроенным как аналоговые входы. Через эти контакты он получает входное напряжения которое он запоминает для последующей оцифровки в АЦП. Управление выборкой сигнала может быть управляться как вручную, так и автоматически. Существует минимальное время выборки для того, чтобы усилитель выборки/хранения дал желаемую точность преобразования, т.е. чтобы измерительная емкость смогла полностью зарядиться от входного сигнала. Далее включается в работу АЦП и запускается цикл преобразования – это время, необходимое для преобразования напряжения формируемое усилителем выборки/хранения на его входе. Весь процесс может обеспечивается триггером управления работой АЦП, он автоматически заканчивает время выборки и начинает аналогоцифровое преобразование. Управлявшие сигналы для триггера могут быть взяты из различных аппаратных средств контроллера, или он может управляться вручную из программного обеспечения. Для АЦП требуется один такт (TAD), для преобразования каждого бита результата и плюс два дополнительных такта, или в общей сложности 12 TAD циклов для 10-разрядного преобразования. Когда время преобразования будет завершено, результат загружается в один из 16 буферов АЦП.  АЦП может формировать прерывания для программного обеспечения. Сумма времени выборки и АЦП преобразования, дает общее время преобразования.
Один из режимов преобразования – есть режим непрерывного преобразования, когда триггер автоматического преобразования, использует счетчик и генератор АЦП для формирование времени между преобразованиями. Режим Auto-Sample и триггер автоматического преобразования могут быть использованы совместно, чтобы обеспечить циклическое преобразование без вмешательства программы.

 АЦП в общей сложности использует 22 регистра.

Регистры управления
Модуль имеет шесть регистров управления и состояния:
• AD1CON1:  – регистра управления 1
• AD1CON2:  – регистра управления 2
• AD1CON3:  – регистра управления 3
• AD1CHS:     – выбор входного канала
• AD1PCFG:  – конфигурация порта
• AD1CSSL:  – регистра выбора входов измерения для режима последовательного сканирования.
AD1CON1, AD1CON2 и AD1CON3 регистры контролировать общую работу модуля АЦП. Это подразумевает подключение модуля,
Настройка времени преобразования и источники опорного напряжения, выбрав отбора проб и Преобразование триггеров и ручного управления образца / преобразование последовательности.
AD1CHS регистр (регистр 17-4) выбирает входных каналов для подключения к S/H усилитель. Она также позволяет выбор входных мультиплексоров и выбор источника опорного напряжения для дифференциального режима работы.
AD1PCFG регистр (регистр 17-5) настраивает порты ввода / вывода аналоговых входов или цифровых входов / выходов.
AD1CSSL регистр (регистр 17-6) выбирает каналы должны быть включены для последовательного сканирования.

АЦП Буферы результата измерений.

Модуль включает в себя 16-регистров данных, в зависимости от режима работы АЦП может вести автоматическую запись в эти регистры. Для большей гибкости, если скорости работы процессора недостаточно, чтобы считать все 16 регистров, за время одного конвертирования, можно включить режим, года запись ведется в восемь младших , а процессор, в это время, может считывать информацию со старших восьми регистров и наоборот.

Для изучения работы АЦП необходимо будет немного изменить схему.

pic24-14

Светодиод перенесем на RB4, а вход RA0, будем использовать для измерения напряжения. Для этого подключим потенциометр на 20 кОм к шинам питания контроллера, а сигнал с “движка” подадим на RA0.

Для настройки АЦП добавим в нашу программу следующие строки.

// настройка АЦП
        TRISA = 0b0000000000000001; // AN0 вход
	AD1PCFG=0b1111111111111110; // настроить AN0 на вход
	AD1CHS = 0x0000;            // AN0 подключить к CH0
        AD1CSSL = 0;
        AD1CON3 = 0b1000001100000000;
//                  ||||||||++++++++-- ADCS7:ADCS0: TCY/2
//                  |||+++++---------- SAMC4:SAMC0: 15 TAD время выборки
//                  |++--------------- не используется
//                  +----------------- внутрений генератор
        AD1CON2 = 0b0000000000000000;
//                  |||||||||||||||+-- ALTS:всегда использует MUX A входа
//                  ||||||||||||||+--- BUFM: один бафур на 16 регистров
//                  ||||||||||++++---- SMPI3:SMPI0: прерывание от каждого 1
//                  |||||||||+-------- не используется
//                  ||||||||+--------- BUFS: бит состояния
//                  ||||||++---------- не используется
//                  |||||+------------ CSCNA: сканирование входов выключено
//                  |||++------------- не используется
//                  +++--------------- VCFG2:VCFG0: опорное AVdd и AVss
        AD1CON1 = 0b1000000011100000;
//                  |||||||||||||||+-- DONE:
//                  ||||||||||||||+--- SAMP
//                  |||||||||||||+---- ASAM
//                  |||||||||||++----- не используется
//                  ||||||||+++------- SSRC2:SSRC0: от внутреннего тактового RC генератора запуск
//                  ||||||++---------- FORM1:FORM0: Целое (0000 00dd dddd dddd)
//                  |||+++------------ не используется
//                  ||+--------------- ADSIDL:Продолжить работу модуля в режиме ожидания
//                  |+---------------- не используется
//                  +----------------- ADON:1 - АЦП - включен
//----------------------------------------------------------------------

Эти строки позволяют настроить полностью АЦП и входы микроконтроллера, в этом примере мы задаем тактирование от внутреннего RC-генератора АЦП. В основном необходимые пояснения сделаны в комментариях.

Для преобразования числа в символы, будем использовать следующую функцию:

void bin_dec(int data,char mode,char vyv,char raz);

где, data число в диапазоне от -9999 до +32768
mode – положение десятичной точки 0- нет точки, 1-4 после 2-4 знакоместа
vyv – не печатать пустые знакоместа 0-печатать все 5 знакомест, 1-не печатать
raz – размер выводимых цифр 0/1-нормальные, 2-7 увеличение в соответствующее раз

Логика преобразования числа в символ простая, необходимо математически выделить число и преобразовать его в код

    // преобразование числа в символ
    dtys=data/10000+0x30;
    tysc=data%10000/1000+0x30;
    sotn=data%1000/100+0x30;
    dest=data%100/10+0x30;
    edin=data%10+0x30;

А теперь сам процесс измерения. Изменение будем проводить когда контроллер спит, чтобы уменьшить цифровой шум, это как один из вариантов работы, хотя можно было сделать вариант усреднение результатов измерения, благо 16 регистров имеется.

Первое включит прерывание от АЦП

        _AD1IE = 1;

Создадим функцию прерывания, только сброс бита прерывания

void __attribute__ ((__interrupt__, __auto_psv__)) _ADC1Interrupt(void)
{
    IFS0bits.AD1IF = 0;
}

И сам процесс измерения, один из вариантов

        AD1CON1bits.ASAM = 1; // запустить авто измерения
        Sleep ();
        Nop();
        AD1CON1bits.ASAM = 0;  // остановить

        ADCValue = ADC1BUF0;   // загрузить данные измерения из буфера
 //---------------------------

Запускаем автоматическое измерение и переходим в спящий режим, чтобы при измерении избавиться от цифрового шума микроконтроллера. Ждем прерывания от АЦП. По прерыванию микроконтроллер просыпается, сбрасывается флаг прерывания. Мы останавливаем измерение, считываем измеренное значение. Затем выводим полученное значение на дисплей и т.п. После этого весь процесс измерения повторяется.

 


Видео работы программы.

  


Проект, среда разработки MPLAB® X v1.70, компилятор С MPLAB XC16 v1.11.

Значок
10-бит, высокоскоростной, аналого-цифровой преобразователь, часть 1 1159 раз(а) скачали 72.81 KB
Download

Поделись этим!

  • Facebook
  • Twitter
  • LinkedIn

Пользователи онлайн

Сейчас никого нет в сети

Подпишитесь на нашу рассылку

Oh hello 👋
Nice to meet you.

Subscribe to get great content every month.

Select list(s):

We don't spam!

Check your mailbox or spam to confirm your subscription.

Метки

AD9833 (4) Altium Designer (13) BK8000L (4) CAN (3) ch-4000 (8) ch-светомузыка (5) DHT11 (4) DMA (2) DS18B20 (8) ESP-12F (3) ESP-202 (3) ESP32 (3) ESP8266 (7) LED (4) MCC (3) MPLAB® Code Configurator (24) MPLAB® Harmony (6) Music (3) music color (6) OLED (9) PIC10 (4) PIC10F222 (3) PIC16F1829 (4) PIC16F1936 (3) pic18 (3) PIC18F25K42 (4) PIC18F26K40 (3) PIC24 (20) PIC24FJ64GA002 (11) PIC32 (2) PIC32MX (8) PIC32MZ (8) SEPS114A (4) SSD1306 (3) TM1639 (3) VU-meter (2) WiFi (3) WS2812B (4) XC16 (12) ДУ ИК (3) Измерение влажности (3) Измерение напряжения (3) Измерение температуры (7) Сенсор (7) Терморегулятор (4)

Рубрики

Календарь

Май 2025
Пн Вт Ср Чт Пт Сб Вс
 1234
567891011
12131415161718
19202122232425
262728293031  
« Мар    

Архивы

Статистика

  • 0
  • 552
  • 246
  • 2 689 718
  • 746 527
  • 1 546
  • 01/03/2024

Свежие записи

  • Customs codes for export 01/03/2024
  • Development Boards PIC18F47Q84 02/02/2024
  • Development of temperature control and management systems 29/01/2024
  • Altium Designer my Libraries, Project templates, System settings by Catcatcat V24.0 PRO 10/12/2023
  • Development board based on MCU PIC18F47Q84 17/11/2023
  • Altium Designer my Libraries, Project templates, System settings by Catcatcat V23.09 03/09/2023
  • CLUBBEST-50-Light 27/07/2023
  • The art of DJ 07/07/2023
  • Real-time music visualization technology 23/06/2023
  • Temperature measurement with NTC thermistor. 29/05/2023
  • Altium Designer my Libraries, Project templates, System settings by Catcatcat V23.04 20/04/2023
  • TDA7294 part 2 10/04/2023
  • TDA7294 part 1 02/04/2023
  • CLUBBEST – reasoning on the visualization of music. 23/03/2023
  • Altium Designer my setup system and project structure V23.3 08/03/2023
  • Altium Designer first project 01/03/2023
  • Kitchen timer with contactless gesture control 08/02/2023
  • Altium Designer my setup system and project structure 01/02/2023
  • Arduino LCD + STONE STVI056WT-01 + Strain gauge 17/04/2021
  • NeoPixel LED and PIC24 14/04/2021
  • MCC PIC24 – модуль REAL-TIME CLOCK AND CALENDAR (RTCC) 25/01/2021
  • Простой оптический сенсор приближения 09/01/2021
  • NS108-5050-16bit от Newstar 21/10/2020
  • JDY-62A Audio bluetooth module 18/09/2020
  • Audio-bluetooth modules BK8000L (noname) 15/09/2020
  • Audio-bluetooth modules F-6188 (BK8000L) 07/09/2020
  • Acquaintance with audio-bluetooth modules F-6888 (BK3254). 03/09/2020
  • My libraries for Altium Designer 30/05/2020
  • MCC – K42 – настройка модуля DMA 30/03/2020
  • VU Meter Tower ART – part 2 14/02/2020
  • MTouch® Модуль Емкостной Библиотеки для MPLAB®X Code Configurator (MCC) 12/01/2020
  • Система AT команд версии V2.0 для ESP8266 и ESP32 22/10/2019
  • PIC18 – модуль DMA 05/06/2019
  • AD9833 – Programmable Waveform Generator – part two 07/04/2019
  • BMP280 – температура и атмосферное давление – учебный проект 26/03/2019
  • Altium Designer – подготовка документации для производства и сборки печатных плат 16/03/2019
  • AD9833 – Programmable Waveform Generator 20/02/2019
  • NeoPixel LED и PIC18 03/02/2019
  • MPLAB® Harmony – или как это просто! Часть 4. 20/01/2019
  • MPLAB® Harmony – или как это просто! Часть 3. 04/01/2019
  • MPLAB® Harmony – или как это просто! Часть 2. 20/12/2018
  • MPLAB® Harmony – или как это просто! Часть 1. 17/12/2018
  • ESP32-первое знакомство 14/12/2018
  • MCC PIC24 – модуль OUTPUT COMPARE – в режиме генератора звуковых сигналов 25/10/2018
  • Ссылки на интересные источники 20/10/2018
  • MCC PIC24 – модуль OUTPUT COMPARE – режиме ШИМ 15/10/2018
  • Moving average – скользящее среднее 12/10/2018
  • 12-BIT A/D CONVERTER WITH THRESHOLD DETECT на примере PIC24FJ128GA204 03/10/2018
  • HVLD модуль на примере PIC24FJ128GA204 24/09/2018
  • ESP8266 применение в проектах 21/09/2018
  • ch-светомузыка и AK4113 15/09/2018
  • ESP8266 процедура получение данных даты и времени от серверов точного времени. 18/04/2018
  • WiFi ESP8266 – AT команды связанные с функцией TCP/IP (v.1.6.1) 15/04/2018
  • PIC18 – System Arbitration 05/04/2018
  • PIC18F25K42 – v. A001 – выявленные баги. 31/03/2018
  • CCP – модуль в режиме Compare на примере PIC18 28/03/2018
  • LED драйвер TM1639 25/03/2018
  • I2C MODULE – PIC18F25K42 Device ID Revision = A001 15/03/2018
  • Обновление ESP8266 c ESPFlashDownloadTool_v3.6.3 14/01/2018
  • TM1650 драйвер LED семисегментного индикатора 26/11/2017
  • Униполярный шаговый двигатель – часть 2 17/11/2017
  • Униполярный шаговый двигатель 14/11/2017
  • Просто о структурах и объединениях в Си 09/11/2017
  • REFERENCE CLOCK OUTPUT MODULE 29/10/2017
  • Тестирование модуля генератора 27/10/2017
  • Analog-to-Digital Converter with Computation Technical Brief 29/09/2017
  • Система отопления на солнечных коллекторах от Дмитрия (rv3dpi) 03/09/2017
  • Altium Designer – создание рисунков на печатной плате 05/08/2017
  • DIXELL XWEB500D-EVO + RUT900 или как пробить NAT-сервер 07/06/2017
  • MPLAB® Code Configurator and Encoder 22/04/2017
  • Проект с использованием MCC часть 16 16/04/2017
  • Проект с использованием MCC часть 15 15/04/2017
  • Проект с использованием MCC часть 14 19/03/2017
  • Проект с использованием MCC часть 13 12/03/2017
  • Проект с использованием MCC часть 12-2 26/02/2017
  • MPLAB X IDE – управление проектами 26/02/2017
  • Просто о внешних переменных 04/02/2017
  • Проект с использованием MCC часть 12-1 31/01/2017
  • Проект с использованием MCC часть 11 25/01/2017
  • Проект с использованием MCC часть 10 23/01/2017
  • Проект с использованием MCC часть 09 14/01/2017
  • Проект с использованием MCC часть 08 13/01/2017
  • Проект с использованием MCC часть 07 12/01/2017
  • Проект с использованием MCC часть 06 11/01/2017
  • Проект с использованием MCC часть 05 10/01/2017

Случайные записи

  • MPLAB X IDE – управление проектамиMPLAB X IDE – управление проектами
  • Проект с использованием MCC часть 13Проект с использованием MCC часть 13
  • Акриловый корпус для платы ch-4000Акриловый корпус для платы ch-4000
  • Проблемы классической светомузыкиПроблемы классической светомузыки
  • Мониторинг температурыМониторинг температуры
  • MPLAB® Harmony – или как это просто! Часть 3.MPLAB® Harmony – или как это просто! Часть 3.
  • Бегущие огни на WS2812BБегущие огни на WS2812B
  • Тестирование модуля генератораТестирование модуля генератора
  • TDA7294 part 2TDA7294 part 2
  • Altium Designer my setup system and project structureAltium Designer my setup system and project structure
  • Цифровой тахометр для автомобиля CH-С3300Цифровой тахометр для автомобиля CH-С3300
  • NeoPixel LED и PIC18NeoPixel LED и PIC18
  • MPLAB® Code ConfiguratorMPLAB® Code Configurator
  • LCD индикаторы на драйвере ML1001LCD индикаторы на драйвере ML1001
  • ESP8266  процедура получение данных даты и времени от серверов точного времени.ESP8266 процедура получение данных даты и времени от серверов точного времени.
  • MCC PIC24 – модуль OUTPUT COMPARE – в режиме генератора звуковых сигналовMCC PIC24 – модуль OUTPUT COMPARE – в режиме генератора звуковых сигналов
  • Temperature measurement with NTC thermistor.Temperature measurement with NTC thermistor.
  • WiFi ESP8266 – AT команды связанные с функцией TCP/IP (v.1.6.1)WiFi ESP8266 – AT команды связанные с функцией TCP/IP (v.1.6.1)
  • Проект с использованием MCC часть 15Проект с использованием MCC часть 15
  • WiFi ESP8266 ESP-202 (ESP-12F)WiFi ESP8266 ESP-202 (ESP-12F)
  • Простой оптический сенсор приближенияПростой оптический сенсор приближения
  • Проект с использованием MCC часть 16Проект с использованием MCC часть 16
  • Moving average – скользящее среднееMoving average – скользящее среднее
  • Проект с использованием MCC часть 01Проект с использованием MCC часть 01
  • Одноканальный емкостной сенсор – AT42QT1012Одноканальный емкостной сенсор – AT42QT1012
  • My libraries for Altium DesignerMy libraries for Altium Designer
  • CAN – Controller Area NetworkCAN – Controller Area Network
  • Audio-bluetooth modules F-6188 (BK8000L)Audio-bluetooth modules F-6188 (BK8000L)
  • Контроллер управления светодиодным освещением с дистанционным управлениемКонтроллер управления светодиодным освещением с дистанционным управлением
  • ch-светомузыка и AK4113ch-светомузыка и AK4113
  • Униполярный шаговый двигатель – часть 2Униполярный шаговый двигатель – часть 2
  • Customs codes for exportCustoms codes for export
  • CLUBBEST – reasoning on the visualization of music.CLUBBEST – reasoning on the visualization of music.
  • Проект с использованием MCC часть 09Проект с использованием MCC часть 09
  • CCP модуль для декодирования ИК-кодов пультов ДУCCP модуль для декодирования ИК-кодов пультов ДУ
  • MPLAB® X IDE
  • MPLAB® XC8 Compiler
  • MPLAB® XC16 Compiler
  • MPLAB® XC32 Compiler
  • Файлы Библиотек
  • Проекты
  • Проект ИЛЛИССИ
  • Статьи
  • Изучаем PIC24
  • Ch-Светомузыка
  • Примеры построения кодов программ C, ассемблер
  • Системный софт – Bootloader для PIC-контроллеров, PIC16, PIC18
  • Тех. документация
  • Музыка в моей жизни
  • Мои рисунки
  • Афоризмы для Embedded Programmer
  • С чего начать?
  • Установка MPLAB®X и компилятора Си
  • Создание проекта
  • Первый проект для самых маленьких
  • Facebook
  • Instagram
  • LinkedIn
  • Pinterest
  • Магазин
  • Skype
  • Telegram
  • X.com
  • WhatsApp
  • YouTube
  • RSS
  • E-mail

Copyright © Catcatcat 2012-2025. All rights reserved.
Copying is allowed only with an active link to the copyright holder.

e-mail: catcatcat.electronics@gmail.com

Последние файлы

Значок
Customs codes for export (xlsx) 1943 раз(а) скачали 121 КБ
Скачать
Значок
Demo Board PIC18F47Q84 soft 1568 раз(а) скачали 6 МБ
Скачать
Значок
Altium Designer my Libraries, Project templates, System settings by Catcatcat V24.0 PRO 2254 раз(а) скачали 2 КБ
Скачать
Значок
Development board based on MCU PIC18F47Q84 - schematic 1776 раз(а) скачали 5 МБ
Скачать
Значок
Altium Designer my Libraries, Project templates, System settings by Catcatcat. V23.9 2181 раз(а) скачали 2 КБ
Скачать
Значок
CLUBBEST 50 Light - BOM sheet in Microsoft format Excel 1754 раз(а) скачали 8 КБ
Скачать
Значок
CLUBBEST 50 Light - Pick Place sheet in Microsoft format Excel 2006 раз(а) скачали 16 КБ
Скачать
Значок
CLUBBEST 50 Light - Scheme in PDF format 1803 раз(а) скачали 9.30 MB
Скачать
Значок
CLUBBEST 50 Light - Description for manual assembly of the project 2289 раз(а) скачали 11.00 MB
Скачать
Значок
CLUBBEST 50 Light - Firmware 2027 раз(а) скачали 22 КБ
Скачать
Значок
CLUBBEST 50 Light - Archive with a complete set of files for PCB manufacturing 1547 раз(а) скачали 940 КБ
Скачать
Значок
Construction CLUBBEST M68 MASTER 1969 раз(а) скачали 2 МБ
Скачать
Значок
Calculation of the ADC table by Catcatcat V3.0 1579 раз(а) скачали 103 КБ
Скачать
Значок
NTC constant calculater by Catcatcat V3.0 1566 раз(а) скачали 194 КБ
Скачать
Значок
NTC_sensor - Temperature measurement library 2027 раз(а) скачали 5 КБ
Скачать
Значок
Altium Designer my Libraries, Project templates, System settings by Catcatcat V23.04 update_link 3206 раз(а) скачали 2 КБ
Скачать
Значок
TDA7294 part 2 2804 раз(а) скачали 62.65 MB
Скачать
Значок
TDA7294 part 1 2640 раз(а) скачали 37.92 MB
Скачать
Значок
Altium Designer my setup system and project structure V23.3 2922 раз(а) скачали 2 КБ
Скачать
Значок
Altium Designer my Libraries, Project templates, System settings by Catcatcat V23_02_13 3212 раз(а) скачали 2 КБ
Скачать
Вернуться наверх
Translate »