Страница 1 из 2
АЦП в AVR
Добавлено: Сб мар 17, 2018 16:12:21
ROMan2947
Доброго дня!!! Использую переменный резистор для регулирования оборотами электродвигателя через ШИМ.Схема собрана, программа написана. Но стоит оставить систему в работе, пойти погулять вернувшись поменять обороты при касаний к ручке резистора контроллер сбрасывается. По ходу я что-то не предусмотрел в цепи АЦП.Фатальные помехи проскакивают. В даташите говорилось про кондер на ножке AREF при ИОН с AVCC. Но у меня ИОН VCC. Кроме всего этого бывают касаюсь проводов так такой разряд происходит аж передергивает.Где копать не догадываюсь...
Спойлер
Код: Выделить всё
#define F_CPU 8000000UL
#include <util/delay.h>
#include <avr/io.h>
#define OC1A 5
#define SEI 0
void TIMER_instal(void)
{
DDRD|=(1<<OC1A);
TCCR1A=(1<<COM1A1)|(0<<COM1A0)|(0<<COM1B1)|(0<<COM1B0)|(0<<FOC1A)|(0<<FOC1B)|(1<<WGM11)|(1<<WGM10);
TCCR1B=(0<<ICNC1)|(0<<ICES1)|(0<<WGM13)|(1<<WGM12)|(1<<CS12)|(0<<CS11)|(1<<CS10);
}
void ADC_init(void)
{
ADMUX=(0<<REFS1)|(0<<REFS0)|(0<<ADLAR)|(SEI<<0);
ADCSRA=(1<<ADEN)|(0<<ADSC)|(0<<ADATE)|(0<<ADIE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);
}
int main(void)
{
TIMER_instal();
ADC_init();
while (1)
{
ADCSRA|=1<<ADSC;
OCR1A=ADC;
}
}
Добавлено after 26 minutes 46 seconds:
Показания в книге и в даташите по поводу битов REFS1 и REFS0 по-моему разнятся,или я недопонимаю?
Re: АЦП в AVR
Добавлено: Сб мар 17, 2018 17:08:50
dr.doc
Кроме всего этого бывают касаюсь проводов так такой разряд происходит аж передергивает.
От такого МК не то, что перезапустится, а и сгореть может.
Может в этом и проблема? Источник питания отвязать от сети, временно запитать от аккумулятора и т.д и т.п.
Re: АЦП в AVR
Добавлено: Сб мар 17, 2018 17:14:11
Dimon456
ROMan2947 писал(а):Где копать не догадываюсь...
А что на вас одето? поди эластик или шерстяное?
ROMan2947 писал(а):Кроме всего этого бывают касаюсь проводов так такой разряд происходит аж передергивает
Антистатический браслет поможет.
Заземлить придется.
Да и что-то в вашем коде пропущено
Код: Выделить всё
// Start the AD conversion
ADCSRA|=(1<<ADSC);
// Wait for the AD conversion to complete
while ((ADCSRA & (1<<ADIF))==0);
ADCSRA|=(1<<ADIF);
OCR1A=ADC;
Re: АЦП в AVR
Добавлено: Сб мар 17, 2018 17:46:15
ROMan2947
А что на вас одето? поди эластик или шерстяное?
да было одето, потом снял, стало реже,но не перестало.
Заземлить придется.
себя?
Да и что-то в вашем коде пропущено
да в курсе,но на данном этапе я думаю это не кретично.
Добавлено after 4 minutes 48 seconds:
От такого МК не то, что перезапустится, а и сгореть может.
Может в этом и проблема?
да вроде работает, не сгорел пока

ps.мой микроконтроллер наверное самый несчастный контроллер в мире, так как я не издевается никто))
Re: АЦП в AVR
Добавлено: Вт мар 27, 2018 00:05:03
vovksextra
#define OC1A 5
#define SEI 0
круто)
Re: АЦП в AVR
Добавлено: Вт мар 27, 2018 12:00:30
ROMan2947
[uquote="vovksextra",url="/forum/viewtopic.php?p=3339764#p3339764"]круто)[/uquote]
так думаю круче
Код: Выделить всё
#define SEI(x) ADMUX=(0<<REFS1)|(0<<REFS0)|(0<<ADLAR)|(x<<0)
Re: АЦП в AVR
Добавлено: Вт мар 27, 2018 12:22:19
BOB51
Еще проще - NE555.
Насчет помех - программа на СИ уже к разрядам разного рода неустойчива.
Минимальная альтернатива - изолированная рукоятка /вал потенциометра.
Дальнейшее - весьма аккуратно прописанная обработка АЦП и процедура рестарта(перезагрузки) при сработках сторожевиков по BOD и WDT.

Re: АЦП в AVR
Добавлено: Вт мар 27, 2018 12:40:32
ROMan2947
[uquote="BOB51",url="/forum/viewtopic.php?p=3339974#p3339974"]при сработках сторожевиков по BOD и WDT.[/uquote]
сколько слышу сторожевик сторожевик, у меня он вообще в камне не включен по-моему,по крайне мере я с ним делов не имел пока.На сколько знаю он следит за зависанием программы,но редко в каких примерах я встречал применение его...
Добавлено after 9 minutes 36 seconds:
[uquote="BOB51",url="/forum/viewtopic.php?p=3339974#p3339974"]программа на СИ уже к разрядам разного рода неустойчива.[/uquote] Как устойчивость к помехам зависит от языка программирования?

