22.02.2013, 14:26
|
|
Прописка
Регистрация: 20.02.2006
Сообщений: 284
Сказал спасибо: 9
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
АЦП у STM32 12 битное т.е. 2^12=4096 значений.
Подпаял к VDDA VSSA источник опорного напряжения TL431.
Снимаю показания с переменного резистора но показания прыгают на +-10 значений. Т.е. около 0,01 В. Можно ли как-то с АЦП STM32 получить более высокую точность, чтобы значения были более стабильные?
Мой код:
Код:
|
// инициализация
ADC1-›SMPR2 |= ADC_SMPR2_SMP0;
RCC-›CFGR &= ~RCC_CFGR_ADCPRE;
RCC-›CFGR |= RCC_CFGR_ADCPRE_DIV2;
RCC-›APB2ENR |= RCC_APB2ENR_ADC1EN;
ADC1-›CR1 = 0;
ADC1-›SQR1 = 0;
ADC1-›SQR2 = 0;
ADC1-›CR2 = ADC_CR2_EXTSEL | ADC_CR2_EXTTRIG;
ADC1-›CR2 |= ADC_CR2_TSVREFE;
ADC1-›CR2 |= ADC_CR2_ADON;
ADC1-›CR2 |= ADC_CR2_CAL;
while ((ADC1-›CR2 & ADC_CR2_CAL) == ADC_CR2_CAL)
{
}
// замер
int Adc1Shot(u32 cannel)
{
ADC1-›SQR3 = cannel;
ADC1-›CR2 |= ADC_CR2_SWSTART;
while(!(ADC1-›SR & ADC_SR_EOC)){};
return ADC1-›DR;
} |
|
|
|
|
22.02.2013, 17:04
|
|
Прописка
Регистрация: 19.05.2012
Сообщений: 99
Сказал спасибо: 0
Сказали Спасибо 10 раз(а) в 8 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
можно, путем фильтрации (сделайте хотя бы накопление N измерений и вычислите среднее)
|
|
|
|
22.02.2013, 17:10
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от EXIS
|
Снимаю показания с переменного резистора но показания прыгают на +-10 значений.
|
А если заменить резистор на постоянный, величина ошибки остается той же?
И какой амплитуды основной сигнал?
__________________
There's always more than one way to skin a cat.
|
|
|
|
22.02.2013, 17:34
|
|
Прописка
Регистрация: 25.02.2011
Сообщений: 122
Сказал спасибо: 61
Сказали Спасибо 23 раз(а) в 19 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Бодрого времени суток всем.
Купил себе для исследований платку STM32L DISCOVERY.
Не получается разобраться с программатором STLink на ней.
Скачал фирменную утилиту STM32 STLink Utility, драйвера... Всё самой последней версии. При подключении платы, утилита выдала мне что мол требуется обновить ПО. И выбор там был- JTAG, SWD и еще что-то... Прочитал мануал к плате, вроде бы там используется только SWD интерфейс. Ну я и выбрал SWD-› обновить. Теперь плата у меня видится этой утилитой как V2.J0.S4 SWIM Debugger. Естественно, программатор не работает. Но почему SWIM ? Свим - это же вроде интерфейс для STM8 ?
Можно ли как-то исправить ситуацию? У меня есть еще один программатор STLink, рабочий. В чем отличия между SWIM и SWD ?
Если здесь уже этот вопрос обсуждался, прошу не пинать ногами
|
|
|
|
22.02.2013, 17:49
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Вы правы, SWIM под STM8. Почему-то путаница получилась. Не то вы скачали и зачем-то не туда нажали.
В общем, у меня тоже STM8 и STM32 одновременно по ST-Link'у не отлаживаются.
|
|
|
|
22.02.2013, 18:04
|
|
Прописка
Регистрация: 25.02.2011
Сообщений: 122
Сказал спасибо: 61
Сказали Спасибо 23 раз(а) в 19 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
На всех платах STM DISCOVERY в программаторе STLink стоит контроллер STM32F103T6 (поправьте, если я ошибаюсь). Уверен, что его можно перепрограммировать с помощью внешнего программатора STLink. Вот только где взять эту прошивку? Возможно ли считать её с другой платы дискавери? Я так понял, что другого выхода нет?
|
|
|
|
22.02.2013, 18:20
|
|
Прописка
Регистрация: 20.02.2006
Сообщений: 284
Сказал спасибо: 9
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от polyname
|
можно, путем фильтрации (сделайте хотя бы накопление N измерений и вычислите среднее)
|
Ну это конечно можно сделать. А у вас например не получалось без программного сглаживания получать с АЦП VLDiscovery измерения без скачков? Я кстати специально для PA0 поставил 16 семплов, чтобы повысить точность но толку мало: ADC1-›SMPR2 |= ADC_SMPR2_SMP0;
Сообщение от tempora
|
А если заменить резистор на постоянный, величина ошибки остается той же?
И какой амплитуды основной сигнал?
|
Только в понедельник смогу попробовать. Думаете на переменник можно грешить? Я вот думаю может USB порт помехи дает. Или я VLDiscovery подпалил.
Я просто кручу ручку произвольно резистора и отпускаю ее. По идее показания должны остановиться тоже, но они прыгают и ладно бы на +-2 (это еще можно понять), но там скачки на +-15 значений. Если это нормально то ладно. Но если можно повысить точность АЦП буду пытаться дальше. А то получается вроде 12-битный АЦП, а точность как у 8-ми битного из-за помех.
Судя по видео на 1:55 минуте, АЦП в STM32F10x уступает даже китайским мультиметрам ( Там как раз предлагают применить программное сглаживание.
Последний раз редактировалось EXIS; 22.02.2013 в 18:44.
Причина: дополнение
|
|
|
|
22.02.2013, 18:31
|
|
Вид на жительство
Регистрация: 30.07.2009
Адрес: SPb, RU
Сообщений: 382
Сказал спасибо: 81
Сказали Спасибо 119 раз(а) в 92 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от EXIS
|
около 0,01 В
|
Это больше на наводки похоже...
|
|
|
|
22.02.2013, 18:35
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от EXIS
|
Я вот думаю может USB порт помехи дает.
|
Так я потому и спрашивал какова амплитуда основного сигнала, чтоб понять, сколько эти 10-15 означают. А переменники бывают разные, в том числе и весьма паршивые.
__________________
There's always more than one way to skin a cat.
|
|
|
|
22.02.2013, 19:23
|
|
Прописка
Регистрация: 20.02.2006
Сообщений: 284
Сказал спасибо: 9
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от tempora
|
переменники бывают разные, в том числе и весьма паршивые.
|
По поводу переменника, вычитал, что АЦП имеет External input impedance 50КОм. А я как раз использовал для тестов переменный резистор 50Ком. Наверное это много, может нужно взять с сопротивлением поменьше, например 10К, тогда и точность будет выше.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:24.
|
|