In the mean time I designed the test circuit/board for the power supply of the low voltage parts of the circuit. The MCU, the measuring amplifiers, the display will run from 3.3V (I planed to use 5V supply originally, but the display I'm using is not able to run from it). This supply finally not as cheap I wanted to have. It was clear that I need a switching mode supply, and a chip with high voltage capability. I know that a few hundred milliamps is not to much, and the whole circuit is powered from the mains and not batteries. This is a good candidate for some three leg standard regulator or LDO, but...
Always, that but.
the whole circuit will run from a single 48V supply. Generating just 100mA with a standard regulator means you have to dissipate 4.47W on the regulator. In addition the standard three leg regulators are not designed for 48V input voltage.
So the decision is to use HV buck regulator. Especially the LM2594HV-3.3 model from TI.
I designed a circuit around it:
And a PCB for testing:
The finished board (population come later):
When I started this project I selected Nuvoton's M054LDN for it. It has 16+4K FLASH what looked enough to me. I have an M0516LDN based development board in my hands, so I started to write the code on it. As the project advanced it become clear, that the code will not fit into the 16K. There is two factor behind it: the character table used for the graphic display, and the floating point library used by the PID controller.
But there is a problem. At the local reseller I just found the M054LDN and the M0516LAN and not the M0516LDN. This A instead of D means something here. It is the revision of the device. Together with other changes the rev D. has FIFO capability on the SPI interface what I'm extensively using for the display driver, and really don't want to throw it away.
So I looked around, and found what I needed on the AliExpress.
It arrived also this week:
There is some comments on the Hackaday.io page of the project from Andrew and Hacker404 about suggesting to use Back Electromotive Force to measure the rotational speed of the motor without sensors as a more standard approach, than the one I used. Here is two article explaining this technique:
As I decided to keep developing the controller based on my idea, really think this as something worth to try.
Here I collected the advantages and disadvantages of BEMF against my techniqe:
+ Way much simpler circuitry required for the control and measurement
+ Lower frequency can be used for the PWM control what decrease the switching loss and increase the possible precision (at 10kHz with the same MCU I can achieve 2500 steps instead of the current 250)
- Less precise measurement. There is several factor reducing precision (noise, measurement timing, calibration requirement)
- Calibration requirement at the enduser. With my method you just need to find out the number commutator segments, and you ready. With BEMF, you have to go through the entire rotational speed range and match the measured voltage with a measured rotational speed (optical encoder, hall sensor, etc.)
- Noisier operation. The motor running from low frequency square wave produce more noise than running from clean DC.
- Not possible to use 100% duty cycle. Need time for measurement.
Anyway. I think it worth to try this method, after finished the current one.