Dear Rak team,
im going to use RAK3172 module in own design and i should measure the voltage/battery.
I will use 2 batteries AA in series for supply.
My questions is - is internally Vbat connected to VDD? so i measure voltage without any external voltage divider.
2nd question:
which pins i could use for DAC signal generation
3th question:
which pins i could use for PWM generation
ADC for vbat is based on the battery connection of the WisBlock Base board. If you use the RAK3172 Evaluation Board, AT+BAT command will give the actual voltage of the battery attached on the evaluation board. If you are making your own board and want to use the vbat API, ADC_VBAT is connected to PB3/PIN_A0 and this is the voltage divider (based on base board).
RUI3 doesn’t support DAC out on any pin.
You can use IO pins of RAK3172 to have PWM output.
Note that putting R3/R4 voltage divider across a 3V power rail (2x AA cells) results in a constant current drain of 1.2uA in addition to the MCU STOP current of around 2uA.
If you’re using the same 3V Vbatt for the MCU, there’s no problem with exceeding the rail, so you might consider removing the divider and measuring the voltage directly.
If you’re using Vdd as the ADC reference (as the MCU does) then you’re in a predicament, right? You’ll always read full-scale on the ADC because the reference is the same as the value you’re measuring. Never fear, ST thought ahead for this: there’s an internal calibrated reference in the MCU around 1.2V IIRC. So you read the calibrated reference and do some math (explained in the STM32WLxx documentation) to figure out what the Vdd rail is.
This means you don’t need any pin to measure Vbatt, you just measure the internal reference and calculate Vdd from that. Note that this calibration is required anyway when reading external voltages. This also eliminates inaccuracy due to component tolerance of R3/R4.
I don’t know if RUI does that or supports doing this, but it’s easy to do with STM32Cube.
Warning: I just thought this up before having the first cup of coffee for the day. I might have missed a detail (but pretty sure I didn’t).
Thanks for sharing your insights @danak6jq . Those are very helpful to the community. I am discussing now with the R&D team the possibility of using the internal VBAT pin of STM32WL to measure VDD level. No promises but I will give update/s whenever there is/are good news in this front.
On an RAK WisBlock Base Board, the battery VBAT is regulated through an LDO to produce VDD and usually exceeds the VDD value. That’s why a voltage divider is required. If you’re using an RAK3172 in an application where you’re only using a 3V lithium cell, you dispense with the LDO and don’t need the voltage divider. because VBAT == VDD.
So the only time you can use VDD to measure the battery voltage accurately is when it is directly connected to the battery.