Un onduleur avec un sinus pur en 15 minutes ou "l'électronique de puissance - pour tout le monde"

Qu'est-ce que l'électronique de puissance? Sans aucun doute - c'est le monde entier! Moderne et plein de confort. Beaucoup de gens imaginent l'électronique de puissance comme quelque chose de «magique» et distant, mais regardez autour de vous - presque tout ce qui nous entoure contient un convertisseur de puissance: une alimentation pour ordinateur portable, une lampe LED, un onduleur, divers régulateurs, des stabilisateurs de tension et des fréquencemètres (IF) ) dans la ventilation ou l'ascenseur et bien plus encore. La plupart de ces équipements rendent notre vie confortable et sûre.

Pour plusieurs raisons, le développement de l'électronique de puissance est l'un des domaines les plus difficiles de l'électronique - le prix d'erreur est très élevé, tandis que le développement des convertisseurs de puissance a toujours attiré les amateurs, les bricoleurs et pas seulement. Vous vouliez sûrement construire une alimentation puissante pour votre projet? Ou peut-être UPS en ligne pour quelques kW et ne pas faire faillite? Ou peut-être un chastotnik dans l'atelier?

Aujourd'hui, je vais parler de mon petit projet ouvert, ou plutôt de sa partie, qui permettra à quiconque veut entrer dans le monde du développement de l'électronique de puissance et en même temps rester en vie. Comme démonstration des possibilités, je montrerai comment assembler un onduleur de tension de 12V DC à 230V AC avec une sortie sinusoïdale en 15 minutes. Intrigué? C'est parti!




Raisons du projet


Au cours des deux dernières années, le développement de convertisseurs de puissance a représenté environ 90% de mes commandes, les principaux coûts de main-d'œuvre vont principalement au développement de logiciels et au prototypage, à la conception de circuits + au traçage final de la carte du coût total ne dépassant généralement pas 10-15%. Voici la compréhension que le processus de prototypage, qui comprend le développement de logiciels, doit être en quelque sorte réduit et optimisé.

Il y a au moins deux solutions comme toujours: acheter un débogage prêt à l'emploi, par exemple, auprès de Texas Instrumets ou Infineon, mais ils sont généralement adaptés à une tâche spécifique et coûtent de 500 $ à 5000 $, il n'y a aucune garantie qu'il y aura une commande similaire et cet investissement avec une forte probabilité est facile ne paiera pas.
La deuxième option est de le faire vous-même, mais le faire à fond est presque la même chose que de lancer "+1 révision de fer", ce qui entraînera des dépenses supplémentaires pour le client. Si ce n'est pas fait à fond, alors comme d'habitude, tout sera à la morve et quelque part quelque chose tombera et jusqu'à la disposition, les composants et le calendrier.
Après un certain temps, j'ai attiré l'attention sur la solution la plus évidente. C'est tellement simple et évident que pendant longtemps je me suis demandé pourquoi le même TI ou Infineon n'avait pas encore fait ça. Maintenant, je vais parler de mon "illumination".

Examinons certaines des topologies de convertisseurs de puissance les plus populaires:







Maintenant, regardez de nouveau attentivement. J'ai peint spécifiquement sans cerclage, seuls les composants clés pour le rendre plus clair. Qu'est-ce que ces topologies ont en commun? La première chose qui attire votre attention est une série de points communs:
  • Toutes les topologies incluent les composants principaux - condensateurs, transistors et inductance (inductance ou transformateur). Ce sont 3 baleines d'électronique de puissance;
  • Les transistors sont allumés partout de la même manière et forment ce que l'on appelle le "demi-pont". Presque toutes les topologies de convertisseur sont construites à partir de celui-ci;
  • L'option d'activation du demi-pont + coupleur de condensateur ne change pas sur toutes les topologies. Le type d'inductance et les options pour inclure des demi-ponts changent.


De cela, nous pouvons conclure que, ayant un certain module standard sous la forme d'un demi-pont + condensateur couplé, vous pouvez construire n'importe quel convertisseur en ajoutant uniquement l'inductance ou le transformateur nécessaire. Par conséquent, la solution évidente pour simplifier le prototypage était la création d'un tel module:


