реклама на сайте
подробности

 
 
> МК не отвечает :(
TwisteR
сообщение Jul 25 2008, 17:22
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 25-07-08
Из: Киев
Пользователь №: 39 212



Приветствую специалистов!
Я недавно начал осваивать микроконтроллеры, решил остановиться на линейке AVR. Собрал STK200/300 по этой схеме, купил МК ATmega8535, подключил всё это дело к компу. Какое то время МК нормально определялся (правда, при чтении одних и тех же участков памяти я получал разные данные, но это другая история, подробности тут).

Но недавно МК вообще перестал определсятья sad.gif Произошло это во время получения очередной порции "рандомных данных" - в один прекрасный момент вместо беспорядочного набора байт я стал получатьодни 0xFF, а при следующем запуске avrdude и вовсе не обнаружил МК:
Код
tfsoft-3 avr # avrdude -p m8535 -c stk200 -t -F

avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0xffffff
avrdude: Yikes!  Invalid device signature.
avrdude: Expected signature for ATMEGA8535 is 1E 93 08
avrdude> quit
>>> quit

avrdude: safemode: Fuses OK

avrdude done.  Thank you.


Пробовал и avreal:
Код
tfsoft-3 avr # ./avreal-126r0 -p/dev/parport0 -as +ATMEGA8535 -% -e -!

avreal/LINUX  -  AVR controllers LPT programmer by Redchuk Alexandr
v1.26rev0 (Jul 10 2008 17:50:25)  http://www.ln.ua/~real/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command: -p/dev/parport0 -as +ATMEGA8535 -% -o1MHZ -e -!
        % Parallel port `/dev/parport0' found, ioctl interface activated
        % assume that LPT data writes not faster then 1uS
        % Atmel adapter for STK*00 found
        % STK mode
        % osc = 1000kHz -> setup=2, hold=2,1
        % Reset
        % PgmOn reply  FF FF FF FF
        % Try 1 to resync by reset pulse        % PgmOn reply  FF FF FF FF
        % Try 2 to resync by reset pulse        % PgmOn reply  FF FF FF FF
        % Try 3 to resync by reset pulse        % PgmOn reply  FF FF FF FF
        % Try 4 to resync by reset pulse        % PgmOn reply  FF FF FF FF
Can't resync

Reset pin released
Adapter disabled


По совету с другого форума укоротил шлейф до 10 см и повесил резистор 10К между RESET и VCC, ничего не изменилось. Щупал осциллографом - во время выполнения команды "dump flash 0 20000" на RESET, как и положено - 0, на SCK видны прямоугольные импульсы, на MOSI видна передача данных, а на MISO - глухо.

Прикрепляю фото программатора и тестовой платы с МК.

Кто подскажет, куда копать и как диагностировать неисправность МК? Буду благодарен за любую помощь smile.gif
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Qwertty
сообщение Jul 25 2008, 17:47
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527



Цитата(TwisteR @ Jul 25 2008, 21:22) *
По совету с другого форума укоротил шлейф до 10 см и повесил резистор 10К между RESET и VCC, ничего не изменилось. Щупал осциллографом - во время выполнения команды "dump flash 0 20000" на RESET, как и положено - 0, на SCK видны прямоугольные импульсы, на MOSI видна передача данных, а на MISO - глухо.

Прикрепляю фото программатора и тестовой платы с МК.

Кто подскажет, куда копать и как диагностировать неисправность МК? Буду благодарен за любую помощь smile.gif

Начните с подачи внешнего тактового сигнала на XTAL1. Avreal умеет это делать сам, но лучше прямо на тестовой плате иметь свой. Хотя бы резонатор керамический со встроенными конденсаторами.
Go to the top of the page
 
+Quote Post
TwisteR
сообщение Jul 25 2008, 19:57
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 25-07-08
Из: Киев
Пользователь №: 39 212



Цитата(Qwertty @ Jul 25 2008, 19:47) *
Начните с подачи внешнего тактового сигнала на XTAL1. Avreal умеет это делать сам, но лучше прямо на тестовой плате иметь свой. Хотя бы резонатор керамический со встроенными конденсаторами.

Спасибо большое, всё заработало. Я думал, что если к XTAL1 и 2 ничего не подключено - будет использоваться встроенный осциллятор.

Теперь другой вопрос - нужен ли внешний генератор или кварцевый резонатор, если при программировании я указал частоту встроенного:
CODE
tfsoft-3 avr # ./avreal-126r0 -p/dev/parport0 -as +ATMEGA8535 -% -o0 -fcksel=4 -w

avreal/LINUX - AVR controllers LPT programmer by Redchuk Alexandr
v1.26rev0 (Jul 10 2008 17:50:25) http://www.ln.ua/~real/avreal
bug-reports, suggestions and so on mail to avreal@real.kiev.ua
Command: -p/dev/parport0 -as +ATMEGA8535 -o0 -fcksel=4 -w
Device connected, MEGA8535 detected
Chip not locked
Fuses
OSCCALs = B1 B2 A8 AB
BODLEVEL = 0
BODEN = 0
SUT = 0
CKSEL = 0
BLB1 = 3
BLB0 = 3
S8535C = 1
WDTON = 0
CKOPT = 0
EESAVE = 0
BOOTSZ = 1
BOOTRST = 0
Programming fuses
New fuses value
OSCCALs = B1 B2 A8 AB
BODLEVEL = 0
BODEN = 0
SUT = 0
CKSEL = 4
BLB1 = 3
BLB0 = 3
S8535C = 1
WDTON = 0
CKOPT = 0
EESAVE = 0
BOOTSZ = 1
BOOTRST = 0
Reset pin released
Adapter disabled


Второй вопрос - почему я в avrdude в терминальном режиме не могу писать в flash
CODE
avrdude> write flash 0 1 2 3 4 5 6 5 4 3 2 1 0
>>> write flash 0 1 2 3 4
avrdude (write): error writing 0x01 at 0x00000 cell=0xff
avrdude (write): error writing 0x02 at 0x00001 cell=0xff
avrdude (write): error writing 0x03 at 0x00002 cell=0xff
avrdude (write): error writing 0x04 at 0x00003 cell=0xff
avrdude (write): error writing 0x05 at 0x00004 cell=0xff

avrdude> dump flash 0 16
>>> dump flash 0 200
0000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|

А в eeprom - могу. Это при том, что и avrdude, и ponyprog и avreal нормально пишут указанные файлы .hex. Впрочем, это не существенно, т.к. МК программируется нормально. Просто интересно smile.gif

И третий вопрос. Я прошил МК простой программкой, вот её код:
CODE
#include <avr/io.h>
#include <util/delay.h>
#define F_CPU 8000000UL

int main(void)
{
DDRD = 0xff;
while (1)
{
PORTD = 0xff;
_delay_ms(1000);
PORTD = 0x00;
_delay_ms(1000);
}
}

Подключил к ножке 14 (PD0) светодиод, отключил программатор, но светодиод так и не замигал. Зато на осциллографе я увидел то, что в аттаче. Где моя ошибка?
Заранее большое спасибо за ответы.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 04:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01388 секунд с 7
ELECTRONIX ©2004-2016