Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
Vozz
0 / 0 / 0
Регистрация: 22.06.2016
Сообщений: 29
1

Не работает драйвер IR2130

12.12.2016, 15:59. Просмотров 3155. Ответов 17
Метки нет (Все метки)

Всем привет! Собрал вот такую схемку:

Микроконтроллер Атмега16. На ноге PD5 получаю ШИМ с переменным коэффициентом заполнения (от 0 до 360 град - синус смещен на +1 вверх). Так как сигнал на ноге МК 5 Вольт, то захотелось его прокачать до 15-ти, чтобы впоследствии управлять полевиками IRF830. Дома валялся тайваньский блок питания 15 В, 1500 мА. Вхолостую выдает 20 В. Все собрал как по схеме, GND микроконтроллера объединил с VSS драйвера с нулем блока питания и нулем источника питания для микроконтроллера (3 батарейки по 1,5 В = 4,5 В). На выходе драйвера (клемма 1 на рисунке) какие то 2 Вольта со страшной формой сигнала (это если осциллографом), цэшка так вообще 17,5 В показыввает, ШИМ там вообще не видно. Спустя полчаса даже страшный ШИМ пропал и просто висит уровень постоянного напряжения 17,5 В )))
Так ведь там должен быть точно такой же ШИМ. как и на ноге микроконтроллера, только амплитудой около 20 В! Или я в чем то ошибаюсь? Драйвер ведь для того и нужен, чтобы прокачивать затвор полевика более высоким напряжением, если МК сам не справляется...
Залез в даташит на 2130 там что то про логические уровни (параметры V1H и V1L). Подскажите. может быть в этом вся закавыка? и почему драйвер сначала что то пытался выдавать, а теперь молчит.
Есть подозрение еще, что напряжение с блока питания было чуть выше 20 В. Мож попалился драйвер?


<Изображение удалено>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2016, 15:59
Ответы с готовыми решениями:

Работа атмега16 с драйвером IR2130
Здравствуйте всем! Подскажите по работе с драйвером IR2130 ! Собрал вот такую...

Ir2130 atmega и асинхронник
Вчера вдруг понадобился регулируемый привод дома есть асинхронник и мк ir2130 и...

Не работает драйвер IR2117 при ШИМ на Atmega8
Собственно, почему-то не открывается драйвер IR2117 при работе ШИМ на Atmega8....

MIDI, FT232, драйвер ком-миди от Roland. Не работает.
Итак, миня завут Илексиндр, я хотел бы вас попросить о совете, суть такова....

Не работает драйвер
Всем доброго дня (ночи)! Имеется 2 ноутбука: air late 2011 (i7, 4, 128, usb...

17
Kitvym
0 / 0 / 0
Регистрация: 07.08.2016
Сообщений: 432
12.12.2016, 16:19 2
Цитата Сообщение от Vozz
Драйвер ведь для того и нужен, чтобы прокачивать затвор полевика более высоким напряжением
А вы прокачиваете мультиметр и осциллограф :) Используйте Low side драйвер.
0
yiv91
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 1,625
12.12.2016, 16:42 3
Все выводы "высокой стороны" - плавающие, т.е., не имеют гальванической связи с землей или питанием. Чтобы драйвер верхнего плеча работал как драйвер нижнего плеча, ему надо "подставить плечо" - ногу VS1 соединить в общим проводом.
0
Vozz
0 / 0 / 0
Регистрация: 22.06.2016
Сообщений: 29
12.12.2016, 16:49 4
В смысле использовать выход драйвера для нижнего плеча? Я кажется понял вас!
То есть драйвер верхнего плеча в моем случае заработает когда на VS1 будет присутствовать минус, а драйвер нижнего плеча сейчас по идее должен заработать, потому что VS0 связан с VSS?
сейчас попробую ногу VS1 соединить с VSS
0
Vozz
0 / 0 / 0
Регистрация: 22.06.2016
Сообщений: 29
12.12.2016, 16:56 5
Попробовал соединить VS1 с VSS - выходное напряжение на HO1 падает до нуля. Убираю перемычку - на ноге HO1 опять появляется 17,5 В
0
Kitvym
0 / 0 / 0
Регистрация: 07.08.2016
Сообщений: 432
12.12.2016, 17:02 6
Цитата Сообщение от Vozz
Попробовал соединить VS1 с VSS - выходное напряжение на HO1 падает до нуля. Убираю перемычку - на ноге HO1 опять появляется 17,5 В
Либо на HIN1 высокий уровень, либо драйвер накрылся. Глянул в ДШ, в этом драйвере есть защита, которая отключается только сигналом на LIN.
0
Vozz
0 / 0 / 0
Регистрация: 22.06.2016
Сообщений: 29
12.12.2016, 17:10 7
То есть на LIN тоже должен быть ШИМ... Проверим, допаяю и загоню ШИМ на LIN
0
Kitvym
0 / 0 / 0
Регистрация: 07.08.2016
Сообщений: 432
12.12.2016, 17:14 8
Если на FAULT низкий уровень, то сработала защита.
0
Vozz
0 / 0 / 0
Регистрация: 22.06.2016
Сообщений: 29
12.12.2016, 19:05 9
и правда, на FAULT 0 Вольт. Но разве судя по ДШ FAULT работает не наоборот?
Лог элемент ИЛИ выдаст "1" только тогда, когда сработает детектор низкого напряжения ИЛИ токовый компаратор. Как я понимаю. в блоке FAULT LOGIC "S" - означает SIT вроде установить аварию и "C" = clear - очистить
0
Kitvym
0 / 0 / 0
Регистрация: 07.08.2016
Сообщений: 432
12.12.2016, 19:11 10
FAULT - инверсный выход, об этом говорит черта над ним.
И так, условия получения высокого уровня на HO1
1) FAULT = 1
2) LIN1 = 1
3) HIN1 = 0
0
Vozz
0 / 0 / 0
Регистрация: 22.06.2016
Сообщений: 29
12.12.2016, 19:23 11
Упс, ненаблюдательность моя )
Спасибо. что дали пищу для размышлений! FAULT = 0, он тормозит блок INPUT SIGNAL GENERATOR, cледовательно может быть две причины: либо ненормальное питание драйвера (замерил цэшкой - там 20 - 20,6 В). И второе: так как HIN и LIN работают попеременно, то значит я неправильно подаю ШИМ и драйвер его не кушает.

Думаю самое вероятное - это питание драйвера. Завтра сколочу какой нибудь делитель напряжения :)

Код
/*
* SINUSSA.c
*
* Created: 04.12.2016 10:44:26
*  Author: Администратор
*/

#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdlib.h>

/*Формируем массив для фазы А положительная полуволна*/

int sinA1[128]={127,134,140,146,152,158,164,170,176,182,187,193,198,203,208,213,217,222,226,230,233,
236,240,242,245,247,249,251,252,253,254,254,254,254,254,253,252,251,249,247,245,242,
240,236,233,230,226,222,217,213,208,203,198,193,187,182,176,170,164,158,152,146,140,
134,127,121,115,109,103,97,91,85,79,73,68,62,57,52,47,42,38,33,29,25,22,19,15,13,10,
8,6,4,3,2,1,1,0,1,1,2,3,4,6,8,10,13,15,19,22,25,29,33,38,42,47,52,57,62,68,73,79,85,
91,97,103,109,115,121};

int i;

/*Формируем массив для фазы А отрицательная полуволна (Сдвиг на 180 град)*/

int sinA2[128]={127,121,115,109,103,97,91,85,79,73,68,62,57,52,47,42,38,33,29,25,22,19,15,13,10,
8,6,4,3,2,1,1,0,1,1,2,3,4,6,8,10,13,15,19,22,25,29,33,38,42,47,52,57,62,68,73,79,85,
91,97,103,109,115,121,127,134,140,146,152,158,164,170,176,182,187,193,198,203,208,213,217,222,226,230,233,
236,240,242,245,247,249,251,252,253,254,254,254,254,254,253,252,251,249,247,245,242,
240,236,233,230,226,222,217,213,208,203,198,193,187,182,176,170,164,158,152,146,140,
134};

int j;

ftoot fa=2;   //Амплитуда фазы А

ISR (TIMER2_COMP_vect)  {OCR1A=sinA1[i]/fa;i++; if(i>127) i=0; OCR1B = sinA2[j]/fa; j++; if(j>127) j=0;}

