Форум РадиоКот https://radiokot.ru/forum/ |
|
ATmega8+АЦП зависают https://radiokot.ru/forum/viewtopic.php?f=20&t=30788 |
Страница 1 из 1 |
Автор: | WandererX [ Сб май 29, 2010 22:55:51 ] |
Заголовок сообщения: | ATmega8+АЦП зависают |
Здравствуйте! Делаю диплом на тему регистрации аналоговых сигналов на ПК. За основу взял схему, представленную здесь http://dikoy44.narod.ru/projects/vkr11.htm (автор Dykoy). Работает МК с АЦП AD7896. Тест (инициализацию) проходит, но при запуске считывания данных с АЦП МК зависает: горит желтый светодиод (опрос АЦП как я понимаю) и не реагирует на нажатия - нужно переподключать устройство (или МК резетить). Удачно получалось запустить только несколько раз. При этом все работало, можно было менять режимы, но при переподключении та же проблема. Посмотрите, пожалуйста, в чем может быть дело? Код прошивки: Вложение: .Еще может конструкторские ошибки у меня какие есть? Вот фото платы: Вложение: Вложение: Например, не мешает ли, что микросхемы в панельках сидят? |
Автор: | WandererX [ Вс май 30, 2010 00:10:52 ] |
Заголовок сообщения: | Re: ATmega8+АЦП зависают |
Получилось запускать таким образом: МК проходит тест и даже начинает опрос БЕЗ АЦП. После этого вставляю АЦП в опрашиваемую панельку:) и далее передача данных и регистрация идет нормально. Почему же не получается по-человечески? ![]() ![]() |
Автор: | Meteor [ Вс май 30, 2010 04:43:17 ] |
Заголовок сообщения: | Re: ATmega8+АЦП зависают |
Скажите на кой пес нам конструкция? Схему надо, а не исполнение. Выкладывайте схему - будет тогда разбор полетов |
Автор: | WandererX [ Вс май 30, 2010 08:27:01 ] |
Заголовок сообщения: | Re: ATmega8+АЦП зависают |
Meteor писал(а): Скажите на кой пес нам конструкция? Так здесь же есть Схему надо, а не исполнение. Выкладывайте схему - будет тогда разбор полетов WandererX писал(а): взял схему, представленную здесь http://dikoy44.narod.ru/projects/vkr11.htm Не хотел повторяться. Вот схема:Вложение: Желтый светодиод на 28 выводе МК (в комментариях прошивки подписан).
|
Автор: | Meteor [ Вс май 30, 2010 11:52:41 ] |
Заголовок сообщения: | Re: ATmega8+АЦП зависают |
Насколько понял, вы прерываниями практически не работаете- только ждете поступления данных от ПК. От того и нет никаких реакций на нажатия. Лучше наверное будет перелопатить код таким образом, что бы был цикл с проверкой флагов, установка которых происходит по прерываниям. (на форуме мульйон раз обмусолено) |
Автор: | WandererX [ Вс май 30, 2010 13:23:24 ] |
Заголовок сообщения: | Re: ATmega8+АЦП зависают |
Meteor писал(а): Лучше наверное будет перелопатить код Это можно сказать программу занова писать! ![]() С этой прошивкой устройство у автора работало при скорости UART=2Mbs. Я и на 1Mbs перестраивал - не помогает. Хочу понять почему у меня не работает, где слабое звено... точнее даже работает, но очень редко... или с бубном при помощи вынимания АЦП. На каком этапе выполнения кода в прошивке оно происходит (сам понимаю его очень поверхностно)? Может это поможет найти проблему в аппаратной части или в том же коде? Вот лог портмона при удачном старте: Код: [size=85]Открытие порта:
2 0.02186814 COMTEST.EXE IRP_MJ_CREATE VCP4 SUCCESS Options: Open 3 0.00000531 COMTEST.EXE IOCTL_SERIAL_GET_BAUD_RATE VCP4 SUCCESS 4 0.00000223 COMTEST.EXE IOCTL_SERIAL_GET_LINE_CONTROL VCP4 SUCCESS 5 0.00000223 COMTEST.EXE IOCTL_SERIAL_GET_CHARS VCP4 SUCCESS 6 0.00000168 COMTEST.EXE IOCTL_SERIAL_GET_HANDFLOW VCP4 SUCCESS 7 0.00087665 COMTEST.EXE IOCTL_SERIAL_SET_BAUD_RATE VCP4 SUCCESS Rate: 1000000 8 0.00098756 COMTEST.EXE IOCTL_SERIAL_CLR_RTS VCP4 SUCCESS 9 0.00098057 COMTEST.EXE IOCTL_SERIAL_CLR_DTR VCP4 SUCCESS 10 0.00098253 COMTEST.EXE IOCTL_SERIAL_SET_LINE_CONTROL VCP4 SUCCESS StopBits: 1 Parity: NONE WordLength: 8 11 0.00000196 COMTEST.EXE IOCTL_SERIAL_SET_CHAR VCP4 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:0 XOFF:0 12 0.00097051 COMTEST.EXE IOCTL_SERIAL_SET_HANDFLOW VCP4 SUCCESS Shake:0 Replace:0 XonLimit:0 XoffLimit:0 13 0.00093084 COMTEST.EXE IOCTL_SERIAL_CLR_RTS VCP4 SUCCESS После нажатия INIT (зеленый светодиод моргает 4 раза): 494 0.00082413 COMTEST.EXE IRP_MJ_WRITE VCP4 SUCCESS Length 1: 01 496 0.00000559 COMTEST.EXE IRP_MJ_READ VCP4 SUCCESS Length 1: 44 После нажатия ЗАПУСК (100 мс, 1 измерение): 1043 0.00057382 COMTEST.EXE IRP_MJ_WRITE VCP4 SUCCESS Length 1: 02 1044 0.00021539 COMTEST.EXE IRP_MJ_WRITE VCP4 SUCCESS Length 1: 64 1045 0.00043777 COMTEST.EXE IRP_MJ_WRITE VCP4 SUCCESS Length 1: 00 1046 0.00025757 COMTEST.EXE IRP_MJ_WRITE VCP4 SUCCESS Length 1: 05 1047 0.00047101 COMTEST.EXE IRP_MJ_WRITE VCP4 SUCCESS Length 1: 01 1048 0.00069422 COMTEST.EXE IRP_MJ_WRITE VCP4 SUCCESS Length 1: 00 После нажатия "OK" на запрос "АЦП настроен! Нажмите ОК для начала измерения.": //ИМЕННО ПОСЛЕ НАЖАТИЯ ОК ОБЫЧНО ЗАГОРАЕТСЯ ЖЕЛТЫЙ СВЕТОДИОД И НЕ ПРИХОДИТ ОТВЕТ ОТ МК (строки "IRP_MJ_READ") //ПРИ УДАЧНОМ ЖЕ ЗАПУСКЕ НАЧИНАЮТСЯ ИЗМЕРЕНИЯ И ПРИХОДЯТ "IRP_MJ_READ": 1196 0.00071266 COMTEST.EXE IRP_MJ_WRITE VCP4 SUCCESS Length 1: 07 1198 0.00000698 COMTEST.EXE IRP_MJ_READ VCP4 SUCCESS Length 1: 00 1206 0.00000698 COMTEST.EXE IRP_MJ_READ VCP4 SUCCESS Length 1: 80 2574 0.00056180 COMTEST.EXE IRP_MJ_WRITE VCP4 SUCCESS Length 1: 1B 2575 0.00048470 COMTEST.EXE IRP_MJ_WRITE VCP4 SUCCESS Length 1: 64 2576 0.00073920 COMTEST.EXE IRP_MJ_WRITE VCP4 SUCCESS Length 1: 00 2653 0.00027629 COMTEST.EXE IOCTL_SERIAL_SET_RTS VCP4 SUCCESS 2656 0.00000754 COMTEST.EXE IRP_MJ_READ VCP4 SUCCESS Length 1: 00 2664 0.00000670 COMTEST.EXE IRP_MJ_READ VCP4 SUCCESS Length 1: 80 ... 2672 0.00000670 COMTEST.EXE IRP_MJ_READ VCP4 SUCCESS Length 1: 80 2666 0.00000615 COMTEST.EXE IRP_MJ_READ VCP4 SUCCESS Length 1: 00 10658 0.00097750 COMTEST.EXE IOCTL_SERIAL_CLR_RTS VCP4 SUCCESS 10660 0.00000698 COMTEST.EXE IRP_MJ_READ VCP4 SUCCESS Length 1: 80 10662 0.00000698 COMTEST.EXE IRP_MJ_READ VCP4 SUCCESS Length 1: 00 10668 0.00000698 COMTEST.EXE IRP_MJ_READ VCP4 SUCCESS Length 1: 80 Закрытие порта: 34435 0.00000615 COMTEST.EXE IRP_MJ_CLEANUP VCP0 SUCCESS 34436 0.11547836 COMTEST.EXE IRP_MJ_CLOSE VCP0 SUCCESS [/size] |
Автор: | WandererX [ Вс май 30, 2010 15:58:05 ] |
Заголовок сообщения: | Re: ATmega8+АЦП зависают |
Нашел, почему МК виснет: BUSY АЦП после подачи питания все время 1! Если эту ножку BUSY не всавлять в панель, то все ок, но я так понимаю измерения будут неверными. Вопрос: почему так может получаться? Что даст раскоммент следующих строк ? #define UDRE 5 //#define ADC_BUSY PINB.0 #define NCONVST PORTB.1 #define RXC 7 #define ERROR PINC.3 //#define INIT PINC.1 #define TxGO PINC.5 |
Автор: | WandererX [ Вс май 30, 2010 17:58:48 ] |
Заголовок сообщения: | Re: ATmega8+АЦП зависают |
Проблема вроде решилась! Помог хороший человек alex312: немного изменил код: Вложение: Еще один вопрос есть:Кнопка RESET в программе не работает, точнее в прошивке. Программа при нажатии на кнопку посылает 08H в МК. Я так понял это резет МК. Можно его все-таки реализовать? И как? |
Автор: | WandererX [ Вс май 30, 2010 18:39:05 ] |
Заголовок сообщения: | Re: ATmega8+АЦП зависают |
По-видимому поторопился я с выводами ![]() Они между собой не имеют электрической связи, от порта разъем отключен... Значит помехи? Но вроде и кондюки и индуктивности по входу питания стоят... Может я чего-то не учитываю? Старожилы подскажите пожалуйста! |
Автор: | WandererX [ Пн май 31, 2010 18:52:40 ] |
Заголовок сообщения: | Re: ATmega8+АЦП зависают |
Автор схемы (Dykoy) помог с бизи разобраться! ![]() Насчет резета вопрос остается в силе. Прочитал, что можно на нулевой адрес сослаться для перезагрузки программы МК, но как это реализовать не нашел ![]() |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |