Power Electronics
http://valvol.ru/

двухядерный сварочник
http://valvol.ru/topic618.html
Страница 5 из 22

Автор:  monos [ 31-01, 15:16 ]
Заголовок сообщения: 

MasterCat писал(а):
т.е. по компаратоу рубится выход шима, а в этом регистре лежит огрызок до которого досчитал?

Нет :). По компаратору шим, конечно рубится, но я имел ввиду ацп- он аппаратно может запускаться при сработке компаратора (или привязан к такту шима или к каждому, или к кратному, допустим 2(3,4,8)). У каждого канала ацп свой регистр, куда и ложится результат преобразования адика.

Автор:  MasterCat [ 31-01, 15:41 ]
Заголовок сообщения: 

monos писал(а):
Собственно привлек его шим http://flyfolder.ru/16186565

http://www.atmel.com/dyn/resources/prod ... oc7710.pdf
посмотри раздел PSC со стр 132. и особенно INPUT mode

Автор:  MasterCat [ 31-01, 15:58 ]
Заголовок сообщения: 

monos писал(а):
имел ввиду ацп- он аппаратно может запускаться при сработке компаратора

я обчно раз 100 считываю и потом беру среднее. отстроиться от помех надобно ведь. поэтому АЦП сам по себе. и использую предыдущее значение. впрямую никогда

Автор:  monos [ 31-01, 18:46 ]
Заголовок сообщения: 

MasterCat писал(а):
я обчно раз 100 считываю и потом беру среднее

100- не много ли? Может есть пример на си...

Автор:  monos [ 31-01, 19:06 ]
Заголовок сообщения: 

MasterCat писал(а):
посмотри раздел PSC со стр 132.
Посмотрел. Для восьмибитника хорош, и по входу ацп есть пара операционников. Однако, на фоне 30 и 33 пиков слабоват...

Автор:  MasterCat [ 31-01, 19:51 ]
Заголовок сообщения: 

monos писал(а):
Может есть пример на си...

Код:
while(1){

          temp_V_os_PWR = Get_V_os_PWR();
            if(count_V_os > 0){
                  count_V_os--;
                   summ_V_os_PWR += temp_V_os_PWR;
            }
            else {
                     summ_V_os_PWR = summ_V_os_PWR / 20;
                      temp_V_os_PWR = (U8) ((U16) summ_V_os_PWR);
                       count_V_os = 20;
                   }
//это в main

//в прерывании:
#pragma vector = ADC_vect
__interrupt void ADC_interrupt(void);

__interrupt void ADC_interrupt(void){
unsigned char  temp_adc_result = 0;
        temp_adc_result = ((unsigned char)(ADCH));
 
        if( temp_adc_result >0xf0) temp_adc_result =0xfc;

switch (gv_adc_state) {
       gv_Vcc_tst = (unsigned char) ( ( (unsigned int)((unsigned char)(temp_adc_result) + (unsigned char)( gv_Vcc_tst)) ) >> 1 );//среднее с предыдущим
             gv_adc_state = V_os_PWR_CONV;
         Start_conv_channel(V_os_PWR_CHANNEL);
      break;

      case V_os_PWR_CONV :

         gv_V_os_PWR = (unsigned char) ( ( (unsigned int)((unsigned char )(temp_adc_result) + (unsigned char)(gv_V_os_PWR)) ) >> 1 );

          gv_adc_state = middleCurrent1_CONV ;
        Start_conv_channel(V_middleCurrent1_CHANNEL);
        break;


примерно так.
дальше заряжаем DAC скоммутированный внутри на вход компаратора и он с этой опрой живет до следующего раза/
! текст выдернут фрагментарно, для примера

вот прерывание для получения фактической ширины импулься, которы йполучился от внешнего воздействия ОС по току.
#pragma vector = PSC0_CAPT_vect
__interrupt void PSC0_capture_event_interrupt(void);

__interrupt void PSC0_capture_event_interrupt(void){
Disable_psc0_external_event_a_interrupt() ;
InputCaptureRegister_LO_0 =PICR0L;


}

Автор:  MasterCat [ 31-01, 19:54 ]
Заголовок сообщения: 

monos писал(а):
Для восьмибитника хорош

monos писал(а):
Однако, на фоне 30 и 33 пиков слабоват

так на спарку косяков его вполне хватает. а вот тройник уже слабоват . это да. ну так под рукой si8050

Автор:  MasterCat [ 31-01, 19:59 ]
Заголовок сообщения: 

monos писал(а):
и по входу ацп есть пара операционников

главное, что он аппаратно реализует своими модами мыслимые базовые режимы управления. 9-я мода так просто стадарнтый а-ля 8535 или 494й, ну или любымый всеми 8343.

Автор:  monos [ 31-01, 21:27 ]
Заголовок сообщения: 

MasterCat писал(а):
примерно так.

Спасибо. Программер я слабый, если сказать помягче, чевой- то не увидел там дублей или лонгов...
MasterCat писал(а):
вот прерывание для получения фактической ширины импулься, которы йполучился от внешнего воздействия ОС по току.
Если правильно понял- это поцикловка?

Автор:  MasterCat [ 31-01, 21:33 ]
Заголовок сообщения: 

monos писал(а):
или лонгов...

откуда им там взяться то?
monos писал(а):
Если правильно понял- это поцикловка
поцикловка- это обработка в каждом цикле что ли? тогда нет. тут всё среднее . процессы медленные же. и если пару-тройку тактов пропустим на анализ -пофиг.
вот же. Disable_psc0_external_event_a_interrupt() ;
запрет прерывания, как только в него ввалились. обработаем, поймём где реально находимся, тогда вновь разрешим. это сделано за тем, чтобы знать на сколько укоротиля импульс. страсть, как не люблю короче 1,5 мкс. в итоге если до предела доехали, то увеличиваем паузу на сколько посчитаем нужным. всё просто.

Автор:  MasterCat [ 31-01, 21:38 ]
Заголовок сообщения: 

да ещё момент. сигналы с датчиков тока собъеденены по или и в принципе тут можно смотреть какой канал доехал до предела. вечно один из них 'сачёк'. приходится лентяю пинка налаживать регулярно. это кагда трансы и дроссели сильно уж разные разные.

Автор:  Maikl [ 31-01, 21:46 ]
Заголовок сообщения: 

MasterCat писал(а):
поцикловка- это обработка в каждом цикле что ли? тогда нет. тут всё среднее . процессы медленные же. и если пару-тройку тактов пропустим на анализ -пофиг.
да-да, каждый цикл. Вот чот про медленные процессы не совсем понял :live-14: Эт где они медленные? ИМХО, ежли чо и уберегает девайс от могилы при усреднении так это Z питающей сети (хотя тож проблематично, т.к. исть ёмкостной накопитель), самого девайса, выходного дросселя и др. Мож не так понял :) :live-14:

Автор:  MasterCat [ 31-01, 21:56 ]
Заголовок сообщения: 

Maikl писал(а):
Эт где они медленные

в петле регулированиия. ос по току аппаратная же. а состальным некуда спешить. если даже ADC за 30 мкс лениво справляется. можно и быстрее , но ни к чему. остальное шустрее шевелится.
за какое время ток короткого замыкания достигнет ужасающих размеров? неужели быстрее чем 100мкс? а за это время успеваем не только репу почесать , но и... :blush:

Автор:  MasterCat [ 31-01, 22:01 ]
Заголовок сообщения: 

меня сейчас заботит другой очень простой вопрос. мож ну ее нафиг полную обработку всех напруг включая и сеть. мож достаточно мощу стабилизить... тексту сразу меньше. чего с сэконмленными байтами делать непонятно конечно. ну это др. вопроц. можно таблички характеристик скоростей нарастания там или исчё чего на сэкономленном то сырье замутить.
это на малых токах должно поджиг сильно улучшить. типа, как-бы, "МУ" сэмулировать. :crazy:

Автор:  monos [ 31-01, 22:07 ]
Заголовок сообщения: 

MasterCat писал(а):
откуда им там взяться то?

Это ж код для восьмибитника? регистр у адика ведь 10-разрядный, а нада сумма измерений- для сотни надо 16 разрядов, так вроде?
MasterCat писал(а):
поцикловка- это обработка в каждом цикле что ли?
Нет это импульс режется компаратором в каждом такте по сигналу от тт- карент лимит. У тебя захватывается сигнал с тт и таймер считает, сколько он длится- правильно?

Страница 5 из 22 Часовой пояс: UTC + 4 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/