The control system generates control impulses for cycloconverter.
This repository contains a programm wrote on C packed in Keil uVision 5 project. The program code works on the basis of STM32 «F767ZI» debug board.
First of all, for creating a program that forms control impulses, it is necessary to know count and form of the impulses. In my case, there are six impulses 3,3ms length, because of cycloconverter consist of six transistors and it works on 50 Hz.
fig.1 - Control impulses
Creating control system on Systick is a simple issue, that's why first implementation was created using it. Simplicity of a system timer illustrates its structure, it has only 4 registers but my program uses only 2.
fig.2 - Systick structure
Systick doesn't have any channels, that's why using GPIO (General Purpose Input/Output) is necessary. Using GPIO leads to forming unwanted programmed delay.
fig.3 - Unwanted dead time
Instead of using systick, the final solution uses three timers: TIM1, TIM8 - advanced control timers and TIM2 - general purpose timer. These timers were used in modes «Master» and «Slave» for synchronization. This solution solved the problem with unwanted delay.