int main (void)
{
PORTD=0x00; //Установили на всех выводах порта D лог "0"
DDRD=0xB0; // Настроили  PD7,PD5 и PD4  как выходы

/*Настраиваем канал OC2. Нужно задать режим без предделителя, СТС*/

TCCR2 = (1<<WGM21) | (1<<CS20) | (1<<COM21) | (1<<COM20); // Настроили T2 СТС без предделителя

TCNT2 = 0x00;
OCR2 = 0x9D; // В регистр сравнения запихали число 157. На 157-м тике таймера TCNT2 сработает прерывание по СТС
ASSR=0x00; // Тактируемся от внутреннего источника частоты

/*Настраиваем T1. Нам нужен режим FAST PWM, не инверт ШИМ, без предделителя*/

TCCR1A= (1<<WGM10) | (1<<COM1A1) | (1<<COM1B1); // Режим без предделителя, FAST PWM, не инвертированный сигнал
TCCR1B= (1<<WGM12) | (1<<CS10); //
TCNT1=0x00; // счетный регистр = 0

OCR1AH=0x00;
OCR1AL=0x00; //
OCR1BH=0x00; //
OCR1BL=0x00; //

TIMSK = (1<<OCIE2); // Прерывание сработает при совпадении OC2 и счетного регистра. OCIE2 = 1
sei(); // Разрешаем прерывание

while (1)
{

// Бесконечный цикл. Если выполняется прерывание, то программа в цикл не заходит
}

;}
На всякий случай код моего ШИМа
0
Kitvym
0 / 0 / 0
Регистрация: 07.08.2016
Сообщений: 432
12.12.2016, 19:38 12
Самая вероятная причина, что ITRIP висит у вас в воздухе, соответственно защита включается на каждый чих.
0
bw429
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 322
12.12.2016, 21:33 13
По простому можно только нижний ключ запустить, потом надо разбираться с бутстрепным методом...
0
Vozz
0 / 0 / 0
Регистрация: 22.06.2016
Сообщений: 29
13.12.2016, 17:31 14
Наконец то заработало!!! Правда, не совсем как нужно... Запустил драйвер нижнего плеча.
Видно, что на выходе LO драйвера присутствует ШИМ с нужной мне амплитудой и частотой, НО ... !
Все это дело пропустил через RC - фильтр. Видно, что синусоида начинается не с ноля, а с некоторого положительного значения. То, что у нее форма как у синуса пропущенного через диод, это понятно - уровень открытия драйвера нижнего плеча не с ноля начинается а со значения V1H, указанного в ДШ на IR2130.
Вопрос: получается, если буду использовать полевик (без RC-фильтра на выходе драйвера), то он до конца закрываться не будет???

Насчет FAULT. На нем все также низкий уровень висит, но ШИМ на выходе драйвера присутствует

Как вариант хочу попробовать перебить массив программы под драйвер.


<Изображение удалено>


<Изображение удалено>
0
Kitvym
0 / 0 / 0
Регистрация: 07.08.2016
Сообщений: 432
13.12.2016, 17:48 15
На второй картинке верхний луч - это выход драйвера без фильтра?
0
Vozz
0 / 0 / 0
Регистрация: 22.06.2016
Сообщений: 29
13.12.2016, 17:58 16
Цитата Сообщение от Kitvym
На второй картинке верхний луч - это выход драйвера без фильтра?
Да, именно так
0
Kitvym
0 / 0 / 0
Регистрация: 07.08.2016
Сообщений: 432
13.12.2016, 18:04 17
Тогда у вас драйвер работает как-то не так, добейтесь высокого уровня на FAULT.
0
Vozz
0 / 0 / 0
Регистрация: 22.06.2016
Сообщений: 29
16.12.2016, 14:50 18
Заработало! На FAULT появился уровень логической единицы. Вся проблема была в том, что я неправильно подавал ШИМ. HIN и LIN работают по принципу исключающего ИЛИ, а у меня на HIN и LIN подавались логические единицы одновременно.
Правда спустя полчаса драйвер вышел из строя ((( мож че где коротнул. Плата то макетная
По поводу того. что напряжение с выхода драйвера выше ноля на 2,5 Вольта ... Подумал так.. а почему бы и нет. Ведь у большинства полевых транзисторов Vgs для открывания его начинается именно с 2,5 Вольт ! Видимо производитель драйверов это предусмотрел
0
16.12.2016, 14:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2016, 14:50

Драйвер не работает в виртуалке
Поставил Windows 7 на виртуалку, на компе тоже семёрка. Компилирую драйвер,...

Не работает USB драйвер
Система WindowsXP, то-ли после установки обновлений, то-ли из глюков...

не работает сетевой драйвер
привет, поставил леопард на acer 5620..все работает, кроме сетевой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru