VFD stm32f0discovery

Vale, Sun Mar 27 2016, 05:20PM

I work at a company that repairs X-ray machines. A test bench for x-ray tubes was needed in my company so I made a VFD to drive the anodes at high speeds. X-ray generator only had 50hz single phase with capacitor anode drive, newer tubes are 3ph 150-180hz.

The circuit contains a FNB41060, stm32f051 micro (on the discovery board), and a few auxiliary components.

Here's a video of it in action.


Link2

It has two modes of operation: 50hz and 150hz. Employs constant V/F ramp during acceleration, fixed 20hz @ start-up and 10hz/s ramp to selected maximum. It's programmed to go full V at the selected frequency.
Also monitors the bus voltage, waits for it to rise to 300v at start-up and disables drive at under 200v. Charge resistor is shorted by the relay (Red led) when inverter is started. Overcurrent protection is ensured by the IGBT power brick.

Will add a button to brake the tube, right now reseting the board and restarting from 20hz seems to do the job. (high speed anodes NEED to be braked at least to 3000rpm to avoid premature wear).

This is my first thread on this forum hope you like it, any question will be glad to answer.
Vale.
Re: VFD stm32f0discovery
Patrick, Sun Mar 27 2016, 09:06PM

Do you have experience with the STM32 series ? I'm desperate for help. ive been using the Stamps and Propellers to do my motor and high voltage work. but I don't know enough C to really use the STM32's. theyre more useful because they have dedicated hardware timers, which I find hard to use on the propellers.
Re: VFD stm32f0discovery
Vale, Fri Apr 01 2016, 01:48PM

Sorry for the late reply, forgot to subscribe to this post to get notifications.
Yes, I worked with the timer modules, ADC, i2c, spi for two projects mostly on the F0 microcontrollers.
Used both libraries and direct register access, for this project I started from the complementary timer example code and modified it to suit my needs (just needed the initializing code).

Current software uses software interrupts so to keep timings precise I can't use any data intensive external devices .. like a LCD / Oled but hope to add one for a nicer user inteface.

I am thinking about swapping the controller for a Atmega32u4 (leonardo) attiny861 or a Atxmega32a4 /d4 to embed everything on a single pcb and use a small oled display and 3 buttons for user interface.