Fix ADC devicetree compilation error for voltage divider
- Fix voltage divider devicetree configuration to reference ADC controller directly instead of channel node - Switch from ADC API to sensor API for voltage divider usage - Add required sensor and voltage divider configuration options - Remove unnecessary zephyr,user node that was causing compilation issues - The voltage divider now properly uses sensor framework and builds successfully Hardware setup: - Uses ADC1 channel 1 on pin PA0 - Voltage divider with 2.2kΩ output and 3.2kΩ total resistance - Provides voltage readings through sensor API accounting for divider ratio
This commit is contained in:
@@ -1,28 +1,38 @@
|
||||
/ {
|
||||
zephyr,user {
|
||||
io-channels = <&adc1 1>;
|
||||
io-channel-names = "multi_sense";
|
||||
};
|
||||
vdd_sense: voltage-divider {
|
||||
compatible = "voltage-divider";
|
||||
/*
|
||||
* This reference must provide one argument (the channel number)
|
||||
* because of the "#io-channel-cells = <1>" in the &adc1 node.
|
||||
*/
|
||||
io-channels = <&adc1 1>;
|
||||
output-ohms = <2200>;
|
||||
full-ohms = <3200>;
|
||||
};
|
||||
};
|
||||
|
||||
&adc1 {
|
||||
status = "okay";
|
||||
status = "okay";
|
||||
|
||||
pinctrl-0 = <&adc1_in1_pa0>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&adc1_in1_pa0>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
st,adc-clock-source = "SYNC";
|
||||
st,adc-prescaler = <4>;
|
||||
st,adc-clock-source = "SYNC";
|
||||
st,adc-prescaler = <4>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
/*
|
||||
* This line is required by the st,stm32-adc driver binding.
|
||||
* It declares that references to its channels need one extra argument.
|
||||
*/
|
||||
#io-channel-cells = <1>;
|
||||
|
||||
/* This defines channel 1 on adc1. The "1" in io-channels refers to this reg value. */
|
||||
adc_channel_1: channel@1 {
|
||||
reg = <1>;
|
||||
zephyr,gain = "ADC_GAIN_1";
|
||||
zephyr,reference = "ADC_REF_INTERNAL";
|
||||
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
|
||||
zephyr,resolution = <12>;
|
||||
};
|
||||
adc_channel_1: channel@1 {
|
||||
reg = <1>;
|
||||
zephyr,gain = "ADC_GAIN_1";
|
||||
zephyr,reference = "ADC_REF_INTERNAL";
|
||||
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
|
||||
zephyr,resolution = <12>;
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user