| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Правильно завести сигнал в МК
24.10.2011, 01:09
|
|
|
Частый гость
Регистрация: 20.03.2011
Сообщений: 16
Сказал спасибо: 10
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Правильно завести сигнал в МК
Привет всем.
Понемногу изучаю программирование МК. Нашел нужную схему в интернете переделал ее под МК и столкнулся с не совсем хорошим результатом. Раньше никогда схемами не занимался, но есть опыт программирования. И этот опыт программирования (не знаю хорошо это или плохо) не дает мне покоя. Так вот когда я пишу программу, то 100 целых (допустим) попугаев - это всегда 100 целых попугаев и эти 100 попугаев без документа никуда не деваются, а тут такое творится:
Измеряю напряжение на конденсаторе 0-300 В. Завожу его в микроконтроллер при помощи резистора и подстроечника (средний вывод которого подаю на АЦП).
В принципе все работает, и даже микроконтроллер регулирует это напряжение, но почемуто оно (регулируемое напряжение) слишком сильно плавает (плюс минус 10 В).
Причем если смотреть в рамках одного цикла, то все так, как и должно быть (300-303 В). Но если сбросить напряжение до 50В, то оно потом поднимается и стабилизируется немного на другом уровне(+-10В). И от цикла к циклу напряжение плывет.
Если я правильно понял, то основные причины следующие:
1. Микроконтроллер, его АЦП (у меня это ATMEGA8А) и его аналоговая обвязка.
2. Прогрев измерительных резисторов
3. Импульсные Помехи
4. Контрольные замеры делаются простейшим тестером.
Вопросы следующие:
1. Какую точность и стабильность можно требовать от данного МК и насколько они плывут при работе ?(питание МК от 7805)
2. Какой минимальный ток должен течь в измерительной цепочке резисторов, чтобы резисторы не плыли, и МК четко замерял нужное напряжение ? (порекомендуйте конкретные типы и номиналы резисторов).
3. Какие есть способы борьбы с импульсами (10-100 KHz питания конденсатора), чтобы не пропустить их в измерительную часть?
4. Есть ли в инете картинки более правильных схем подключения высокого напряжения к АЦП МК или обвязки МК?
5. Может я еще что то пропустил?
|
|
|
|
24.10.2011, 02:13
|
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,394
Сказал спасибо: 2,016
Сказали Спасибо 1,356 раз(а) в 591 сообщении(ях)
|
Re: Правильно завести сигнал в МК
Сообщение от Kostik00
|
Измеряю напряжение на конденсаторе 0-300 В. Завожу его в микроконтроллер при помощи резистора и подстроечника (средний вывод которого подаю на АЦП).
|
"измеряю напряжение на конденсаторе... Чем? Как? Схема? Код показать стыдно? Шаманы, кстати, все в отпуске.
PS сам постоянно работаю с АЦП АВРок - единственное с чем столкнулся - если девайс питается от импульсника, то шум +-5 дискрет гарантирован - хотя даже на приличном осциллографе и питание, и сигнал красивые.
__________________
[ жизнь приятна и красива, если выпить литр пива ]
|
|
|
|
24.10.2011, 02:54
|
|
|
Частый гость
Регистрация: 20.03.2011
Сообщений: 16
Сказал спасибо: 10
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Правильно завести сигнал в МК
Прямо как в школе - форма не нравится. Попробуем переписать по новой форме  .
ATMEGA8 с ее АЦП 10 БИТ
Програмку показать не стыдно, со схемой сложнее - Измерительная часть в приложении 1.
Аналоговая часть обвязки в приложении 2 (но номиналы из того, что было).
Если пропустить инициализацию то остается
прерывание по завершению АЦП
ISR(ADC_vect)
{
VProbe= ADCW;
CheckConverter();
ADCSRA|=_BV(ADSC);
}
сама обработка
void CheckConverter(void)
{
SetPWMParams();
if (VProbe ›= 1000)
DisableConverter();
}
параметры генератора выбираются из масива
void SetPWMParams(void)
{
int n = VProbe ›› 5;
ICR1 = PWMArray[n][0]+PWMArray[n][1]+DelayTime;
OCR1A=PWMArray[n][0];
OCR1B=ICR1-PWMArray[n][0];
}
Форматирование текста приделал бы, но чтото сегодня казус наровит вирусы в виде обновления оперы прислать.
|
|
|
|
24.10.2011, 03:04
|
|
|
Частый гость
Регистрация: 20.03.2011
Сообщений: 16
Сказал спасибо: 10
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Правильно завести сигнал в МК
Да забыл добавить, что шум +-5 дискрет при условии 1000=300В - превращается в шум +-1.5В - что полностью соответствует тому, что у меня получается 300-303В сразу после подстройки.
Проблема в том что напряжение уплывает со временем и/или с циклами.
Последний раз редактировалось Kostik00; 24.10.2011 в 03:08.
|
|
|
|
24.10.2011, 03:58
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 08.09.2009
Сообщений: 1,139
Сказал спасибо: 138
Сказали Спасибо 366 раз(а) в 230 сообщении(ях)
|
Re: Правильно завести сигнал в МК
Видимо прогу рыть надо, т.к по аналоговой части с любыми параметрами выхода (ежели прога правильная) напряжение должно стоять мёртво, даже если на выходе пила.
Хотя ежели от внутреннего генератора и плата как утюг, то может быть.
Последний раз редактировалось sdsrem; 24.10.2011 в 04:00.
|
|
|
|
24.10.2011, 04:14
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 24.09.2007
Адрес: Полтава, UA
Сообщений: 2,440
Сказал спасибо: 375
Сказали Спасибо 1,052 раз(а) в 621 сообщении(ях)
|
Re: Правильно завести сигнал в МК
Не каждый резистор держит 300В. Замените его цепочку из на 2-3-х последовательно. И подстроечник временно на обычный постоянный резистор поменяйте.
VREF не плавает? Попробуйте на внутреннем погонять.
__________________
Мелочи не решают главного. Они решают всё!
Последний раз редактировалось gary2007; 24.10.2011 в 04:22.
|
|
|
|
Сказали "Спасибо" gary2007
|
|
|
24.10.2011, 08:02
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,480
Сказал спасибо: 734
Сказали Спасибо 1,899 раз(а) в 777 сообщении(ях)
|
Re: Правильно завести сигнал в МК
1. Ток через резисторы должен на порядок (как минимум) быть больше входного тока АЦП
2. Про резисторы gary2007 правильно сказал, или высоковольтные нужны, или цепочку делать. И, если габариты не критичны, мощностью не меньше 0,5Вт. Не забывайте, что при нагреве резисторы не только плывут, но и шумят.
3. Если не нужно высокое быстродействие, на вход интегрирующую цепь.
4. Про младший бит АЦП забудьте. Хотите больше разрешающую способность - ставьте отдельный АЦП (а не 10-12бит).
5. Проводите несколько замеров, результат усредняйте.
6. Внешний стабильный VREF (или внутренний), но не привязанный к питанию МК
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
|
|
|
|
24.10.2011, 11:49
|
|
|
Частый гость
Регистрация: 20.03.2011
Сообщений: 16
Сказал спасибо: 10
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Правильно завести сигнал в МК
Сообщение от DK
|
|
1. Ток через резисторы должен на порядок (как минимум) быть больше входного тока АЦП
|
Спасибо. Осталось найти входной ток АЦП ATMEGА8. Кто нибудь подскажет? (у меня найти пока не получается)
Сообщение от DK
|
|
2. Про резисторы gary2007 правильно сказал, или высоковольтные нужны, или цепочку делать. И, если габариты не критичны, мощностью не меньше 0,5Вт. Не забывайте, что при нагреве резисторы не только плывут, но и шумят.
|
Об этом я и подозревал, но когда я прихожу в наш местный магазин - меня не всегда понимают. Как по другому можно объяснить продавцу, что мне нужен высоковольтный резистор?
Сообщение от DK
|
3. Если не нужно высокое быстродействие, на вход интегрирующую цепь.
4. Про младший бит АЦП забудьте. Хотите больше разрешающую способность - ставьте отдельный АЦП (а не 10-12бит).
|
Это уже лишнее - точность +-3В - это уже более чем достаточно.
Сообщение от DK
|
5. Проводите несколько замеров, результат усредняйте.
6. Внешний стабильный VREF (или внутренний), но не привязанный к питанию МК
|
Внешний VREF - это черезчур - пока пробую внутренний с внешним конденсатором. А усреднять - уже пробовал - не помогло.
|
|
|
|
24.10.2011, 13:05
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,480
Сказал спасибо: 734
Сказали Спасибо 1,899 раз(а) в 777 сообщении(ях)
|
Re: Правильно завести сигнал в МК
Сообщение от Kostik00
|
|
высоковольтный резистор
|
Не заморачивайтесь тогда. Пойдет любой металлопленочный С2-23, С2-33. Но:
Мощность Напряжение
0,125 200
0,250 250
0,5 350
1.0 500
2.0 750
Сообщение от Kostik00
|
|
+-3В - это уже более чем достаточно
|
Т.е. Вы 2 бита отбрасываете?
Сообщение от Kostik00
|
|
входной ток АЦП ATMEGА8
|
Ну считайте, что примерно 1мкА.
Сообщение от Kostik00
|
|
А усреднять - уже пробовал - не помогло
|
Попробуйте больше измерений усреднить. Да еще попробовать выкидывать недостоверные данные.
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
|
|
|
|
24.10.2011, 16:57
|
|
|
Частый гость
Регистрация: 20.03.2011
Сообщений: 16
Сказал спасибо: 10
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Правильно завести сигнал в МК
Допустим ток АЦП 1 мкА тоесть 0.000001А
Ток в измерительной цепи должен быть на порядок больше - тоесть 10мкА = 0.000010А
При напряжении 300 В и токе 0.00001А общее сопротивление измерительной цепочки 300/0.00001 = 30000000 Ом то есть сопротивление не больше 30 МОм
у меня 1М+10К = 1010000 Ом
При этом Ток ~0,0003A=300мкА - по току вроде как проходит
Мощность, рассеиваемая на резисторах P=300*300/1010000~0.09Ватт
Сейчас стоит 0.125W - Если я правильно понял и ничего не напутал, то этот 100% надо менять
Что касается подстроечника - у меня чтото типа //http://www.chipdip.ru/product/3296w-103.aspx
Заявленная P - 0.5W при ~0.0009W рабочих - можно ли ему верить?
И еще - не стоит ли увеличить номиналы резисторов?
Последний раз редактировалось Kostik00; 24.10.2011 в 17:05.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:55.
|
|