ADC Driver
Overview
ADC converts analog signals to digital values. BK7239N integrates multi-channel ADC for sensor readout and voltage monitoring.
Functional Description
Multiple channels, single/continuous modes
Configurable clock, sample rate, digital filter
Interrupt support and data buffer read
Calibration and voltage conversion helpers
Development Guide
Initialization: bk_adc_driver_init(), then bk_adc_init(channel, size)
Read modes: bk_adc_single_read(), bk_adc_read_raw(), bk_adc_read_average()
Control: bk_adc_start(), bk_adc_stop(), bk_adc_set_mode()
Calibration: bk_adc_bypass_calibration(), bk_adc_data_calculate()
Notes
Initialize driver before channel init
Choose suitable sample rate and filter per signal bandwidth
Confirm reference voltage and input range
API Reference
bk_adc_driver_init/deinit, bk_adc_init/deinit
bk_adc_acquire/release
bk_adc_single_read, bk_adc_read_raw, bk_adc_read_average
bk_adc_start/stop, bk_adc_register_isr
bk_adc_set_clock, bk_adc_set_sample_rate, bk_adc_set_filter
bk_adc_set_steady_time, bk_adc_set_sample_count, bk_adc_set_saturate_mode
bk_adc_bypass_calibration, bk_adc_config, bk_adc_set_mode
bk_adc_data_calculate
Examples
Single read and convert to voltage:
uint16_t raw = 0;
bk_adc_driver_init();
bk_adc_init(ADC_CHAN_0, 64);
bk_adc_set_mode(ADC_SINGLE_MODE);
bk_adc_single_read(&raw);
float v = bk_adc_data_calculate(raw, ADC_CHAN_0);
FAQs
Low accuracy: check reference voltage, enable calibration
Unstable value: tune filter/steady time, verify source impedance
Error Codes
BK_ERR_ADC_NOT_INIT, BK_ERR_ADC_INVALID_MODE, BK_ERR_ADC_SIZE_TOO_BIG