Обсуждаем контроллеры компании Atmel.
Ответить

Виснет ATmega8

Пт июн 01, 2012 19:03:23

Руки опускаются, не знаю что сделать еще.
Делаю связку 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 KiB) Скачиваний: 695

Напаял только 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

IC6B выход от земли отсоедините, и полевой транзистор Q1 на время уберите (поставьте перемычку).
Ну и на RESET кодёр повесить можно.

Re: Виснет ATmega8

Сб июн 02, 2012 03:20:20

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

на RESET цеплял - бесполезно.
питание подается, просадок нет. попробую, но думаю не в транзисторе дело.
IC6 не напаян еще, отлаживаю пока МК+FTDI. Это не земля, а виртульная земля +2,5В. Значки разные.

Re: Виснет ATmega8

Вс июн 03, 2012 08:32:53

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

Re: Виснет ATmega8

Вс июн 03, 2012 17:12:46

Молодец !!!

Re: Виснет ATmega8

Вс дек 16, 2012 21:05:55

Добрый День! У новичка такая проблема: пытался с помощью виртуальных портов 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 память содержит какие то нулевые байты.. Подскажите что-нибудь, пожалуста!!
Вложения
Flash.jpg
(218.28 KiB) Скачиваний: 576
Error.jpg
(16.64 KiB) Скачиваний: 570
Pickit2.JPG
(29.49 KiB) Скачиваний: 579

Re: Виснет ATmega8

Вс дек 16, 2012 23:33:27

Strat Читайте внимательно http://kazus.ru/forums/showthread.php?t=97703,проверено работает
Ответить