La lutte entre le bien et le mal


Malheureusement, un nombre limité d'heures par jour et une paresse banale dictent leurs conditions. Je suis venu à la nécessité de faire ce module il y a un an, mais la mise en œuvre a été constamment transférée sous le slogan - "Je le ferai certainement le week-end prochain!" .

Peut-être que l'idée serait restée sur l'étagère, sinon pour 2 événements. Tout d'abord, 2 clients sont venus me voir en un mois et tout le monde voulait un convertisseur complexe et intéressant à mettre en œuvre, et surtout, ils étaient prêts à payer très bien. Bien qu'il considère qu'il vient d'Europe, cela peut avoir été bon marché pour eux)) Les deux projets étaient intéressants pour moi, par exemple, l'un d'eux était un «régulateur de tension triphasé avec isolation galvanique (sic!)», C'est-à-dire un triphasé PFC + 3 convertisseurs de pont (déphasés) + redresseur synchrone + onduleur triphasé. Tout cela sur SiC et très compact. En général, j'ai pris 2 grosses commandes, chacune d'entre elles ~ 800 heures-homme et une période de 6 mois. En conséquence, j'ai été «forcé» de chercher des moyens d'optimiser.

Deuxièmement, des gars de la société PCBway m'ont écrit de manière inattendue, beaucoup d'entre eux leur ont probablement commandé des planches et m'ont proposé de coopérer. Ils soutiennent très activement les projets de matériel ouvert, c'est-à-dire l'initiative même du CERN - Matériel open source. La coopération est simple, compréhensible pour les deux parties - ils me fournissent des tableaux gratuits pour mes projets, je les ouvre et les met sur leur site Web, dans d'autres endroits déjà sur demande. Pour moi, c'est devenu une motivation supplémentaire, et surtout, ma conscience est claire, car Depuis plusieurs années, je commande des planches pour leurs prototypes, et pour la production de masse, j'en parle à mes amis et partenaires. Maintenant, pour cela, j'ai aussi un chignon sous forme de tableaux gratuits pour les petits projets, vous pouvez souvent écrire sur le hub))

Et puis la glace a éclaté, il a été décidé de créer non seulement le module décrit précédemment, mais tout un ensemble du développeur d'électronique de puissance et de le rendre ouvert et accessible à tous.

Structure du projet


Au début de l'article, j'ai mentionné que je ne vous parlerai que d'une partie aujourd'hui - c'est le module de puissance du demi-pont . À lui seul, il vous permet de créer un convertisseur en vissant simplement un circuit de contrôle, par exemple, en déboguant STM32-Discovery, Arduino, TMS320, TL494 ou tout ce que vous possédez là-bas. Il n'y a aucune liaison avec aucune plate-forme ou MK.

Seulement ce n'est pas tout le projet, mais une partie)) En quoi consiste le convertisseur de puissance fini? Tout d'abord, le bloc d'alimentation a besoin d'un certain module de contrôle pour fonctionner, afin de comprendre ce qui se passe, une indication est nécessaire et pour comprendre ce qui se passe à une distance de sécurité, il existe également une interface, par exemple, Modbus RTU ou CAN.

En conséquence, la structure générale du projet ressemble à ceci:



À l'avenir, j'écrirai probablement un programme de calcul de transformateurs et de selfs, conventionnels et plans. Jusqu'à présent. Les différentes parties du schéma sous forme de projet ont déjà été implémentées et exécutées dans deux projets, après des modifications mineures, des articles seront également écrits dessus et le code source sera disponible.

Module d'alimentation demi-pont


Il est maintenant temps de regarder de plus près le héros d'aujourd'hui. Le module est universel et vous permet de travailler avec des transistors Mosfet et IGBT, des commutateurs basse tension et haute tension jusqu'à 1200V.

Caractéristiques du module:
  • Isolation galvanique du côté commande (numérique) de l'alimentation. Tension de claquage de l'isolant 3 kV;
  • Les touches supérieure et inférieure sont indépendantes, chacune a son propre pilote à isolation galvanique et un courant continu / continu isolé galvaniquement;
  • Le pilote moderne d'Infineon - 1EDC60I12AHXUMA1 est appliqué. Le courant d'impulsion d'ouverture / fermeture est de 6A / 10A. Fréquence maximale - 1 MHz (testé jusqu'à 1,5 MHz de manière stable);
  • Protection du courant matériel: shunt + ampli-op + comparateur + optocoupleur;
  • Le courant maximum est de 20A. Il n'est pas limité par les clés, mais par la taille du radiateur et l'épaisseur des polygones de cuivre.


La première révision du module apparaît dans l'article, il est entièrement opérationnel, mais il y aura une deuxième révision, dans laquelle les défauts purement de conception seront éliminés et les connecteurs seront remplacés par des connecteurs plus pratiques. Après avoir terminé la documentation, il a jeté le gerber dans PCBway et après 6 jours, le courrier a frappé à ma porte et m'a tendu un tel charme:



Une semaine plus tard, les chiens ont finalement apporté des composants d'un beau magasin domestique. En conséquence, tout a été monté:





Avant de continuer, regardons le schéma du circuit du module. Vous pouvez le télécharger ici - PDF .

Il n'y a rien de compliqué ni de magique. Le demi-pont habituel: 2 touches en bas, 2 en haut, vous pouvez souder une à la fois. Le conducteur, comme écrit ci-dessus de la famille 1ED, est très diabolique et immortel. Partout sur l'alimentation, il y a une indication, y compris + 12V à la sortie cc / cc. La protection est mise en œuvre sur l'élément logique ET, si le courant est dépassé, le comparateur produira + 3,3 V, il illuminera l'optocoupleur et il attirera l'une des entrées ET à la terre, ce qui signifie l'établissement de log.0 et le signal PWM des pilotes disparaîtra. ET avec 3 entrées a été utilisé spécifiquement, dans la prochaine révision, je prévois de faire une protection contre la surchauffe par le radiateur et de démarrer le signal d'erreur là aussi. Toutes les sources seront à la fin de l'article.

Nous assemblons la disposition de l'onduleur


J'ai longuement réfléchi à la façon de démontrer le fonctionnement du module, afin qu'il ne soit pas très ennuyeux, utile et pas très difficile, afin que n'importe qui puisse le répéter. Par conséquent, je me suis arrêté sur un onduleur, ils sont utilisés pour travailler avec des panneaux solaires, si quelque chose sent du côté basse tension, ce n'est pas effrayant, mais du côté haute tension, juste au moment où vous l'allumez, ne mettez pas les mains dedans.

L'onduleur lui-même est très simple, au fait, MAP Energy est rivé comme ça, voici un exemple de la mise en œuvre commerciale de cette idée. Le travail de l'onduleur est de former une variable sinusoïdale avec une fréquence de 50 Hz à partir d'une tension 12V DC, car c'est avec cela qu'un transformateur conventionnel à 50 Hz est habitué à fonctionner. J'utilise une sorte de soviétique, comme l'OSM, un enroulement d'usine 220V et est utilisé comme secondaire, et le ~ 8V primaire est enroulé avec un bus en cuivre. Cela ressemble à ceci:



Et ce monstre ne fait que 400 watts! Le poids du transformateur est d'environ 5-7 kg, selon les sensations, si vous le laissez tomber sur votre jambe, ils ne seront certainement pas emmenés dans l'armée. En fait, c'est le moins des onduleurs avec des transformateurs "en fer", ils sont énormes et lourds. Leur avantage est que ces onduleurs sont tellement simples, ne nécessitent aucune expérience de création et bien sûr ils sont bon marché.

Connectons maintenant les modules et le transformateur. En fait, le module pour le développeur doit être présenté simplement comme une «boîte noire» qui a une entrée de 2 PWM et 3 sorties de puissance: VCC, GND et la sortie demi-pont elle-même.



Maintenant, à partir de ces "boîtes noires", dessinons notre onduleur:



Oui, il n'a fallu que 3 éléments externes: un transformateur + un filtre LC. Pour ce dernier, j'ai fait un starter simplement en enroulant le fil du module au transformateur sur un anneau en matériau Kool Mu, de taille R32 avec une perméabilité de 60, et une inductance d'environ 10 μH. Bien sûr, l'accélérateur doit être calculé, mais nous avons besoin de 15 minutes)) En général, si vous conduisez quelque chose comme ça à 400 W, vous avez besoin d'un anneau de taille R46 (c'est le diamètre extérieur). Capacité - film 1-10 uF, cela suffit. En fait, vous ne pouvez pas définir le condensateur comme une économie, car la capacité d'enroulement du transformateur est saine ... en général, les Chinois et le MAP l'ont fait)) L'inductance ressemble à ceci:



Reste à lancer une charge de test sur la sortie, j'ai quelques ampoules LED 20 W (rien d'autre n'était à portée de main), elles mangent elles-mêmes 24 W, cependant, l'efficacité. De plus, le courant en circuit ouvert du transformateur est d'environ 1A. Avec la batterie va manger environ 5A. En conséquence, nous avons un tel stand:



De plus, la disposition utilise la batterie Delta HR12-17, respectivement, à 12V et avec une capacité de 17 A * h. Nous contrôlerons le convertisseur à partir de la carte de débogage STM32F469-Discovery.

Code


Initialement, il était prévu d'utiliser mon STM32VL-Disco, qui a été reçu à l'exposition en 2010, pour le contrôle, mais il se trouve que c'est sur cette mise en page qu'elle était destinée à mourir lorsque tout le code a été écrit et que la mise en page a été lancée. J'ai oublié les sondes de l'oscilloscope et combiné 2 terres, amen. Du coup, tout a été réécrit sur STM32F469NIH6, c'est ce débogage qui était à portée de main, donc il y aura 2 projets: pour le F100 et pour le F469, les deux sont vérifiés. Le projet est conçu pour TrueSTUDIO, la version éclipse de ST.

