Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

stm32 и аналоговый компаратор

Вс фев 26, 2017 11:43:17

Имеется программа, где нагрузка управляется по ШИМ с частотой более 10 кГц. Имеется необходимость следить за током. Есть шунт 0,1 Ом. Есть мнение что подтянув вход АЦП к +3,3 В резистором на сотни кОм мы получим смещение, достаточное чтобы сигнал был в диапазоне воспринимаемом АЦП. Сейчас без тока нагрузки там около 100 мВ. С током который в норме - 120-140 мВ. С током который не в норме - более 200 мВ. Контроллер stm32f100c8t6
Самое главное - хочется применить "оконный компаратор". Вся программа сделана на libopencm3, да и под другие варианты примеров не обнаружено. Кроме такого:

Код:
  ADC1->CR1 |= ADC_CR1_AWDEN  // enable on regular channels
        | ADC_CR1_AWDSGL    //  Enable the watchdog on a single channel in scan mode
        | ADC_CR1_AWDIE     //  Analog watchdog interrupt enable
        | guarded_channel;  // #channel
ADC1->LTR = 1000;
ADC1->HTR = 3902;*/


В библиотеке в свою очередь есть:
void adc_enable_analog_watchdog_on_selected_channel(uint32_t adc, uint8_t channel)
void adc_set_watchdog_low_threshold(uint32_t adc, uint8_t threshold)
void adc_set_watchdog_high_threshold(uint32_t adc, uint8_t threshold)

Может кто подскажет в какой последовательности вызывать, как быть с обработчиком прерывания а ведь ещё калибровку надо делать...

п.с.: можно перенести в "есть работа", потому что как-то совсем нагло самому не решить простой задачи и обращаться к общественности только из-за нехватки времени.
Ответить