Перейти к содержанию

Душитель Гуся

Members
  • Постов

    17
  • Зарегистрирован

  • Посещение

Весь контент Душитель Гуся

  1. Ну незнаю, я вроде приручил мостовую схему. По крайней мере я не видел осцилограммы т.к. у меня нет осцилографа. Ну на невооружённый взгляд нареканий нет. Схемы драйверов не сложные.
  2. Спасиб за инфу! Ток у меня вопрос по поводу намотки вторичек. Ести тут 4 высоковольтные вторички, то я думаю намотать по одному слою каждой вторички(их 2), потом первичку, потом домотать вторички. Это хорошая идея? У меня есть подозрения, что разделение обмоток увеличит риск пробоя. Ну и второй вопрос как изолировать? По технологии Касьян(5 слоёв капт скотча на слой в 140В)?
  3. Как усложняется? Если регулировка будет по усилителю ошибки через 5-ю 5В обмотку. Шим по идее автоматически должен подстраиваться. Ну и впоследствии возник вопрос: адекватна ли идея с отдельной вторичной обмоткой, которая отвечает за стабилизацию напряжения, и не подключена к ВВ части? Будет ли пропорционально напряжение на вторичных обмотках?
  4. Ну я имею ввиду нужно ли разделять первичку подобным образом в тороидальном сердечнике или нужно разделять только ш-образный трансформатор? Мост. Потому, что назначение этого преобразователя-регулируемый источник высокого напряжения. Мало того, что там можно будет регулировать выходное напряжение переключением вторичных обмоток(4Х310В), так и будет добавлена регулировка выходного напряжения посредством шим в узком диапазоне. Мост больше всего для этого подходит. На пуш-пул будут значительные выбросы на полевиках из-за большей паузы между импульсами. Ток незнаю что надёжнее для этого: драйверы на ir2110(есть готовые платы этого модуля) или ТГР.
  5. Здравствуйте! Хочу сделать мостовой двухтактный повышаюший преобразователь 12-1200В. Вот на этом магнитопроводе. Вопрос: нужно ли разделять первичку этого преобразователя на 2 части и мотать между ними вторичку как во флайбэке?
  6. С обычными переменными таже беда Нет, пробовал. Не в этом дело. Да и эти функции исправно работали на 328р. Даже с массивами в глобалке. Дело в компиле или линке Инфы на предмет готовых и рабочих настроек на этот компиль и этот чип в инете практически нет На 328р всё работает.
  7. Тогда как его инициализировать так, чтобы он был глобальной переменной? Для дополнительной проверки возможности вызова массива из глобальных переменных я сделал светодиодный тест и пришёл к выводу, что массив не вызывается. Светодиодный тест это подтвердил. sendcharlcd() вроде работает исправно. Есть ли варик выбрать IDE, или настроить компиль и линкер так, чтобы не приходилось смотреть сгенерированный ассемблерный код и всё работало так, как задумано? да отображает это число только в нулевой ячейке. Но зачем это делать, если я подобные тесты проделывал? Если пишу массив перед int main() в whle(1) не могу его вызвать. Если в whle(1) и вызываю там же-всё ном .
  8. Понял суть описаной на этом форуме проблемы? Перемещаем массив в основной цикл. #include "main.h" char ggg []="5146845"; int main() { I2C_Init();//инициализируем TWI LCD_ini(); //инициализируем дисплей clearlcd();//очистим дисплей DDRB=0b11111111; while (1) { //----------------2* unsigned char str1[]={2,4,7,2}; //------------1* setpos(0,0); //extern unsigned char str1[]; sendcharlcd(str1[0]/100+0x30); sendcharlcd(str1[0]%100/10+0x30); sendcharlcd(str1[0]%10+0x30); setpos(4,0); sendcharlcd(str1[1]/100+0x30); sendcharlcd(str1[1]%100/10+0x30); sendcharlcd(str1[1]%10+0x30); setpos(8,0); sendcharlcd(str1[2]/100+0x30); sendcharlcd(str1[2]%100/10+0x30); sendcharlcd(str1[2]%10+0x30); setpos(12,0); sendcharlcd(str1[3]/100+0x30); sendcharlcd(str1[3]%100/10+0x30); sendcharlcd(str1[3]%10+0x30); for (unsigned int n=0;n<4;n++) { for (unsigned char a=0; a< str1[n]; a++) { PORTB |= (1<<7); _delay_ms(1000); PORTB &= ~(1<<7); _delay_ms(1000); //sendcharlcd(str1[n]); } _delay_ms(3000); } } //return 0; } Чудо-чудесное
  9. Тот же код. #include "main.h" unsigned char str1[]={2,4,7,2}; //------------1* char ggg []="5146845"; int main() { I2C_Init();//инициализируем TWI LCD_ini(); //инициализируем дисплей clearlcd();//очистим дисплей DDRB=0b11111111; while (1) { //----------------2* setpos(0,0); //extern unsigned char str1[]; sendcharlcd(str1[0]/100+0x30); sendcharlcd(str1[0]%100/10+0x30); sendcharlcd(str1[0]%10+0x30); setpos(4,0); sendcharlcd(str1[1]/100+0x30); sendcharlcd(str1[1]%100/10+0x30); sendcharlcd(str1[1]%10+0x30); setpos(8,0); sendcharlcd(str1[2]/100+0x30); sendcharlcd(str1[2]%100/10+0x30); sendcharlcd(str1[2]%10+0x30); setpos(12,0); sendcharlcd(str1[3]/100+0x30); sendcharlcd(str1[3]%100/10+0x30); sendcharlcd(str1[3]%10+0x30); for (unsigned int n=0;n<4;n++) { for (unsigned char a=0; a< str1[n]; a++) { PORTB |= (1<<7); _delay_ms(1000); PORTB &= ~(1<<7); _delay_ms(1000); //sendcharlcd(str1[n]); } _delay_ms(3000); } } //return 0; }
  10. Тот же код. Ни ошибок, ни предупреждений. 4 ячейке массива-это намеренно оставленная ошибка. Назначение этих строк: разбить 3-х разрядное число по разрядам и отправить каждое число разряда на lcdtwi диспей в виде символа Char.
  11. В этом форуме 2-ой раз. 1)Знаю, что эта запись-как попытка отобразить значение несуществующей ячейки массива. Ты просто представь. Компилятор это не выдал за ошибку. Без этих строчек результат тот же. 2) Вставка __attribute__((aligned(4))) и extern это попытка вручную прописать массив в глобальные переменные и обратиться к ним. Что с этими вставками, что без них-результат один. #include "main.h" //extern char str1[4]; //char* str1 = (char*) malloc(sizeof(char) * 4); unsigned char str1[]={2,4,7,2}; __attribute__((aligned(4))) //------------1* char ggg []="5146845"; int main() { I2C_Init();//инициализируем TWI LCD_ini(); //инициализируем дисплей clearlcd();//очистим дисплей DDRB=0b11111111; while (1) { //----------------2* setpos(0,0); //extern unsigned char str1[]; sendcharlcd(str1[0]/100+0x30); sendcharlcd(str1[0]%100/10+0x30); sendcharlcd(str1[0]%10+0x30); setpos(4,0); sendcharlcd(str1[1]/100+0x30); sendcharlcd(str1[1]%100/10+0x30); sendcharlcd(str1[1]%10+0x30); setpos(8,0); sendcharlcd(str1[2]/100+0x30); sendcharlcd(str1[2]%100/10+0x30); sendcharlcd(str1[2]%10+0x30); setpos(12,0); sendcharlcd(str1[3]/100+0x30); sendcharlcd(str1[3]%100/10+0x30); sendcharlcd(str1[3]%10+0x30); setpos(16,0); sendcharlcd(str1[4]/100+0x30); sendcharlcd(str1[4]%100/10+0x30); sendcharlcd(str1[4]%10+0x30); for (unsigned int n=0;n<4;n++) { extern unsigned char str1[]; for (unsigned char a=0; a< str1[n]; a++) { PORTB |= (1<<7); _delay_ms(1000); PORTB &= ~(1<<7); _delay_ms(1000); //sendcharlcd(str1[n]); } _delay_ms(3000); } } //return 0; } Это код не в виде картинки. Пардон Нет. Один и тот же исходник на 328 работает, а на 2560 нет. И тот и другой вариант собирается без ошибок
  12. Здравствуйте! Программировал в среде Microchip(Atmel) Stidio микроконтроллер Atmega328p. Мне понравилось программировать в этой IDE. Также изучение аппаратной части МК мне заходит больше, чем оперирование Ардуиновскими командами. Но вот незадача: прошивка на Atmega328p работала корректно с оптимизациями 1 и больше(0-не работал), а на Atmega2560 с разными настройками оптимизациями и линкера работает некорректно. Написал проверочный код на At2560. Ситуация не менялась. 1)Проблема в том, что по каким-то причинам из тела цикла while(1) невозможно получить доступ к глобальным переменным(в частности к массиву данных). Если массив размещался в теле цикла while(1), то к нему можно было получить доступ, но только из оператора if или очень простой функции. 2)Если попробовать получить массив данных из сложной функции с циклом то ячейки массива были равны 255(я записывал значения поменьше) и это при том, что я размещал массив в while(1). Долго извращался с настройками компилятора и линкера, так и ничего путного не получилось. Пробовал программировать в IAR AVR и CodeVision AVR МК At2560. У меня даже светодиод зажечь не получилось. Немного поковырялся в настройках-ничего. Слишком много времени нужно на изучение всех параметров Компиля и Линка. Забил. Пробовал Eclipse с плагином AVR и компилем AVR GCC 12.1. Вроде чутка заработало, но мне удавалось зайти в эту среду только 1 раз после установки. Второй раз я не смог зайти после закрытия проги. Работоспособность 12.1 компиля не удалось оценить. Да и собирался проект в Eclipse через раз. Товарищи, если у кого-нибудь есть пример рабочих настроек для данного девайса, не проходите мимо. Для любых вышеперечисленных IDE или IDE, которое у вас. Или укажите на работоспособный тулчейн(с параметрами). Желательно с подробным гайдом по настройке. Ассемблер впадлу учить. Ниже приведён проверочный код из Microchip Studio. Есть участки: //------1(глобальные переменные) и //------2(тело цикла while(1)). Участки размещения массива str1. И ниже два проверочных участка: 1) Отправка символов на символьный дисплей. Эта часть выводит значения ячеек массива посимвольно(функция для выведения числа целиком не работает). 2) Светодиодный тест. Значения ячейки массива выводится морганием светодиода с задержкой 1 сек. Пауза между переключением ячеек 3 сек. Массив в глобальных переменных: на дисплее 255 и светодиод неустанно моргает с паузой в 1 сек. Массив в теле цикла while(1): работает на обоих участках. Если вывод массива на дисплей занести в цикл, то реальные значения ячеек не отобразятся. Что можно с этим сделать: поменять настройки в этой среде(у меня не получилось), подключить другой компиль в эту среду(это сложно, желательно подробный гайд), выбрать другой IDE, программировать на Ардуино?
  13. Какие например? Первичку мотал по проге "Exelent". Частота 100 кгц. Даже если снизить до 30, всеравно греется. Ток первичка расчитана под напряжение ККМ(380-410), а работала от 310В. В полевиках большой запас по напряжению и току. В шиме на sg3525 увеличивал номинал резистора dt, без изменений. Запускал мост без импульсника, точно так же грелись некоторые ключи. Наверное в таком случае они не должны греться. Я предполагаю, что есть сквозные токи в мосту(подключал лампу последовательно силовой схеме с импульсником и без) результат один и тот же греются ключи и лампа горит в пол-накала. Думаю дело в драйвере, хотел попробовать трансформаторную развязку. Или может дело в отсутствующем снаббере? Но вот почему ключи грелись на хх, а когда к импульснуку подводил нагрузку в 50 Вт, нагрев практически исчезал? Осцилографом пока не могу обзавестись.
  14. Дайте пожалуйста готовую схему ккм на 1000-1500 ватт. Собираю ИИП. Готова первичная обмотка трансформатора. Шим контроллер на sg3525. А вот с драйвером проблемы. Он построен на ir2110 по схеме полный мост. На преобразователях с низким напряжением в первичной обмотке он хорошо работает, а с сетевым напряжения - не хорошо. Один из транзисторов полного моста дико греется на хх и в слабой нагрузке. Когда нагрузка в 50 вт, не греется. В чём здесь проблема? Может поменять на схему с трансформаторной развязкой?
×
×
  • Создать...