Страница 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:
От такого МК не то, что перезапустится, а и сгореть может.
Может в этом и проблема?
да вроде работает, не сгорел пока :write: 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.
8)
Насчет помех - программа на СИ уже к разрядам разного рода неустойчива.
Минимальная альтернатива - изолированная рукоятка /вал потенциометра.
Дальнейшее - весьма аккуратно прописанная обработка АЦП и процедура рестарта(перезагрузки) при сработках сторожевиков по BOD и WDT.
8)

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] Как устойчивость к помехам зависит от языка программирования? :shock:

Re: АЦП в AVR

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

Re: АЦП в AVR

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

[uquote="BOB51",url="/forum/viewtopic.php?p=3339998#p3339998"]первые ошибки в монтаже будут.[/uquote]не сомневаюсь!

Re: АЦП в AVR

Добавлено: Вт мар 27, 2018 13:29:25
BOB51
Ну дык и покажи, может чего прояснится.
:beer:

Re: АЦП в AVR

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

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
или где еще инет покажет...
:beer:

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]
обозвать надо бы конечно иначе, согласен! да это первое, что пришло в голову когда думал как обозвать макрос,вот и осталось.... :oops:
полагаю,кто знает что это и зачем нужен, без проблем исправит, а кто не знает, и использовать даже не будет.

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А :)))
понятия не имеешь

здесь и понимать нечего, у меня в розетке уже все заземлено. :tea:

Re: АЦП в AVR

Добавлено: Вт мар 27, 2018 19:25:40
Ярослав555
[uquote="ROMan2947",url="/forum/viewtopic.php?p=3340327#p3340327"]здесь и понимать нечего, у меня в розетке уже все заземлено. :tea:[/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] Учту,спасибо! жаль, что этот кондер не заложили аппаратно.Думаю было бы удобно) :write:

Re: АЦП в AVR

Добавлено: Вт мар 27, 2018 19:31:50
BOB51
Млин... не туда положил
:facepalm: :oops: