Обсуждаем контроллеры компании Atmel.
Ответить

Re: Фильтр АЦП atmega 8 по нижней границе

Пт авг 27, 2021 13:20:59

понятно, кода не будет

Re: Фильтр АЦП atmega 8 по нижней границе

Пт авг 27, 2021 18:12:19

slav0n, ты теряешься.
Раз программист исходит из тз и электрической схемы, ну поставь тз так и создай схему так, что бы он долго голову ломал.

Re: Фильтр АЦП atmega 8 по нижней границе

Пт авг 27, 2021 18:36:21

та он уже голову сломал, судя по выкрутасам

Re: Фильтр АЦП atmega 8 по нижней границе

Пт авг 27, 2021 20:14:38

понятно, кода не будет

Конечно не будет пока не сформулируете наконец чего же вы хотите.

Re: Фильтр АЦП atmega 8 по нижней границе

Пт авг 27, 2021 20:25:59

хочу повторения своего алгоритма, но "по-правильному"

Re: Фильтр АЦП atmega 8 по нижней границе

Сб авг 28, 2021 00:23:17

Третий раз спрашиваю: описание задачи будет или нет? Не ваших попыток решения, а то, чего вы хотите добиться.

Re: Фильтр АЦП atmega 8 по нижней границе

Сб авг 28, 2021 04:33:34

COKPOWEHEU писал(а):Самое надежное - остановить ШИМ на некоторое время и измерить.
какая прэлэсть, использовать аппаратный ШИМ и останавливать его где попало...

ну, ладно, вот задача: измерять в каждом периоде ШИМ ток зарядки с максимально возможной задержкой после положительного фронта импульса ШИМ, напряжение без зарядки с максимально возможной задержкой после отрицательного фронта и все это без остановки ШИМ.
решай, пожалуйста

Re: Фильтр АЦП atmega 8 по нижней границе

Сб авг 28, 2021 07:07:57

а если к концу зарядки положительный импульс станет таким узким (снижение зарядного тока), что не только не будет времени на задержку, но и не хватит времени сделать измерение, пока длится импульс?

Re: Фильтр АЦП atmega 8 по нижней границе

Сб авг 28, 2021 07:23:21

1. у меня задержка регулируется автоматически и всегда максимальна
2. если импульс настолько короткий, что не дает измерять, то он и не нужен, тупо вырубаем таймер. все, конец зарядки

Re: Фильтр АЦП atmega 8 по нижней границе

Сб авг 28, 2021 08:27:29

ну, ладно, вот задача: измерять в каждом периоде ШИМ ток зарядки с максимально возможной задержкой после положительного фронта импульса ШИМ, напряжение без зарядки с максимально возможной задержкой после отрицательного фронта и все это без остановки ШИМ.
решай, пожалуйста

Я что, недостаточно понятно написал?
Сформулируйте задачу, а не свои попытки решения.

Re: Фильтр АЦП atmega 8 по нижней границе

Сб авг 28, 2021 09:11:35

повторяю второй раз
slav0n писал(а):измерять в каждом периоде ШИМ ток зарядки с максимально возможной задержкой после положительного фронта импульса ШИМ, напряжение без зарядки с максимально возможной задержкой после отрицательного фронта и все это без остановки ШИМ.

Re: Фильтр АЦП atmega 8 по нижней границе

Сб авг 28, 2021 09:30:53

измерять в каждом периоде ШИМ ток зарядки с максимально возможной задержкой после положительного фронта импульса ШИМ, напряжение без зарядки с максимально возможной задержкой после отрицательного фронта и все это без остановки ШИМ.

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

Re: Фильтр АЦП atmega 8 по нижней границе

Сб авг 28, 2021 09:52:59

думаю с током будет то же самое, что и с напряжением - под конец импульса он будет уменьшаться и стабилизироваться

Re: Фильтр АЦП atmega 8 по нижней границе

Сб авг 28, 2021 10:04:03

под конец импульса он будет уменьшаться и стабилизироваться

а мне казалось так, поведение тока такое
Вложения
pwm-kw.jpg
(42.25 KiB) Скачиваний: 92

Re: Фильтр АЦП atmega 8 по нижней границе

Сб авг 28, 2021 10:09:55

да... а на самом деле вона как:
http://primuss3.com/forum/index.php?top ... 0#msg15490

Re: Фильтр АЦП atmega 8 по нижней границе

Сб авг 28, 2021 18:09:30

повторяю второй раз

Видимо, внятного ТЗ я так и не дождусь...
Если речь о зарядке аккумулятора, то логично после ШИМ поставить LC-цепочку для сглаживания пульсаций. Соответственно, измеряется постоянный ток и изредка, при остановке ШИМ, напряжение.
Ладно, не хотите реальной помощи, не надо. Так и быть набросаю по вашему странному алгоритму. Разумеется, поскольку в реальности применяться это не будет, большую часть настроек возьму от балды.

Re: Фильтр АЦП atmega 8 по нижней границе

Сб авг 28, 2021 18:47:42

то логично после ШИМ поставить LC-цепочку для сглаживания пульсаций. Соответственно, измеряется постоянный ток и изредка, при остановке ШИМ, напряжение.

Вы видимо не знаете об импусных зу, там и привествуется именно заряд 19В на частоте около 1kHz, или десульфатор - тат же ЗУ но через дросель, плюс эл. конденсатор на 1000uf на той же частоте, заполнение ШИМ правдо около10% может и меньше. LC цепочка там не нужна, ну если сотворить из этого обычную автозарядку с порогом 14.4В.

Re: Фильтр АЦП atmega 8 по нижней границе

Сб авг 28, 2021 19:05:03

Ну, грубо говоря, так:
Код:
#define ADCSRA_START (1<<ADEN | 1<<ADSC | 1<<ADFR | 0b110 << ADPS0) //F_CPU/64
#define ADC_TIME_TIMER 30 //сколько тактов таймера длится аналого-цифровое преобразование. Пусть например 30
#define ADC_LOW      (0b01<<REFS0 | 0) //ADC0
#define ADC_HIGH   (0b01<<REFS0 | 1) //ADC1

ISR(TIMER1_COMPB_vect){
  static uint8_t flag_low = 0;
  if(flag_low){
    adc_H = ADCH;
    ADMUX = ADC_LOW;
    ADCSRA = ADCSRA_START;
    OCR1B = OCR1A - ADC_TIME_TIMER;
    flag_low = 0;
    PORTC |= (1<<4);
  }else{
    adc_L = ADCH;
    ADMUX = ADC_HIGH;
    ADCSRA = ADCSRA_START;
    OCR1B = ICR1 - ADC_TIME_TIMER;
    flag_low = 1;
    PORTC &=~(1<<4);
  }
}

У AVR в режиме ШИМов включается двойная буферизация регистров, поэтому измерение проходит только на половине импульсов ШИМ.

Re: Фильтр АЦП atmega 8 по нижней границе

Вс авг 29, 2021 07:02:49

ну что тут скажешь... оригинально
а где же аппаратный ШИМ? где разгрузка ядра?..

Re: Фильтр АЦП atmega 8 по нижней границе

Вс авг 29, 2021 08:26:37

В смысле "где"? На канале А, естественно. PC4 это просто отладочный вывод.
Ответить