Помощь - Поиск - Пользователи - Календарь
Перейти к полной версии этой страницы на форумах сайта Электрик: Микропроцессорное управление сварочным аппаратом
Форумы сайта ЭЛЕКТРИК > Сварка, самодельные устройства для сварки > Самодельные сварочные устройства
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10


Skif
Создал эту тему, чтобы вместе подумать и реализовать микропроцессорное управление и сервис на микроконтроллерах. Может кто что знает о хитростях управления, что используют в фирменных аппратах для получения красивых швов и укладки металла. Хотелось бы найти единомышленников по этому вопросу и создать достаточно хорошую схему и универсальную, для установки в большинстве аппаратов.
(мои наработки по программированию в соседней ветке - http://www.electrik.org/forum/index.php?sh...amp;start=1040)
Начнем?
sssrsd
Завидую твоему энтузиазму и работоспособности!
по теме: думаю не стоит забывать о "помогалках" антистик, аркфорс, модулятор предложенный yjriy очень интересен. режим уменьшения хх - только как отключаемая опция. А вообще хорошо бы чтоб все опции можна отключать было, но просто и был режим "без всего" для настроек
САНЕК
Цитата(sssrsd @ 21.12.2008, 1:32) *
Завидую твоему энтузиазму и работоспособности!
по теме: думаю не стоит забывать о "помогалках" антистик, аркфорс, модулятор предложенный yjriy очень интересен. режим уменьшения хх - только как отключаемая опция. А вообще хорошо бы чтоб все опции можна отключать было, но просто и был режим "без всего" для настроек

Очень даже согласен.
Необходимая опция-регулеровка напряжения выхода.
И вопрос на засыпку для Skif,а зачем нужна версия со взломом?Сейчас в сети доступна v.5.32 в свободном полете.
monos
Тут приглашали ребят к обсуждению, есть пару слов к Skifу
1. Не понятно, каким образом организована ос по току ( интересует поцикловка).
2. Хорошо б увидеть код на СИ.

По поводу ос по напряжению пришло на ум сделать так:
на выходе мк RB2 формируется высокий уровень (начинается импульс), через несколько микросекунд на входе ADC контроллера начинается измерение. После окончания преобразования ADC, выход RB2 переходит в ноль (т.е. импульс завершается). Таким образом программа периодически опрашивает выход инвертора.
maxx
Рад что открылась данная ветка, надеюсь благодоря ей изучение МК будет проще.
Andrey_G
Тож пару слов хочу вставить. Если хотим развивать тему совместными усилиями, то палагаю, надо договариться о среде, софте и т.д...
Например Си это практически сейчас дефакто для написания программ на МК, можно использовать одни алгоритмы и для AVR и для PIC, а так же такие программмы как sPlan и sprint-layout. Для AVR-ов предлагаю среду AVR-GCC (WinAVR, AVR-Studio), дока на русском, симулятор - Proteus. Сам пока изучаю ATmega8(16), есть сдвиги, но о рабочей моделе пока рано говорить...
kash
Andrey_G, CodeVisionAVR достаточно хорошая программа для СИ. Imagecraft C самая крутая. Довайте сразу откажемся от мега8. Очень нало ножек (pin). Надо решить каким индикатором будем пользоваться. Предлагаю 16*2. Сейчас занимаюся ПА. Получается два МК мега 16. Один рулит протяжкой проволоки, второй силой. Протяжка работает . Силу отлаживаю. Нажно договориться о использовании не только софта , но и ресурсов МК. Например таймер 1 управляет ШИМ. У меня он управляет оптодрйверами. Отказался от UC. Как управлять силой. Можно ШИМ , а можно частотой. Давайте попробуем договориться.
С уваженим kash.
OlegarX-RUS
Может кому пригодится http://www.123avr.com/z8.htm
САНЕК
Цитата(kash @ 22.12.2008, 13:22) *
Andrey_G,. Сейчас занимаюся ПА. Получается два МК мега 16. Один рулит протяжкой проволоки, второй силой. Протяжка работает .

А,можно твою версию управы протягой?А то я собираюсь своять вот это http://sevzirfo.narod.ru/murex-avr-ver1-1.rar .
И если можно с описанием алгоритма.
Andrey_G
kash, CodeVisionAVR генерит код криво, а Imagecraft C сложноват. AVR-GCC не только бесплатный, но и код нормальный генерит, по крайней мере так пишут...
По МК согласен, можно и М16, и таймер 1 на ШИМ (с заделом для двухтакта или спарки). Индикатор у меня пока 4 цифры (4*1 ?) притянутый к PD...
В общем я пока в начале icon_smile.gif, не плохо было бы подсмотреть Ваши код и схемы.
kash
САНЕК, Слегка фраернулся и сделал протяжку на ШД. Сделал много вариантов управления. Надо самый простой. Стабильная подача проволки. Если тебя это не пугает сбрось адрес - скину.
С уважением kash/
MaX 123
А если выложить на форуме схему шагового, думаю многим будет интересно
kash
САНЕК, слегка фраернулся и сделал протяжку на ШД. Хотел как лучше.... Теперь понимаю , что нужно было ltkfnm проще, на коллектором движке. Если тебя это интересует сбрось свой адрес мой kash@farlep.net.
Извеняюсь за ошибку Силовыми ключами управляет таймер 0 - 8разрядный. Есль маленькая проблема. Частота инвертора будет зависит от используемого кварца. 16мГц - 62.5кГц 10мГц -39.22кГц. Схему еще не рисовал. Она постоянно переделывается. Сейчас проблема с заполением на ХХ. При уменьшении заполнения ( до 20% и более), перед трансформатором, видны колебания. Это мешает померить напряжение ХХ.
C уважением kash.

Извеняюсь за повтор у меня Интернет глючит.
С уважением kash.
kash
MaX 123, ШД бывают разные. Сначало использовал унополярый (примерно 250шагов на оборот) Сейчас биполярный (100 шагов). Биполярный более мощный. Какой интересует? Эти схемы достоточно просты и их куча. Просто биполярный это мостовая схема управления двумя обмотками(8 поливиков). Унополярная 4-обмотки и 4 полевика + общий.
Andrey_G, CodeVisionAVR полупрофессиональный , а Imagecraft C профессиональный. Поинтересуйся их ценами. Бесплатно конечно хоошо. Вообщем это дело вкуса.
Не важно на каком трансляторе пишешь важно чтобы работало. Начинал с PIC но тоска с ассемблером когда большие числа умножение, деление. Для маленьких управляющих программ PIC замечателен.
Код чего? У меня две почти не зависимые программы. Общая кнопка пуска. Скинь свой адрес вышлю.
С уважением kash.
monos
Цитата(kash @ 22.12.2008, 20:16) *
Начинал с PIC но тоска с ассемблером когда большие числа умножение, деление.

Это- точно, но для пиков тоже си существует: микроси, хайтек... Я, например, использую микроси.
MaX 123
Интересует биполярный
kash
monos, на младших моделях СИ такой урезанный. AVR cразу делался под СИ. Но МК это деле вкуса. Начинал на 8080 после него ничего не страшно. Нам нужно найти точки где наши интересы совпадали.
MaX 123,нарисую схему выложу.
С уважением kash.

monos, на младших моделях просто не СИ. AVR сразу делался под СИ. МК это дело вкуса и привычки. Начинал еще на 8080 после него ни чего не страшно.
MaX 123, нарисую схему выложу.
С уважением kash.
monos
Цитата(kash @ 23.12.2008, 3:12) *
на младших моделях СИ такой урезанный. AVR cразу делался под СИ. Но МК это деле вкуса.

С авр знаком поверхностно. В пиках привлекает то, что модуль есср (расширенный шим) дает возможность аппаратно управлять шимом, хочешь моста, хочешь полумоста, хочешь сингла, например, по сигналу встроенного компаратора. Один раз настроенный, он аппаратно шимит силу, а программа в это время меряет температуру, следит за выходным напряжение и т.п.. При этом кода там всего то два десятка строк. А как у авээров организуется шим? У них вроде есть аппаратное деление/ умножение если так, то это. конечно большой плюс. А в чем различия между си для пиков и для авээров мне новичку не понятно...
Тут на горизонте нарисовался оч. привлекательный чип дспик30ф2020, специально заточенный под применение в ибп, парочку заказал попробовать. Это, конечно, совсем другой уровень...
komar72
Цитата(kash @ 22.12.2008, 16:23) *
Частота инвертора будет зависит от используемого кварца. 16мГц - 62.5кГц 10мГц -39.22кГц.


С мегами никогда дел не имел, архитектуру не знаю, но всетаки може быть ты что-то не дочитал. Кроме того посмотри библиотеки и апноты на используемый компиллер.
Я пользую МикроС для PIC, используя встроенные библиотеки там все делается достаточно просто:

unsigned char duty

PWM_Init(39455); - частота ШИМ 39,455 кГц.
PWM_Start();
PWM_Change_Duty(duty); - Период ШИМ от 0 до 100%

Или я тебя не совсем понял.

komar72
Цитата(monos @ 23.12.2008, 8:29) *
С авр знаком поверхностно. В пиках привлекает то, что модуль есср (расширенный шим) дает возможность аппаратно управлять шимом, хочешь моста, хочешь полумоста, хочешь сингла, например, по сигналу встроенного компаратора. Один раз настроенный, он аппаратно шимит силу, а программа в это время меряет температуру, следит за выходным напряжение и т.п.. При этом кода там всего то два десятка строк. А как у авээров организуется шим? У них вроде есть аппаратное деление/ умножение если так, то это. конечно большой плюс. А в чем различия между си для пиков и для авээров мне новичку не понятно...
Тут на горизонте нарисовался оч. привлекательный чип дспик30ф2020, специально заточенный под применение в ибп, парочку заказал попробовать. Это, конечно, совсем другой уровень...


Если я не ошибаюсь ты используеш PIC16F886. Там по прерыванию от двух компараторов или внешнего INT можно отключать ШИМ аппаратно. Например компоратор_1 занимается датчиком тока, компоратор_2 занимается температурой.

По поводу различий между Си для PIC и AVR. Есть стандарт ANSI C, а применительно к микроконтроллерам - это часные случаи.
Структуру программы и синтаксис, конструкции if, while, for, do, типы данных, области видимости и действия, блоки и указатели никто не отменял. А вот обращение к SFR контроллера... это отдельная песня. Даже если рассмотреть только PIC

В МикроС это делается так.
TRISB = 0; PORTB=0x0F; PORTB.F7 = 1;
INTCON.GIE=1

А вот в CCS PICC тоже самое делается так: (лично меня это кумарит)
SET_TRIS_B(0); output_b (0x0F); output_bit( PIN_B7, 1);
enable_interrupts(GLOBAL);


Если хочеш писать программы на Си для PIC, не надо изучать язык Си по хелпу от МикроС. Лучше возми книги Дейтела или Кернигана и Риччи. (могу скинуть, если сам не найдеш)

Ну и так, на всякий случай для тех кто пишет под AVR. http://www.mikroe.com/en/compilers/mikroc/avr/


monos
Цитата(komar72 @ 23.12.2008, 17:07) *
Если я не ошибаюсь ты используеш PIC16F886. Там по прерыванию от двух компараторов или внешнего INT можно отключать ШИМ аппаратно. Например компоратор_1 занимается датчиком тока, компоратор_2 занимается температурой.

У меня С1 следит за током ключей, С2- контроль намагничивания. Температуру и др. через ацп.
Литературы хватает и печатной и в эл. виде., но на Дейтела ссылку дай- его вроде не читал...
Может быть сталкивался с дспиками, посоветуй что почитать про них на русском.
А что у тебя по теме, наработки какие есть?
САНЕК
Цитата(komar72 @ 23.12.2008, 16:07) *
Если хочеш писать программы на Си для PIC, не надо изучать язык Си по хелпу от МикроС. Лучше возми книги Дейтела или Кернигана и Риччи. (могу скинуть, если сам не найдеш)

А,это чтиво на каком языке?Если на нашенском,скинь для развития varvarvor@rambler.ru
Сколько оно весит,а то в ящик не поместится.
kash
komar72, Для управления силой использую таймер 0. 0н 8 разрядный. Делитель частоты не использую-достаточно грубый.
Делим 16мГц на 255-это полный просчет таймера следовательно без учета мелких задержек МК частота работы инвертора 62,7кГц.
Получить частоту 60кГц можно только изменяя кварц. Это самый простой вариант без сброса таймера.
monos, некоторые модели имеют аппаратное реализацию умнож. дел. но на СИ это проблема транслятора и он ее решает.
Это все частные случаи программирования. Их можно и нужно обсуждать для подьема общего уровня понимания.
Более крупный вопрос. Использовать UCили можно отказаться. У меня стоят 2 оптодрайвера и вопрос в том будет ли 1 выход МК надежно управлять ими. Возле силовой части достаточно сильные помехи.
С уважение kash.
monos
Цитата(kash @ 23.12.2008, 20:43) *
Более крупный вопрос. Использовать UCили можно отказаться.
С уважение kash.

Думаю, если у тебя шим программный, то лучше использовать ус и тактировать ее от проца. она будет заниматься поцикловкой, а мк по FB будет ею управлять, ну и измерять температуру и т.д.
А ты на какую топологию силы замахиваешся?
Andrey_G
monos, согласен. Корпус буфера все равно лепить, так пусть будет UC-ка, со стабильной и проверенной поцекловухой.
А ШИМ в меге и аппаратный есть, только можно отрубить не текущий импульс, а следующий (если я все правильно понял из шиита).
monos
Цитата(kash @ 23.12.2008, 20:43) *
некоторые модели имеют аппаратное реализацию умнож. дел. но на СИ это проблема транслятора и он ее решает

Да нет, одно дело, когда мне надо отмасшабировать результат ацп, и с учетом лонгов и дублей это займет, допустим, 10мкс, а другое- когда два-три такта. Это я к тому, что в каждом периоде шима можно измерять Uвых и соответственно быстро (в следующем периоде) корректировать шим. Поэтому я и посматриваю в сторону дспика.
kash
monos, ШИМ сделал на таймере 0 . Может и правда оставить UC. Таймером 0 ее будет тактировать. Но тогда еще один таймер уйдет на регулировку заполнения. Пока оптимального решения не вижу.
Для повышения скорости просто выбираешь модели имеющие аппаратную реилизацию умнож.и дел. Быстро измерить напряжение лучше компоратором. Двумя получаешь вилку мах и мин. и внешнее прерывание.
monos
2kashЭта схемка сэм софта, он её на мастерсити выкладывал, посмотри, может пригодится. Нажмите для просмотра прикрепленного файла
На счет компараторов и внешн. прерывания- это мысль, надо подумать над этим, но, боюсь получится огород. У меня пока задумка сделать, как писал выше.
golub
Может это поможет создать велосипед.
http://flyfolder.ru/9711633
Андрей это то что вы вопрошали.
Andrey_G
Цитата(golub @ 24.12.2008, 1:27) *
Андрей это то что вы вопрошали.
Спасибо golub.
kash, а зачем UC-ку тактировать? Пусть сама тактируется. А если тактировать, то мож лучше 3843 использовать, она не делит частоту пополам...
monos, ткни носом где sam_soft выкладовал свое творение. С месяц назад попытался найти (тогда занялся МК), но безрезультатно. Или он как-то приватно выкладовал, или слал на ящик?
komar72
Цитата(monos @ 23.12.2008, 14:32) *
Литературы хватает и печатной и в эл. виде., но на Дейтела ссылку дай- его вроде не читал...
Может быть сталкивался с дспиками, посоветуй что почитать про них на русском.
А что у тебя по теме, наработки какие есть?

По dsPIC на русском наврядли... пока.
Можно сюда заглянуть, http://wiki.pic24.ru/doku.php - неплохая операционная система.
Cсылка на Дейтела (размерчик однако 55 метров)
http://www.infanata.org/2006/11/17/kak_pro...zh_dejjtel.html
Для САНЕК
Ну а это классика. Керниган Б.В., Ричи Д.М. Язык С(PDF, на русском языке, размер 1,5 метра)
http://slil.ru/26476471
komar72
Цитата(kash @ 23.12.2008, 17:43) *
komar72, Для управления силой использую таймер 0. 0н 8 разрядный. Делитель частоты не использую-достаточно грубый.
Делим 16мГц на 255-это полный просчет таймера следовательно без учета мелких задержек МК частота работы инвертора 62,7кГц.
Получить частоту 60кГц можно только изменяя кварц. Это самый простой вариант без сброса таймера.

С каждым тактовым импульсом происходит инкремент счетчика от 0h00 до 0xFF. Прерывания от Таймера возникают при переполнении счетчика т.е. каждые 255 тактов. Если в регистр счетчика записать значение 0х7F то счетчик будет считать не от 0х00, а от 0х7F и прерывание наступит не через 255 тактов, а через 127. Таким и только таким образом формируются временные задержки.
Цитата(kash)
Получить частоту 60кГц можно только изменяя кварц. Это самый простой вариант без сброса таймера.

Пардон за сарказм, а ток в цепи коллектора транзистора чем регулируется? подбором транзистора или резистора.
kash
monos, спосибо конечно. Если сэм это sam soft то он выкладывал и программу. Схема уж больно похожа.
Идея использовать внешнии компораторы для быстрого измерения не моя, но эта классика. Ты только задаешь при помощи МК опорное напряжение. Второе можно получить из первого - оно меньше на величину вилки. Изменяя опорное ловишь текущее далее просто его отслеживаешь.
Andrey_G, sam_soft свое творение слал на ящик. Идея тактировать - это его. наверно меняя частоты управляет выходным напряженим. Частоты нужно знать дл

Продолжаю. Для управлением заполнением и через него выходным напряжением.
Andrey_G
kash, вряд ли он менял частоту, скорее скважность, но не понятно зачем два контура регулирования у него - тактирование ШИМ и по входу FB UC-ки.
monos
ткни носом где sam_soft выкладовал свое творение.
На мастерсити, а где- уже не помню, код вроде не выкладывал. Кому интересно может сам на мастерах задать ему вопрос. По поводу его топологии- это однотакт, если не ошибаюсь, фикса- по его словам он к двутактам не тяготеет, регулировка тока- шим.
kash
На счет компаратора в цепи измерения U вых, натолкнул на кое какие соображения с применением внутреннего компар. надо помозговать...
komar72, спасибо.
kash
monos, Где то весной на мастер-сити было кроткое сообщение sam_soft(а). Написал письмо месяца через 2 получил схему и программу. Все комментарии на английском.
Попробуй, если хочется, на внутреннем компораторе. Посмотри выше ссылку выложил golub там готовый кусок схемы правда для внешнего компоратора.
Andrey_G, с уменьшением частоты падает мощность передоваемая трансформатором. У него заведен сигнал тактирование на UC см. схему выложенную monos выше.
C уважением kash.
monos
Цитата(kash @ 24.12.2008, 20:31) *
с уменьшением частоты падает мощность передоваемая трансформатором.

При постоянной длительности импульса? Если нет, то должен быть приличный запас по индукции в трансе.
Andrey_G
Цитата(kash @ 24.12.2008, 19:31) *
Andrey_G, с уменьшением частоты падает мощность передоваемая трансформатором. У него заведен сигнал тактирование на UC см. схему выложенную monos выше.
C уважением kash.
Так я про то и говорю, два контура у него и тактовый сигнал заведен с ОС1А и рег. по FB (с ОС2). Только вот частоту просто так уменьшать низя - транс влетит в насышение. Можно только увеличить, или же частоту, или дедтайм, но зачем этот огород, когда инвертор работает на невысокой частоте - 75\2 кГц. Может тут какой тайный смысл, по-тому и спрашиваю.
На мой взгляд вполне можно обойтись и простым тактированием ШИМ-ом, организованным хоть на прерываниях, хоть аппаратно.
kash
Andrey_G, Это все для меня тоже загадка . Поэтому делаю свой инвертор. Делаю то, что ястно для меня.
Возможно на разных режимах используется разные регулировки. У него есть режит лифт. Плавное поднятие напряжения при начале работы. Возможно этот режим реализован на смене частоты. Придется смотреть программу. Мы с ним пользуемся разными трансляторами.
На сколько помню у него ПА. Нужно отслеживать напряжение. Напряжение можно отслеживать заполнением. Наличие UC все усложняет. Просто на таймере реализуешь
kash
Andrey_G, мы не знаем как меняется частота. Наверно немножко можно. Неверно на разных режимах разные регулировки.
У него есть режим лифта. Возможно он реализован на изменених частоты. Надо смотреть его программу.
monos, подключал ли ты свою схему к силе?
С уважением kash

Извеняюсь но у меня проблеммы с отправкой . Говорит что длинное сообщение. Вообщем ругается.

monos
подключал ли ты свою схему к силе?
Подключал. Погонял сначала с активной нагрузкой (вместо транса пару чайников), чтобы проверить поцикловку- все ок, включался вентилятор, срабатывала защита о перегрева, хотстарт... С трансом вышел казус- было кз во вторичке- нагревался на хх до 50 гр. целс. за секунды. Пришлось перематывать. Перемотал, чтобы правильно сфазировать вторичку включил без вых. диодов, заполнение макс.- не могу сообразить где начало обмотки. Не подумав, решил нагрузить вторичку (без диодов), чтобы на мин задании импульс стал коротким, в результате- рванули ключи. Все собираюсь заменить ключи- нет времени... На мастерсити, в ветке про мк, были фото...
Skif
Извините, но попытаюсь объять необьятное.
Цитата(sssrsd @ 21.12.2008, 2:32) *
думаю не стоит забывать о "помогалках" антистик, аркфорс, модулятор….
Это бы хорошо сделать. Но нужно каждую опцию разложить по косточкам, для ее моделирования и внедрения. А так – только за!
Цитата(monos @ 21.12.2008, 8:08) *
Тут приглашали ребят к обсуждению, есть пару слов к Skifу
1. Не понятно, каким образом организована ос по току ( интересует поцикловка).
2. Хорошо б увидеть код на СИ.
1. Ее в резонанснике нетути…А Косым или Мостом с жесткой коммутацией я к сожалению не занимался. В этом вопросе я - 0
2. Код на СИ не покажу – нету у меня его. Я програмлю на отвлеченной от СИ и Асемблера программе icon_smile.gif
Цитата(Andrey_G @ 21.12.2008, 21:42) *
Тож пару слов хочу вставить. Если хотим развивать тему совместными усилиями, то палагаю, надо договариться о среде, софте и т.д...Например Си это практически сейчас дефакто для написания программ на МК….симулятор – Proteus…
Трудно будет договариваться о софте. Каждый будет к сожалению по прежнему пользоваться тем к чему привык. Тут уж проще обсуждать (зная архитектуру процов) способы использования аппаратных ресурсов, для решения тех или иных задач (как то таймера, АЦП, компараторы и прочее)

А вот СИ совсем не де-факто… Тут нужно не из крутизны языка исходить, а из задач. Простые задачи на СИ решать, все равно что микроскопом гвозди забивать. На СИ писать проще, но отлаживать – хай Бог милует. Код генерируется не всегда красивый и зачастую довольно длинный. Особенно это проблема при обработке кратковременных процессов, как например высокочастотная генерация ШИМ или ЧИМ в нашем случае. Откуда берутся те или иные косяки – фиг найдешь.
На Ассемблере сложнее писать – но видишь все подетально и отлаживать веселее. Хотя сложные программы на нем писать, все равно, что котлован чайной ложкой рыть.
Наверно поэтому я остановился на чем-то среднем. На Algoritm Builder. Но это чисто мое мнение.
А PROTEUS - да... вещь хорошая. Оценил его по достоинству при отладке программ.
Цитата(kash @ 22.12.2008, 14:22) *
Andrey_G Довайте сразу откажемся от мега8. Очень нало ножек (pin). Надо решить каким индикатором будем пользоваться. Предлагаю 16*2. Сейчас занимаюся ПА. Получается два МК мега 16…Как управлять силой. Можно ШИМ , а можно частотой. Давайте попробуем договориться
Ну почему откажемся…Я например совсем не хочу этого делать. Для управления силой она чудно подойдет и еще ноги останутся. Потому как нехорошо вешать на управляющий проц еще что-либо, кроме разных вариантов управлений (ЧИМ,ШИМ,ФИМ) – чревато, при малейшем сбое – поплатитесь мостом(полумостом). При цене проца в 2$ - сомнительная экономия. Такой монстр как атмега 16, там ни к чему на управлении. А вот в сервисе (индикаторы, протяжка) он конечно оправдан.
Индикатор ЖКИ 16*2 мерещится мне, неудобен в такой вещи как сварочник, даже будучи с подсветкой. Потому как к нему присматриватся надо. Неудобно, с 3 метров уже не увидишь. Потому себе буду делать на светодиодных, они даже будучи небольшими – отчетливо видны издалека. И поставлю не более 2 штук 3х циферных, потому как действительно необходимых высвечиваемых параметров – раз-два и обчелся.
А по поводу управления, почему все варианты управлений не включить в один проц? Я правда пока сделал ЧИМ и ШИМ, на подходе модуляция с теряющимися тактами, она правда уместна лишь на резонанснике..
Цитата(kash @ 22.12.2008, 19:23) *
САНЕК…Частота инвертора будет зависит от используемого кварца. 16мГц - 62.5кГц 10мГц -39.22кГц.
Почему же? Не будет. Смотря как генерировать частоту. Я взял 16МГц кварц. У меня получилось почти плавное (самая большая дискретность 500Гц это при макс.частоте и она с уменьшением частоты уменьшается) изменение частоты от 8кГц до 50кГц
Цитата(monos @ 23.12.2008, 11:29) *
В пиках привлекает то, что модуль есср (расширенный шим) дает возможность аппаратно управлять шимом, хочешь моста, хочешь полумоста, хочешь сингла, например, по сигналу встроенного компаратора
У авр серии атмега (самая распространенная) все таймеры на борту(от 2 до 3 таймеров), могут генерить 8ми или 12разрядный ШИМ . Единственное – в нашем деле от него толку мало. Потому как его частота привязана к кварцу.
Цитата(komar72 @ 24.12.2008, 15:43) *
С каждым тактовым импульсом происходит инкремент счетчика от 0h00 до 0xFF. Прерывания от Таймера возникают при переполнении счетчика т.е. каждые 255 тактов. Если в регистр счетчика записать значение 0х7F то счетчик будет считать не от 0х00, а от 0х7F и прерывание наступит не через 255 тактов, а через 127. Таким и только таким образом формируются временные задержки…
А вот тут я поспорю. Не стоит так безаппеляционно говорить «так и только так». Я например формировал временные задержки без таймеров и прерываний. Причем иногда так предпочтительнее и точнее(не теряются такты при завершении операций до перехода на прерывание). А когда делал ШИМ и ЧИМ, формировал временные интервалы используя регистры сравнения А и В таймера Т1 в процессоре Атмега8. Причем диапазон этих временных интервалов – куда шире чем при «так и только так». Может и еще кто-то, какие-то варианты формирований придумал. Пока о них не знаю...
kash
monos, Я это делал через ЛАТР. Силу подал через ЛАТР 40в на входе. Ключи остались целы. Прблема другая при уменьшении заполнения на входе Тр. появляется колебание. При заполнении 49% колебание нет. Чем меньше заполниние тем акттивнее колебания. Наверно Тр. и емкости образуют контур. Нужно проверить. Когда восстановишь ключи проверь .
Skif, надо уважительнее быть на форуме. Мы все можем спорить и что то даказывать.
Например утверждение на счет молого быстродействия. Кто мешает вставить кусок на ассемблере.
Сложность отлаждки на СИ решаются если есть приличный индикатор, а не пару светодиодов. Вставляешь в тело программы сообщения и контролируешь процесс выполнения. Все достаточно просто. А мега16 МК - слабенький просто много ног и дип корпус.
С уважением kash/
Andrey_G
kash, колебания какого рода, картинки нет? Для полной ясности еще бы осцилы на входе драйвера и на ключах.
А в чем проблемат отладки на Си? В AVRStudio разницы не заметил на чем код написан, есть окно дизасемблера там весь Си код припарирован...

P.S. Такой вопрос. В M8 АЦП сконфигурирован так:

// ADC Clock: 1000.000kHz
// ADC Voltage Reference: AREF
// ADC High Speed Mode

нормальных 8 бит он будет отдавать?
kash
Andrey_G, две вопроса. Первоначальная конфигарация и пустое первое преобразование. Работа с конкретный каналом. Тактова частота в АЦП в приделах 50-200кГц. Определяется делителем и частотой кварца.
Начальная настройка
ADMUX=0;
ADCSR=0xC0;
работа
ADMUX = выбор канала;
ADCSR|=0x40;
while (!(ADCSR&0x10));
ADCSR|=0x10;
i = ADCL;
i+=(int)ADCL<<8;
В этом варианте 16 бит.
Если надо сброшу тестовую программу.
У отладке на СИ проблем нет. AVRStudio пользовался один раз. Лень наверно.
Как выложить картинку не знаю. Если можешь подскажи.
С уважением kash/
Andrey_G
kash, мне не надо ни 16 бит ни 10, надо 8, а преобразование по возможности быстрое. Хочу попробовать так:

void adc_init(void)
{
// ADC Clock: 1000.000kHz
// ADC Voltage Reference: AREF (2.5V)
// ADC Noise Canceler Disabled
// ADC Free Running
// ADC High Speed Mode
SFIOR |= 0x10;
ADMUX = 0x0;
ADCSR = 0xeb;
}

ISR(ADC_vect)
{
static unsigned char input_index = 0;
// Read the 8 most significant bits
// of the AD conversion result
adc_data[input_index] = ADCH;
// Select next ADC input
if (++input_index > (ADC_LAST_INPUT - ADC_FIRST_INPUT))
input_index = 0;
ADMUX = (ADC_FIRST_INPUT | 0x20) + input_index;
// Delay needed for the stabilization of the ADC input voltage
_delay_us(10); // здесь пока задержка, но будет вызов функции расчета
// среднего значения по 8 выборкам.
// Start the next ADC conversion
ADCSRA|=0x40;
}

Т.е. измерение значений будет происходить в фоне, а для использования брать уже расчитанное усредненное значение. Пройдет такая замута, как думаешь?

Картинку вставить можно через "управление текущими файлами" под полем где ответ пишишь: обзор->загрузить и выбрать, или через foto.radikal.ru или подобный сервис.
kash
Andrey_G, Давай начнем с начала. Что будем мерять. Наверно выходное напряжение. Если да то как. Есть развязка оптическая или нет. Диапозон напряжения. Какая точность измерения. Мне пришлось пробывать. От постояного напряжения выходное отклонения в разы. Когда пробывал считывать нескольно входов аказалось они влияют друг на друга. Надо все делать осторожно. Быстрее не усреднять, а отбрасывать сдвигом 1-2разяда.
Вообщем ответ да.

Попробывал указать фото. Это вход ТР с уменьшеным заполнением. Если заполнение около 50% от все нормально.

проверил не получилось, а жаль.
С уважением kash.
kash
[img]http://s39.rsdikal.ru/i084/0812/f6/7b2706ddd451.jpg[/img попытка номер два.

http://s39.radikal.ru/i084/0812/f6/7b2706ddd451.jpg
Извеняюсь но не получается. kash.
Andrey_G
kash, а какая разница напряжение с какого датчика АЦП будет мерить? Напряжение оно и есть напряжение. Если там помеха, то это проблема скорее железа. А вот то что каналы влияют друг на друга это ни есть хорошо. В чем это выражается?
Усреднять, думаю, все равно надо (мож не 8 выборок, а хотяб 4), и проверять границы результата измерения. А сдвигать, так в коде так и зделано: выравниваю в лево и отбрасываю младшие разряды там все равно мусор будет, забираю старшие.

Картинку посмотрел, по-моему это проблема осцила, а не железа.

З.Ы. Блин, про усреднение и здвиг понял только со второго раза icon_smile.gif.
kash
Andrey_G, По картинке. При заполнении около 50-80% картинка нормальная.При уменьшении заполнения ползет помеха.
Она видна на картинке.
Напряжение через оптику имеет ограничения вносимые оптикой. Светодиод открувается при 1.1-1.4В. Это и есть твое входной напряжение.Оптика имеет нелинейность.Но защищает канал.
Как влияют каналы. У меня ток и напряжнение задавались потенциометрами 10кОм. Крутишь один, на втором плывут младшие разряды. Пришлось ток задавать по другому.
Как усреднять и на сколько вопрос только времени. Хватает тогда вперед. Иногда усреднял 128 значений.
Младшие разряды обычно шумят. Поэтому их отбрасывают.
С уважением kash.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
   Rambler's Top100      
Электрик © 2002-2008 Oleg Kuznetsov     
  Русская версия IP.Board © 2001-2025 IPS, Inc.