АЦП в AVR

Обсуждаем контроллеры компании Atmel.
Ответить
Грызет канифоль
Аватара пользователя
Сообщения: 287
Зарегистрирован: Сб янв 23, 2016 00:59:59
Откуда: Чебоксары

Сообщение 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 по-моему разнятся,или я недопонимаю?
Вложения
2018-03-17_17-12-16.png
(242.96 КБ) 549 скачиваний
2018-03-17_16-33-50.png
(10.74 КБ) 562 скачивания
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Сообщение dr.doc »

Кроме всего этого бывают касаюсь проводов так такой разряд происходит аж передергивает.
От такого МК не то, что перезапустится, а и сгореть может.
Может в этом и проблема? Источник питания отвязать от сети, временно запитать от аккумулятора и т.д и т.п.
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Реклама
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение 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;
Грызет канифоль
Аватара пользователя
Сообщения: 287
Зарегистрирован: Сб янв 23, 2016 00:59:59
Откуда: Чебоксары

Сообщение ROMan2947 »

А что на вас одето? поди эластик или шерстяное?
да было одето, потом снял, стало реже,но не перестало.
Заземлить придется.
себя? :)))
Да и что-то в вашем коде пропущено
да в курсе,но на данном этапе я думаю это не кретично.

Добавлено after 4 minutes 48 seconds:
От такого МК не то, что перезапустится, а и сгореть может.
Может в этом и проблема?
да вроде работает, не сгорел пока :write: ps.мой микроконтроллер наверное самый несчастный контроллер в мире, так как я не издевается никто))
Реклама
Эиком - электронные компоненты и радиодетали
Открыл глаза
Сообщения: 73
Зарегистрирован: Ср июн 15, 2011 02:22:15

Сообщение vovksextra »

#define OC1A 5
#define SEI 0

круто)
Контактная информация:
Реклама
Грызет канифоль
Аватара пользователя
Сообщения: 287
Зарегистрирован: Сб янв 23, 2016 00:59:59
Откуда: Чебоксары

Сообщение ROMan2947 »

[uquote="vovksextra",url="/forum/viewtopic.php?p=3339764#p3339764"]круто)[/uquote]

так думаю круче

Код: Выделить всё

#define SEI(x) ADMUX=(0<<REFS1)|(0<<REFS0)|(0<<ADLAR)|(x<<0)
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15605
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Еще проще - NE555.
8)
Насчет помех - программа на СИ уже к разрядам разного рода неустойчива.
Минимальная альтернатива - изолированная рукоятка /вал потенциометра.
Дальнейшее - весьма аккуратно прописанная обработка АЦП и процедура рестарта(перезагрузки) при сработках сторожевиков по BOD и WDT.
8)
Грызет канифоль
Аватара пользователя
Сообщения: 287
Зарегистрирован: Сб янв 23, 2016 00:59:59
Откуда: Чебоксары

Сообщение 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] Как устойчивость к помехам зависит от языка программирования? :shock:
Друг Кота
Аватара пользователя
Сообщения: 15605
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

И от языка (слишком много данных передается через ОЗУ), и от разновидностей семейств МК.
Основная ошибка (помимо схемотехники и стандартных приемов подавления помех) не активированы сторожа по броскам питания, сбою хода исполнения программы и не проработана процедура перезапуска по сбою программы.
В принципе можно заставить работать МК и при искровом разряде в шины питания...
Только то уже весьма примитивная прожка может выдержать - с определенными спецограничениями на применение аппаратных и программных ресурсов МК.
Схемку и фотки с монтажем приблуды покажи - первые ошибки в монтаже будут.
8)
Грызет канифоль
Аватара пользователя
Сообщения: 287
Зарегистрирован: Сб янв 23, 2016 00:59:59
Откуда: Чебоксары

Сообщение ROMan2947 »

[uquote="BOB51",url="/forum/viewtopic.php?p=3339998#p3339998"]Схемку и фотки с монтажем приблуды покажи[/uquote]
разобрал схему с АЦП, есть фото ,скажем так отладочной платы. :facepalm:

[uquote="BOB51",url="/forum/viewtopic.php?p=3339998#p3339998"]первые ошибки в монтаже будут.[/uquote]не сомневаюсь!
Друг Кота
Аватара пользователя
Сообщения: 15605
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Ну дык и покажи, может чего прояснится.
:beer:
Грызет канифоль
Аватара пользователя
Сообщения: 287
Зарегистрирован: Сб янв 23, 2016 00:59:59
Откуда: Чебоксары

Сообщение ROMan2947 »

[uquote="BOB51",url="/forum/viewtopic.php?p=3340024#p3340024"]Ну дык и покажи, может чего прояснится.
:beer:[/uquote]
чет не получается загрузить :dont_know:
Друг Кота
Аватара пользователя
Сообщения: 15605
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Делаем фотки или сброс схемки в *.gif или *.jpeg не наглея (до 500килобайт - настройками фотика выводим).
Графику можно запихнуть в img.radiokot.ru (а в сообщении только ссылка на адрес рисунка).
Или же напечатать в dopdf (dopdf7 или более новую версию), предварительно установив эту полезность на компе и загрузить результат *.pdf непосредственно в сообщении.
Скачать...
можно тут
http://www.dopdf.com
или тут
http://download-software.ru/dopdf.html
или где еще инет покажет...
:beer:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18678
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

ROMan2947 писал(а):так думаю круче
вы специально решили сделать так, чтобы было больше шансов запутаться самому и запутать других? SEI - это стандартная команда разрешения прерываний для архитектуры AVR, и макрос с таким наименованием, даже набранный заглавными и с параметром, вводит в заблуждение тем более что есть "стандартный" макрос sei()...

круче будет только #define TRUE FALSE
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Грызет канифоль
Аватара пользователя
Сообщения: 287
Зарегистрирован: Сб янв 23, 2016 00:59:59
Откуда: Чебоксары

Сообщение ROMan2947 »

[uquote="ARV",url="/forum/viewtopic.php?p=3340296#p3340296"]вводит в заблуждение[/uquote]
обозвать надо бы конечно иначе, согласен! да это первое, что пришло в голову когда думал как обозвать макрос,вот и осталось.... :oops:
полагаю,кто знает что это и зачем нужен, без проблем исправит, а кто не знает, и использовать даже не будет.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Сообщение Ярослав555 »

[uquote="ROMan2947",url="/forum/viewtopic.php?p=3332904#p3332904"]В даташите говорилось про кондер на ножке AREF при ИОН с AVCC. Но у меня ИОН VCC. Кроме всего этого бывают касаюсь проводов так такой разряд происходит аж[/uquote]
AVCC это ножка куда подается питание аналоговой части МК. В любом случае, если на AREF не подается опора, а используется какое-то внутреннее - ДОЛЖЕН стоять конденсатор. VCC как опору в принципе использовать нельзя, только AVCC. Так что давай схему дружок, посмотрим что ты там наворотил.
А дергает тебя напряжением, потому что, могу поспорить, используешь ты комповский блок питания, и понятия не имеешь что его надо заземлять, иначе на массе у него потенциал относительно земли 110В переменки. Угадал?
Грызет канифоль
Аватара пользователя
Сообщения: 287
Зарегистрирован: Сб янв 23, 2016 00:59:59
Откуда: Чебоксары

Сообщение ROMan2947 »

[uquote="Ярослав555",url="/forum/viewtopic.php?p=3340316#p3340316"]могу поспорить[/uquote] а вот и нет питается все через USBasp и зарядник от телефона на 1А :)))
понятия не имеешь

здесь и понимать нечего, у меня в розетке уже все заземлено. :tea:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2081
Зарегистрирован: Пт май 31, 2013 17:14:38
Откуда: Украина, Винница

Сообщение Ярослав555 »

[uquote="ROMan2947",url="/forum/viewtopic.php?p=3340327#p3340327"]здесь и понимать нечего, у меня в розетке уже все заземлено. :tea:[/uquote]
ну хоть с этим порядок. тогда тащи схему, иначе пустая трата времени.
должно быть вот так http://avrproject.ru/lesson/124141t54.png
ну катушку можно не ставить.
потенциометр тоже желательно проверить. Для теста можно его убрать, запаять делитель из двух резисторов и проверить на стабильность работы.
Последний раз редактировалось Ярослав555 Вт мар 27, 2018 19:31:27, всего редактировалось 1 раз.
Грызет канифоль
Аватара пользователя
Сообщения: 287
Зарегистрирован: Сб янв 23, 2016 00:59:59
Откуда: Чебоксары

Сообщение ROMan2947 »

[uquote="Ярослав555",url="/forum/viewtopic.php?p=3340316#p3340316"]В любом случае, если на AREF не подается опора, а используется какое-то внутреннее - ДОЛЖЕН стоять конденсатор.[/uquote] Учту,спасибо! жаль, что этот кондер не заложили аппаратно.Думаю было бы удобно) :write:
Друг Кота
Аватара пользователя
Сообщения: 15605
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Млин... не туда положил
:facepalm: :oops:
Последний раз редактировалось BOB51 Ср мар 28, 2018 08:58:24, всего редактировалось 2 раза.
Ответить

Вернуться в «AVR»