STM32F7 15 Analog-to-digital converter (ADC)

  • 65 Replies
  • 1163 Views
*

Offline tha

  • *****
  • 4642
    • View Profile
STM32F7 15 Analog-to-digital converter (ADC)
« on: September 01, 2022, 06:48:47 am »
https://www.st.com/resource/en/reference_manual/dm00124865-stm32f75xxx-and-stm32f74xxx-advanced-arm-based-32-bit-mcus-stmicroelectronics.pdf

15 Analog-to-digital converter (ADC)

15.1 ADC introduction

The 12-bit ADC เป็น a successive approximation analog-to-digital converter. มันมีสูงถึง 19 multiplexed channels ช่วยให้มันวัด signals จาก 16 external sources, two internal sources, และ the VBAT channel. The A/D conversion of the channels สามารถถูกดำเนินการใน single, continuous, scan or discontinuous mode. The result of the ADC ถูกเก็บลงในชิดซ้ายหรือชิดขวา 16-bit data register.

The analog watchdog feature ช่วยให้ the application ตรวจพบหาก the input voltage เกินกว่าที่ผู้ใช้กำหนด, สูงกว่าหรือต่ำกว่าขอบเขต.

*

Offline tha

  • *****
  • 4642
    • View Profile
Re: STM32F7 15 Analog-to-digital converter (ADC)
« Reply #1 on: September 01, 2022, 09:23:44 am »
15.2 ADC main features

•   กำหนดค่าความละเอียดได้ 12-bit, 10-bit, 8-bit or 6-bit
•   การสร้างอินเตอร์รัพท์ที่ the end of conversion, end of injected conversion, และในกรณีของ analog watchdog หรือ
     overrun events
•   Single และ continuous conversion modes
•   Scan mode สำหรับการแปลงโดยอัตโนมัติของ channel 0 ถึง channel ‘n’
•   Data alignment ด้วย in-built data coherency
•   Channel-wise programmable sampling time
•   ตัวเลือก External trigger ที่มีขั้วที่กำหนดค่าได้สำหรับทั้ง regular และ injected conversions
•   Discontinuous mode
•   Dual/Triple mode (บน devices ที่มี 2 ADCs หรือมากกว่า)
•   Configurable DMA data storage ใน Dual/Triple ADC mode
•   Configurable delay ระหว่างการแปลงใน Dual/Triple interleaved mode
•   ADC supply requirements: 2.4 V ถึง 3.6 V ที่ full speed และลดลงเป็น 1.8 V ที่ slower speed
•   ADC input range: VREF– ? VIN ? VREF+
•   DMA request generation ในระหว่าง regular channel conversion

Figure 70 แสดง the block diagram of the ADC.

Note:  VREF–, ถ้ามีให้ใช้งาน available (ขึ้นอยู่กับ package), ต้องถูกต่อถึง VSSA.

*

Offline tha

  • *****
  • 4642
    • View Profile
Re: STM32F7 15 Analog-to-digital converter (ADC)
« Reply #2 on: September 01, 2022, 09:33:29 am »
15.3 ADC functional description

Figure 70 แสดง a single ADC block diagram และ Table 93 ให้ the ADC pin description





*

Offline tha

  • *****
  • 4642
    • View Profile
Re: STM32F7 15 Analog-to-digital converter (ADC)
« Reply #3 on: September 01, 2022, 10:02:25 am »
15.3.1 ADC on-off control

The ADC ถูก power on โดยการเซ็ต the ADON bit ใน the ADC_CR2 register. เมื่อ the ADON bit ถูกเซ็ตเป็นครั้งแรก, มันจะปลุก the ADC จาก the Power-down mode.

The conversion จะสตาร์ทเมื่ออย่างใดอย่างหนึ่ง the SWSTART หรือ the JSWSTART bit ถูกเซ็ต.

ผู้ใช้สามารถหยุด conversion และทำให้ the ADC อยู่ใน power down mode โดยการเคลียร์ the ADON bit. ในโหมดนี้ the ADC แทบไม่ใช้พลังงานเลย (เพียงไม่กี่ μA)

*

Offline tha

  • *****
  • 4642
    • View Profile
Re: STM32F7 15 Analog-to-digital converter (ADC)
« Reply #4 on: September 01, 2022, 10:18:30 am »
15.3.2 ADC1/2 and ADC3 connectivity

ADC1, ADC2 and ADC3 ถูกเชื่อมต่ออย่างแน่นหนาและใช้ external channels บางส่วนร่วมกันตามที่อธิบายไว้ใน Figure 71, Figure 72 and Figure 73.









*

Offline tha

  • *****
  • 4642
    • View Profile
Re: STM32F7 15 Analog-to-digital converter (ADC)
« Reply #5 on: September 01, 2022, 10:49:49 am »
15.3.3 ADC clock