Re: АЦП в AVR
Добавлено: Вт мар 27, 2018 12:57:53
BOB51
И от языка (слишком много данных передается через ОЗУ), и от разновидностей семейств МК.
Основная ошибка (помимо схемотехники и стандартных приемов подавления помех) не активированы сторожа по броскам питания, сбою хода исполнения программы и не проработана процедура перезапуска по сбою программы.
В принципе можно заставить работать МК и при искровом разряде в шины питания...
Только то уже весьма примитивная прожка может выдержать - с определенными спецограничениями на применение аппаратных и программных ресурсов МК.
Схемку и фотки с монтажем приблуды покажи - первые ошибки в монтаже будут.

Re: АЦП в AVR
Добавлено: Вт мар 27, 2018 13:27:43
ROMan2947
[uquote="BOB51",url="/forum/viewtopic.php?p=3339998#p3339998"]Схемку и фотки с монтажем приблуды покажи[/uquote]
разобрал схему с АЦП, есть фото ,скажем так отладочной платы.
[uquote="BOB51",url="/forum/viewtopic.php?p=3339998#p3339998"]первые ошибки в монтаже будут.[/uquote]не сомневаюсь!
Re: АЦП в AVR
Добавлено: Вт мар 27, 2018 13:29:25
BOB51
Ну дык и покажи, может чего прояснится.

Re: АЦП в AVR
Добавлено: Вт мар 27, 2018 13:30:46
ROMan2947
[uquote="BOB51",url="/forum/viewtopic.php?p=3340024#p3340024"]Ну дык и покажи, может чего прояснится.

[/uquote]
чет не получается загрузить

Re: АЦП в AVR
Добавлено: Вт мар 27, 2018 17:59:04
BOB51
Делаем фотки или сброс схемки в *.gif или *.jpeg не наглея (до 500килобайт - настройками фотика выводим).
Графику можно запихнуть в img.radiokot.ru (а в сообщении только ссылка на адрес рисунка).
Или же напечатать в dopdf (dopdf7 или более новую версию), предварительно установив эту полезность на компе и загрузить результат *.pdf непосредственно в сообщении.
Скачать...
можно тут
http://www.dopdf.com
или тут
http://download-software.ru/dopdf.html
или где еще инет покажет...

Re: АЦП в AVR
Добавлено: Вт мар 27, 2018 18:37:03
ARV
ROMan2947 писал(а):так думаю круче
вы специально решили сделать так, чтобы было больше шансов запутаться самому и запутать других? SEI - это стандартная команда разрешения прерываний для архитектуры AVR, и макрос с таким наименованием, даже набранный заглавными и с параметром, вводит в заблуждение тем более что есть "стандартный" макрос sei()...
круче будет только #define TRUE FALSE
Re: АЦП в AVR
Добавлено: Вт мар 27, 2018 18:44:32
ROMan2947
[uquote="ARV",url="/forum/viewtopic.php?p=3340296#p3340296"]вводит в заблуждение[/uquote]
обозвать надо бы конечно иначе, согласен! да это первое, что пришло в голову когда думал как обозвать макрос,вот и осталось....

полагаю,кто знает что это и зачем нужен, без проблем исправит, а кто не знает, и использовать даже не будет.
Re: АЦП в AVR
Добавлено: Вт мар 27, 2018 19:07:25
Ярослав555
[uquote="ROMan2947",url="/forum/viewtopic.php?p=3332904#p3332904"]В даташите говорилось про кондер на ножке AREF при ИОН с AVCC. Но у меня ИОН VCC. Кроме всего этого бывают касаюсь проводов так такой разряд происходит аж[/uquote]
AVCC это ножка куда подается питание аналоговой части МК. В любом случае, если на AREF не подается опора, а используется какое-то внутреннее - ДОЛЖЕН стоять конденсатор. VCC как опору в принципе использовать нельзя, только AVCC. Так что давай схему дружок, посмотрим что ты там наворотил.
А дергает тебя напряжением, потому что, могу поспорить, используешь ты комповский блок питания, и понятия не имеешь что его надо заземлять, иначе на массе у него потенциал относительно земли 110В переменки. Угадал?
Re: АЦП в AVR
Добавлено: Вт мар 27, 2018 19:24:12
ROMan2947
[uquote="Ярослав555",url="/forum/viewtopic.php?p=3340316#p3340316"]могу поспорить[/uquote] а вот и нет питается все через USBasp и зарядник от телефона на 1А
понятия не имеешь
здесь и понимать нечего, у меня в розетке уже все заземлено.

Re: АЦП в AVR
Добавлено: Вт мар 27, 2018 19:25:40
Ярослав555
[uquote="ROMan2947",url="/forum/viewtopic.php?p=3340327#p3340327"]здесь и понимать нечего, у меня в розетке уже все заземлено.

[/uquote]
ну хоть с этим порядок. тогда тащи схему, иначе пустая трата времени.
должно быть вот так
http://avrproject.ru/lesson/124141t54.png
ну катушку можно не ставить.
потенциометр тоже желательно проверить. Для теста можно его убрать, запаять делитель из двух резисторов и проверить на стабильность работы.
Re: АЦП в AVR
Добавлено: Вт мар 27, 2018 19:29:15
ROMan2947
[uquote="Ярослав555",url="/forum/viewtopic.php?p=3340316#p3340316"]В любом случае, если на AREF не подается опора, а используется какое-то внутреннее - ДОЛЖЕН стоять конденсатор.[/uquote] Учту,спасибо! жаль, что этот кондер не заложили аппаратно.Думаю было бы удобно)

Re: АЦП в AVR
Добавлено: Вт мар 27, 2018 19:31:50
BOB51
Млин... не туда положил
