8 HAL ADC Extension Driver

Started by tha, July 07, 2022, 08:05:40 AM

Previous topic - Next topic

tha


tha

Field Documentation
•   uint32_t ADC_InjectionConfTypeDef::InjectedChannel
     การเลือกของ ADC channel เพื่อกำหนดค่า. parameter นี้สามารถเป็นค่าหนึ่งของ ADC_channels หมายเหตุ: ขึ้นอยู่กับ devices,
     บาง channels อาจไม่มีให้ใช้งานบน package pins. ดูที่ device datasheet สำหรับ channels ที่มีให้ใช้งาน. หมายเหตุ: บน
     STM32F1 devices ที่มีหลาย ADC: เฉพาะ ADC1 สามารถเข้าถึง internal measurement channels (VrefInt/TempSensor)
     หมายเหตุ: บน STM32F10xx8 and STM32F10xxB devices: A low-amplitude voltage glitch อาจถูกสร้าง (บน ADC
     input 0) บน the PA0 pin, เมื่อ the ADC กำลังแปลงด้วย injection trigger. ขอแนะนำให้กระจาย the analog channels เพื่อให้
     Channel 0 ถูกกำหนดค่าเป็น an injected channel. ดูที่ errata sheet ของ devices เหล่านี้สำหรับรายละเอียดเพิ่มเติม.

•   uint32_t ADC_InjectionConfTypeDef::InjectedRank
    Rank ใน the injected group sequencer. parameter นี้สามารถเป็นค่าหนึ่งของ ADC_regular_rank หมายเหตุ: ในกรณีจำเป็น
    ต้องปิดใช้งาน a channel หรือเปลี่ยนลำดับของ conversion sequencer, rank ที่บรรจุ a previous channel setting สามารถถูก
    เขียนทับโดย the new channel setting (หรือ parameter number ของ conversions สามารถถูกปรับ)

tha

•   uint32_t ADC_InjectionConfTypeDef::InjectedSamplingTime
     Sampling time value ที่ถูกเซ็ตสำหรับ the selected channel. Unit: ADC clock cycles Conversion time เป็นการบวกกันของ
     sampling time และ processing time (12.5 ADC clock cycles ที่ ADC resolution 12 bits). parameter นี้สามารถเป็นค่าหนึ่ง
     ของ ADC_sampling_times ข้อควรระวัง: parameter นี้อัฟเดต the parameter property ของ the channel, ที่สามารถถูกใช้ใน
     regular และ/หรือ injected groups. ถ้า channel เดียวกันนี้ถูกกำหนดค่าไว้ล่วงหน้าในกลุ่มอื่นแล้ว (regular/injected), มันจะ         
     ถูกอัฟเดตเป็น last setting. หมายเหตุ: ในกรณีของการใช้ของ internal measurement channels (VrefInt/TempSensor),
     sampling time constraints ต้องถูกเคารพ (sampling time สามารถถูกปรับใน function of ADC clock frequency และ
     sampling time setting) ดูที่ device datasheet สำหรับ timings values, parameters TS_vrefint, TS_temp (ค่าลำดับ
     คร่าวๆ: 5us ถึง 17.1us ขั้นต่ำ).


tha

•   uint32_t ADC_InjectionConfTypeDef::InjectedOffset
     กำหนด the offset ที่จะถูกลบออกจากข้อมูลดิบที่แปลงแล้ว (สำหรับ channels ที่เซ็ตบน injected group เท่านั้น). Offset value ต้อง
     เป็น a positive number. ขึ้นอยู่กับ ADC resolution ที่เลือก (12, 10, 8 or 6 bits), parameter นี้ต้องเป็น a number ระหว่าง
     Min_Data = 0x000 และ Max_Data = 0xFFF, 0x3FF, 0xFF or 0x3F ตามลำดับ.

tha

•   uint32_t ADC_InjectionConfTypeDef::InjectedNbrOfConversion
     ระบุ the number of ranks ที่จะถูกแปลงภายใน the injected group sequencer. เพื่อใช้ the injected group sequencer และ
     แปลงหลาย ranks, parameter 'ScanConvMode' ต้องถูกเปิดใช้งาน. parameter นี้ต้องเป็นจำนนระหว่าง Min_Data = 1 and
     Max_Data = 4. ข้อควรระวัง: การเซ็ตนี้ส่งผลต่อ the entire injected group. ดังนั้น, การเรียก
     HAL_ADCEx_InjectedConfigChannel() เพื่อกำหนดค่า a channel บน injected group สามารถส่งผลต่อ the configuration
     ของ channels อื่นที่เซ็ตไว้ก่อนหน้า.

