Страница 1 из 1

Виснет ATmega8

Добавлено: Пт июн 01, 2012 19:03:23
player259
Руки опускаются, не знаю что сделать еще.
Делаю связку UART-USB, ATmega8+FT232RL.
Пока впаял FTDI, определился в системе, драйвера поставил, шлет и вроде даже принимает.
Впаял контроллер. Шлю простой счетчик по UART 0, 1 .. 255, 0, 1 и т.д. Хотел проверить все ли работает, прежде чем напаивать остальное.
Для визуального контроля диодиком мигаю.
Код простейший (генерил в CVAVR, остальное показывать нет смысла):

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

while (1)
      {
      // Place your code here
      delay_ms(500);
      PORTC.5=PORTC.5^1; 
      i++;
      putchar(i);
      };
Как видно мигаю диодиком и шлю байты.
Схема тут
help.png
(82.74 КБ) 719 скачиваний
Напаял только FTDI со всей обвязкой, контроллер только кварц и reset подтянул.
МК прошивается, с этим все в порядке.
Через некоторое время (5-15 сек) диодик начинает мигать неровно, а то и вовсе повисает зажженным или выключенным. Затем снова мигает как ни в чем не бывало. Вот что ловлю в терминале (напоминаю, должен быть счетчик):
127 12 13 14 15 1 2 3 23 24 25 26 27 28 29 30 31 32 33 34 35 36 0 54 55 56 57 58 59 60 61 62 63 64 65 66 1 2 3 4 0 22 23 23 24 25 26 27 28 1 2 3 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 240 241 241 240 240 241 241 242 242 243 251 242 250 243 243 250 240 241 241 240 240 249 241 242 242 243 243 242 242 243 243 244 244 245 245 244 244 249
Вроде считает, но постоянно сбрасывается, останавливается. А бывает выдаст сразу полсотни нулевых байтов.
Питание от USB, завтра проверю от БП. Хотя вряд ли в этом дело.
Паял аккуратно, дорожки не контачат, прозванивал, замерял сопротивления.
Питание не проседает, во всяком случае держал тестер как раз во время очередного зависания - не заметил каких-либо отклонений.
Экран разъема USB припаял к земле. Кто-то через резистор и кондер подводит, но я как-то не думал что это важно.
До этого сгорел кондер 4,7 мкф на питании, прям задымился. Не знаю чтобы это значило.
Зависала у кого-нибудь мега8 или что-то похожее?

Re: Виснет ATmega8

Добавлено: Пт июн 01, 2012 22:26:24
radiokot__
IC6B выход от земли отсоедините, и полевой транзистор Q1 на время уберите (поставьте перемычку).
Ну и на RESET кодёр повесить можно.

Re: Виснет ATmega8

Добавлено: Сб июн 02, 2012 03:20:20
player259
radiokot__ писал(а):IC6B выход от земли отсоедините, и полевой транзистор Q1 на время уберите (поставьте перемычку).
Ну и на RESET кодёр повесить можно.
на RESET цеплял - бесполезно.
питание подается, просадок нет. попробую, но думаю не в транзисторе дело.
IC6 не напаян еще, отлаживаю пока МК+FTDI. Это не земля, а виртульная земля +2,5В. Значки разные.

Re: Виснет ATmega8

Добавлено: Вс июн 03, 2012 08:32:53
player259
Нашел. Во всем виноват фьюз CKOPT, который нужно было оставить незапрограммированным. Видимо из-за низкой амплитуды резонатора на высокой частоте контроллер не мог обнаружить тактовые импульсы, поэтому повисал постоянно. Поторопился, надо было еще раз в даташит глянуть.

Re: Виснет ATmega8

Добавлено: Вс июн 03, 2012 17:12:46
radiokot__
Молодец !!!

Re: Виснет ATmega8

Добавлено: Вс дек 16, 2012 21:05:55
Strat
Добрый День! У новичка такая проблема: пытался с помощью виртуальных портов com0com и утилиты PK2AVRISP заставить pickit2 прошивать AVRки на основе инфы из http://www.microchip.su/showthread.php?t=8426&page=4. Реализовал включение по схеме "Pickit2". Прошить ATMega8 не удалось ни в PONYPROG, ни в CodeVisionAVR, ни в AVRDUDE. При этом микросхема якобы считывается и прошивается, но верификация ошибочная("Error") и не могу даже нормально очистить(erase). При этом в AVRDUDE все эти действия проходят, но только для фьюзов. Склоняюсь к мысли, что что-то не так с самой ATMegой. в CodeVisionAVR при первом считывании Flash память содержит какие то нулевые байты.. Подскажите что-нибудь, пожалуста!!

Re: Виснет ATmega8

Добавлено: Вс дек 16, 2012 23:33:27
speedprog
Strat Читайте внимательно http://kazus.ru/forums/showthread.php?t=97703,проверено работает