The ADC features มีสอง clock schemes:
•   Clock สำหรับ the analog circuitry: ADCCLK, ใช้กับทุก ADCs
     clock นี้ถูกสร้างจาก the APB2 clock ที่หารด้วย a programmable prescaler ที่ยอมให้ the ADC ทำงานที่ fPCLK2/2, /4, /6 or
     /8. ดูที่ the datasheets สำหรับค่าสูงสุดของ ADCCLK.
•   Clock สำหรับ the digital interface (ที่ใช้สำหรับ registers read/write access)
     clock นี้จะเท่ากับ the APB2 clock. The digital interface clock สามารถถูก enabled/disabled เฉพาะรายสำหรับแต่ละ ADC ผ่าน
     ทาง the RCC APB2 peripheral clock enable register (RCC_APB2ENR).

*

Offline tha

  • *****
  • 4642
    • View Profile
Re: STM32F7 15 Analog-to-digital converter (ADC)
« Reply #6 on: September 02, 2022, 07:08:33 am »
15.3.4 Channel selection

มีอยู่ 16 multiplexed channels. มันสามารถจัดระเบียบการแปลงเป็นสองกลุ่ม: regular และ injected. A group ประกอบด้วยลำดับของการแปลงที่สามารถทำได้กับช่องใดก็ได้และตามลำดับใด ๆก็ได้ ตัวอย่างเช่นสามารถทำได้ที่จะทำการแปลงในลำดับต่อไปนี้: ADC_IN3, ADC_IN8, ADC_IN2, ADC_IN2, ADC_IN0,ADC_IN2, ADC_IN2, ADC_IN15.
•   The regular group ประกอบด้วยการแปลงสูงสุดถึง 16 การแปลง. The regular channels และลำดับการแปลงของมันต้องถูกเลือกใน
     the ADC_SQRx registers. จำนวณของการแปลงทั้งหมดใน the regular group ต้องถูกเขียนลงใน the L[3:0] bits ใน the
     ADC_SQR1 register.
•   The injected group ประกอบด้วยการแปลงสูงสุดถึง 4 การแปลง. The injected channels และลำดับการแปลงของมันต้องถูกเลือก
     ใน the ADC_JSQR register. จำนวณของการแปลงทั้งหมดใน the injected group ต้องถูกเขียนลงใน the L[1:0] bits ใน the
     ADC_JSQR register.

ถ้า the ADC_SQRx or ADC_JSQR registers ถูกแก้ไขในระหว่างการแปลง, การแปลงปัจจุบันจะถูกยกเลิก(reset)และ a new start pulse จะถูกส่งไปยัง the ADC เพื่อการแปลงกลุ่มใหม่ที่เลือก

Temperature sensor, VREFINT and VBAT internal channels

•   The temperature sensor ถูกเชื่อมต่อภายในถึง ADC1_IN18 channel ซึ่งถูกใช้ร่วมกันกับ VBAT. เฉพาะ one conversion,
     temperature sensor หรือ VBAT, ต้องถูกเลือกในแต่ละครั้ง. เมื่อ the temperature sensor และ VBAT conversion ถูกเซ็ต
     พร้อมกัน, เฉพาะ the VBAT conversion เท่านั้นที่ถูกดำเนินการ.

The internal reference voltage VREFINT ถูกเชื่อมต่อถึง  ADC1_IN17.

The VBAT channel ถูกเชื่อมต่อถึง ADC1_IN18 channel. มันสามารถถูกแปลงเป็น an injected หรือ regular channel ได้ด้วย.

Note: The temperature sensor, VREFINT และ the VBAT channel มีให้ใช้งานเฉพาะบน the master ADC1 peripheral.

*

Offline tha

  • *****
  • 4642
    • View Profile
Re: STM32F7 15 Analog-to-digital converter (ADC)
« Reply #7 on: September 02, 2022, 08:08:14 am »
15.3.5 Single conversion mode

ใน Single conversion mode the ADC จะทำหนึ่งการแปลง. โหมดนี้ถูกสตาร์ทด้วย the CONT bit ที่ 0 โดยอย่างใดอย่างหนึ่ง:
•   การเซ็ต the SWSTART bit ใน the ADC_CR2 register (สำหรับ a regular channel เท่านั้น)
•   การเซ็ต the JSWSTART bit (สำหรับ an injected channel)
•   external trigger (สำหรับ a regular หรือ injected channel)

เมื่อการแปลงของชาแนลที่เลือกเสร็จสมบูรณ์
•   ถ้า a regular channel ถูกแปลงแล้ว:
     –   The converted data จะถูกเก็บลงใน the 16-bit ADC_DR register
     –   The EOC (end of conversion) flag จะถูกเซ็ต
     –   An interrupt จะถูกสร้างขึ้นถ้า the EOCIE bit ถูกเซ็ต
•   ถ้า an injected channel ถูกแปลงแล้ว:
     –   The converted data จะถูกเก็บลงใน the 16-bit ADC_JDR1 register
     – The JEOC (end of conversion injected) flag จะถูกเซ็ต
     – An interrupt จะถูกสร้างขึ้นถ้า the JEOCIE bit ถูกเซ็ต

จากนั้น the ADC จะหยุด.