tha

•   FunctionalState ADC_InjectionConfTypeDef::InjectedDiscontinuousConvMode
     ระบุว่า the conversions sequence of injected group ถูกดำเนินการใน Complete-sequence/Discontinuous-sequence
     (main sequence ถูกแบ่งย่อยเป็นส่วนที่ต่อเนื่องหลายส่วน). Discontinuous mode ถูกใช้เฉพาะถ้า sequencer ถูกเปิดใช้งาน
     (parameter 'ScanConvMode'). ถ้า sequencer ถูกปิดใช้งาน, parameter นี้จะถูกทิ้ง. Discontinuous mode สามารถถูกเปิดใช้
     งานเฉพาะถ้า continuous mode ถูกปิดใช้งาน. ถ้า continuous mode ถูกเปิดใช้งาน, parameter setting นี้จะถูกทิ้ง. parameter
     นี้สามารถถูกเซ็ตเป็น ENABLE หรือ DISABLE. หมายเหตุ: สำหรับ injected group, number of discontinuous ranks increment
     ถูกคงที่เป็นรายตัว. ข้อควรระวัง: การเซ็ตนี้ส่งผลต่อ the entire injected group. ดังนั้นการเรียก
     HAL_ADCEx_InjectedConfigChannel() เพื่อกำหนดค่า a channel บน injected group สามารถส่งผลต่อ the
     configuration ของ channels อื่นที่เซ็ตไว้ก่อนหน้า.

tha

•   FunctionalState ADC_InjectionConfTypeDef::AutoInjectedConv
     เปิดใช้งานหรือปิดใช้งาน the selected ADC automatic injected group conversion หลังจาก regular one. parameter นี้
     สามารถถูกเซ็ตเป็น ENABLE หรือ DISABLE. หมายเหตุ: เพื่อใช้ Automatic injected conversion, discontinuous mode ต้อง
     ถูกปิดใช้งาน ('DiscontinuousConvMode' and 'InjectedDiscontinuousConvMode' ถูกเซ็ตเป็น DISABLE) หมายเหตุ: เพื่อใช้
     Automatic injected conversion, injected group external triggers ต้องถูกปิดใช้งาน ('ExternalTrigInjecConv' ถูกเซ็ต
     เป็น ADC_SOFTWARE_START) หมายเหตุ: ในกรณีของ DMA ที่ใช้กับ regular group: ถ้า DMA ที่กำหนดค่าเป็น normal
     mode (single shot) JAUTO จะถูกหยุดขึ้นอยู่กับ DMA transfer complete. เพื่อรักษาให้ JAUTO ถูกเปิดใช้งานเสมอ, DMA ต้อง
     ถูกกำหนดค่าเป็น circular mode.  ข้อควรระวัง: การเซ็ตนี้ส่งผลต่อ the entire injected group. ดังนั้นการเรียก
     HAL_ADCEx_InjectedConfigChannel() เพื่อกำหนดค่า a channel บน injected group สามารถส่งผลต่อ the
     configuration ของ channels อื่นที่เซ็ตไว้ก่อนหน้า.

tha

•   uint32_t ADC_InjectionConfTypeDef::ExternalTrigInjecConv
     เลือก the external event ที่ใช้เพื่อทริก the conversion start of injected group. ถ้าเซ็ตเป็น
     ADC_INJECTED_SOFTWARE_START, external triggers ถูกปิดใช้งาน. ถ้าเซ็ตเป็น external trigger source, triggering จะ
     อยู่บน event rising edge. parameter สามารถเป็นค่าหนึ่งของ ADCEx_External_trigger_source_Injected หมายเหตุ:
     parameter นี้ต้องถูกแก้ไขเมื่อ ADC ถูกปิดใช้งา (ก่อน ADC start conversion หรือหลัง ADC stop conversion). ถ้า ADC ถูกเปิด
     ใช้งาน, parameter setting นี้จะถูกข้ามผ่านโดยไม่มีการรายงานข้อผิดพลาด (เนื่องจากอาจเป็นพฤติกรรมที่คาดหวังในกรณีที่มีการอัปเดต
     พารามิเตอร์อื่นในทันที) ข้อควรระวัง: การเซ็ตนี้ส่งผลต่อ the entire injected group. ดังนั้นการเรียก
     HAL_ADCEx_InjectedConfigChannel() เพื่อกำหนดค่า a channel บน injected group สามารถส่งผลต่อ the
     configuration ของ channels อื่นที่เซ็ตไว้ก่อนหน้า.