Code du chausson
#include "main.h" /********************************************* Sinus table **********************************************************/ uint16_t sinData[240] = {0,13,26,39,52,65,78,91,104,117,130,143,156,169,182,195,207,220,233,246,258,271,284,296,309,321,333,346,358,370, 382,394,406,418,430,442,453,465,477,488,500,511,522,533,544,555,566,577,587,598,608,619,629,639,649,659,669,678,688,697, 707,716,725,734,743,751,760,768,777,785,793,801,809,816,824,831,838,845,852,859,866,872,878,884,891,896,902,908,913,918, 923,928,933,938,942,946,951,955,958,962,965,969,972,975,978,980,983,985,987,989,991,993,994,995,996,997,998,999,999,999, 999,999,999,998,997,996,995,994,993,991,989,987,985,983,980,978,975,972,969,965,962,958,955,951,946,942,938,933,928,923, 918,913,908,902,896,891,884,878,872,866,859,852,845,838,831,824,816,809,801,793,785,777,768,760,751,743,734,725,716,707, 697,688,678,669,659,649,639,629,619,608,598,587,577,566,555,544,533,522,511,500,488,477,465,453,442,430,418,406,394,382, 370,358,346,333,321,309,296,284,271,258,246,233,220,207,195,182,169,156,143,130,117,104,91,78,65,52,39,26,13,0}; uint16_t sinStep; uint8_t sinStatus; /******************************************** Used functions ********************************************************/ void StartInitClock (void) { RCC->CR |= RCC_CR_HSEON; // Enable HSE while (!(RCC->CR & RCC_CR_HSERDY)); FLASH->ACR |= FLASH_ACR_LATENCY_5WS; RCC->PLLCFGR = 0x00; RCC->PLLCFGR |= RCC_PLLCFGR_PLLM_3; // Div for HSE = 8 RCC->PLLCFGR |= RCC_PLLCFGR_PLLN_4 | RCC_PLLCFGR_PLLN_5 | RCC_PLLCFGR_PLLN_6 | RCC_PLLCFGR_PLLN_7; // PLL mult x240 RCC->PLLCFGR |= RCC_PLLCFGR_PLLSRC; // Source HSE RCC->CR |= RCC_CR_PLLON; while((RCC->CR & RCC_CR_PLLRDY) == 0){} RCC->CFGR &= ~RCC_CFGR_SW; RCC->CFGR |= RCC_CFGR_SW_PLL; // Select source SYSCLK = PLL while((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_1) {} // Wait till PLL is used RCC->CR |= RCC_CR_PLLSAION; while ((RCC->CR & RCC_CR_PLLSAIRDY) == 0) {} } void EnableOutputMCO (void) { RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN; // Enable clock port A GPIOA->MODER &= ~GPIO_MODER_MODER8; GPIOA->MODER |= GPIO_MODER_MODER8_1; // Alternative PP GPIOA->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR8; // Very high speed RCC->CFGR |= RCC_CFGR_MCO1; // Source PLL RCC->CFGR &= ~RCC_CFGR_MCO1PRE; // Div = 1 } void InitIndicatorLED (void) { /* * LED1 - PG6 * LED2 - PD4 * LED3 - PD5 * LED4 - PK3 */ RCC->AHB1ENR |= RCC_AHB1ENR_GPIOGEN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOKEN; GPIOG->MODER &= ~GPIO_MODER_MODER6; GPIOG->MODER |= GPIO_MODER_MODER6_0; // Output PP GPIOD->MODER &= ~GPIO_MODER_MODER4; GPIOD->MODER |= GPIO_MODER_MODER4_0; // Output PP GPIOD->MODER &= ~GPIO_MODER_MODER5; GPIOD->MODER |= GPIO_MODER_MODER5_0; // Output PP GPIOK->MODER &= ~GPIO_MODER_MODER3; GPIOK->MODER |= GPIO_MODER_MODER3_0; // Output PP } void EnableIndicatorLED (void) { GPIOG->BSRR |= GPIO_BSRR_BR_6; GPIOD->BSRR |= GPIO_BSRR_BR_4; GPIOD->BSRR |= GPIO_BSRR_BR_5; GPIOK->BSRR |= GPIO_BSRR_BR_3; } void InitLowPWM (void) { /* * TIM1-CH1 - PA8 * TIM1-CH1N - PB13 */ RCC->APB2ENR |= RCC_APB2ENR_TIM1EN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOBEN; /*********** GPIO **********/ GPIOA->MODER &= ~GPIO_MODER_MODER8; GPIOA->MODER |= GPIO_MODER_MODER8_1; // Alternative output PP GPIOA->AFR[1] |= GPIO_AFRH_AFRH0_0; // Select TIM1-CH1 GPIOB->MODER &= ~GPIO_MODER_MODER13; GPIOB->MODER |= GPIO_MODER_MODER13_1; // Alternative output PP GPIOB->AFR[1] |= GPIO_AFRH_AFRH5_0; // Select TIM1-CH1N /*********** Timer *********/ TIM1->PSC = 2400-1; // div for clock: F = SYSCLK / [PSC + 1] TIM1->ARR = 1000; // count to 1000 TIM1->CR1 &= ~TIM_CR1_CKD; // div for dead-time: Tdts = 1/Fosc = 41.6 ns TIM1->CCR1 = 500; // duty cycle 50% TIM1->CCER |= TIM_CCER_CC1E | TIM_CCER_CC1NE; // enable PWM complementary out to PB15 and to PA10 TIM1->CCER &= ~TIM_CCER_CC1NP; // active high level: 0 - high, 1 - low TIM1->CCMR1 &= ~TIM_CCMR1_OC1M; TIM1->CCMR1 |= TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1; // positiv PWM1_CH3 and PWM1_CH3N TIM1->BDTR &= ~TIM_BDTR_DTG; // clear register TIM1->BDTR |= TIM_BDTR_DTG_2 | TIM_BDTR_DTG_1 | TIM_BDTR_DTG_0; // value dead-time: = 31*Tdts = 32*41,6ns = 1.29us TIM1->BDTR |= TIM_BDTR_MOE | TIM_BDTR_AOE; // enable generation output and dead-time TIM1->CR1 &= ~TIM_CR1_DIR; // count up: 0 - up, 1 - down TIM1->CR1 &= ~TIM_CR1_CMS; // aligned on the front signal: 00 - front; 01, 10, 11 - center TIM1->CR1 |= TIM_CR1_CEN; // start count } void InitSinusPWM (void) { /* * TIM3-CH1 - PB4 * TIM3-CH2 - PC7 */ RCC->APB1ENR |= RCC_APB1ENR_TIM3EN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOBEN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOCEN; /*********** GPIO **********/ GPIOB->MODER &= ~GPIO_MODER_MODER4; GPIOB->MODER |= GPIO_MODER_MODER4_1; // Alternative output PP GPIOB->AFR[0] |= GPIO_AFRL_AFRL4_1; // Select TIM3-CH1 GPIOC->MODER &= ~GPIO_MODER_MODER7; GPIOC->MODER |= GPIO_MODER_MODER7_1; // Alternative output PP GPIOC->AFR[0] |= GPIO_AFRL_AFRL7_1; // Select TIM3-CH2 /*********** Timer *********/ TIM3->PSC = 5-1; // div for clock: F = SYSCLK / [PSC + 1] TIM3->ARR = 1000; // count to 1000 TIM3->CCR1 = 0; // duty cycle 0% TIM3->CCR2 = 0; // duty cycle 0% TIM3->CCER |= TIM_CCER_CC1E; // enable PWM out to PA8 TIM3->CCER &= ~TIM_CCER_CC1P; // active high level: 0 - high, 1 - low TIM3->CCER |= TIM_CCER_CC2E; // enable PWM complementary out to PA9 TIM3->CCER &= ~TIM_CCER_CC1P; // active high level: 0 - high, 1 - low TIM3->CCMR1 &= ~(TIM_CCMR1_OC1M | TIM_CCMR1_OC2M); TIM3->CCMR1 |= TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2M_1; // positiv PWM1_CH1 and PWM1_CH2 TIM3->CR1 &= ~TIM_CR1_DIR; // count up: 0 - up, 1 - down TIM3->CR1 &= ~TIM_CR1_CMS; // aligned on the front signal: 00 - front; 01, 10, 11 - center TIM3->CR1 |= TIM_CR1_CEN; // start count } void InitStepSinus (void) { RCC->APB1ENR |= RCC_APB1ENR_TIM6EN; // enable clock for basic TIM6 TIM6->PSC = 5-1; // div, frequency 24 kHz TIM6->ARR = 1000; // count to 1000 TIM6->DIER |= TIM_DIER_UIE; // enable interrupt for timer TIM6->CR1 |= TIM_CR1_CEN; // start count NVIC_EnableIRQ(TIM6_DAC_IRQn); // enable interrupt TIM6_DAC_IRQn } /************************************* Main code *********************************************/ int main (void) { StartInitClock(); // EnableOutputMCO(); InitIndicatorLED(); InitLowPWM(); InitSinusPWM(); InitStepSinus(); EnableIndicatorLED(); while(1) { } } /****************************** Interrupts ******************************************************/ void TIM6_DAC_IRQHandler (void) { TIM6->SR &= ~TIM_SR_UIF; if (sinStatus == 0) {TIM3->CCR1 = sinData[sinStep];} if (sinStatus == 1) {TIM3->CCR2 = sinData[sinStep];} sinStep++; if (sinStep >= 240) { sinStep = 0; sinStatus = sinStatus ? 0 : 1; } } 


En général, dans un autre article, il a décrit en détail et clairement comment générer un signal sinusoïdal, comment écrire du code, etc. Vous pouvez le lire ici .

As-tu lu? Envie de collectionner? Gardez le projet:


Nous exécutons le code, nous armons d'un oscilloscope et passons à autre chose. Tout d'abord, on vérifie la présence d'un signal à l'entrée des drivers, ça devrait être comme ça:



Il est à noter que je donne 2 signaux dessinant un sinus sur un demi-pont (module), et 50 Hz sur 2 signaux. De plus, une diagonale est «rouge + jaune» et l'autre «bleu + vert». Dans l'article que j'ai donné ci-dessus, cela est écrit en détail, si vous ne comprenez pas soudainement. Maintenant, comme les signaux sont arrivés, nous avons mis à la fois un demi-pont + 12V et GND à partir de l'alimentation du laboratoire. Immédiatement, la batterie ne le conseille pas, si vous faites une erreur quelque part, alors quelque chose peut brûler. La protection sur la carte évite les surintensités, mais pas les jambages évidents, lorsque le plus et le moins sont mélangés, mais le technicien de laboratoire économise. 12V et 1A suffisent pour les tests. Nous prenons la sonde de l'oscilloscope, son fil de terre à la sortie du premier demi-pont, et la sonde elle-même à la sortie de l'autre demi-pont, et il devrait y avoir une telle image:



Où est le sinus que vous demandez? Le fait est que la résistance d'entrée de l'oscilloscope est grande et qu'elle ne constitue pas une charge, donc le courant ne circule pas et il n'y a pas d'où obtenir le sinus. Ajoutez une charge, j'ai fait une charge de 90 ohms à partir de résistances de 10 ohms en allumant simplement 9 pièces en série. Nous accrochons la charge aux sorties des demi-ponts et voyons l'image suivante:



Avez-vous la même chose? Il est donc temps de connecter l'inductance, le transformateur, la charge et d'essayer de démarrer. Achtung! Vous ne pouvez pas allumer ce modèle sans charge, car au ralenti, la sortie peut aller jusqu'à 350 ... 380V. Pour que cela ne nécessite pas de charge ou de système d'exploitation. Nous n'aurons pas le dernier, c'est le sujet d'un article séparé, vous pouvez, en option, attacher le P-contrôleur le plus simple, vous avez déjà un modèle de projet.

Inclusion


Après la mise sous tension, nous obtenons environ 230 V en sortie, la sortie n'est certainement pas stabilisée et flottera de 230 V + -30 V, pour les tests ça ira, dans un autre article nous finaliserons la disposition alors que je décide de parler des contrôleurs P et PI et de leur implémentation.

Maintenant, vous pouvez profiter du résultat du travail et, si nécessaire, tout mettre dans une boîte et même l'appliquer à la ferme ou à la campagne pour vous fournir de la lumière et d'autres commodités.



Vous avez probablement remarqué un délai entre le «clic», c'est-à-dire la mise sous tension du Discovery et l'allumage des lampes - c'est le temps que le MK a consacré à l'initialisation. Ce délai peut être réduit en écrivant un seul chiffre dans le registre à la fois, plutôt qu'en divisant l'entrée de registre en un tas de lignes. Je l'ai écrasé à des fins d'illustration uniquement. Bien que cela ne soit pas effrayant, avec le code HAL, le délai est 3 fois plus long et les gens vivent avec lui en quelque sorte))

Jusqu'à ce que j'oublie, la source du projet:

  • Schéma de principe - PDF
  • BOM - Excel
  • Fichiers Gerber - RAR


Reste à voir comment ça se passe avec les températures sur la planche, s'il y a des points particulièrement chauds. 5-6A n'est certainement pas suffisant, mais s'il y a un courant traversant ou une erreur grave, cela suffit pour transformer la carte en bouilloire:



Comme vous pouvez le voir, l'élément le plus chaud est le module cc / cc pour l'isolation galvanique, qui est de 2 watts, il chauffe jusqu'à 34 degrés, eh bien, également un shunt. Les transistors et le radiateur eux-mêmes ont une température ambiante après 30 minutes de fonctionnement du convertisseur))

Merci et plans


Dans un avenir proche, je prévois d'écrire sur la carte DSP et de la gérer non pas à partir de la découverte de débogage, mais à partir du module «spécialisé». Les cartes de la 2ème révision lui sont venues du même PCBway, j'attends les composants et écris immédiatement.

J'espère que vous avez apprécié l'article et l'idée elle-même. À l'avenir, sur les mêmes modules, je montrerai comment assembler un chastotnik, un contrôleur mppt ou peut-être autre chose d'intéressant. Si vous avez des questions, n'hésitez pas à les poser dans les commentaires ou en PM, si tout à coup vous n'avez pas de compte complet, je vais essayer de répondre à toutes les questions.

Maintenant, grâce à PCBway , c'est vraiment très bien qu'ils prennent en charge le moteur open source. Bientôt, les fabricants de matériel pourraient même rattraper les auteurs de logiciels en termes de nombre et de qualité des projets open source.

Source: https://habr.com/ru/post/fr428550/


All Articles