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

 
 
> МК не отвечает :(
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
Ответов
Flasher
сообщение Jul 25 2008, 21:33
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 374
Регистрация: 6-09-05
Из: Тирасполь, Приднестровье
Пользователь №: 8 294



посмотри в ассемблерный листинг, каких комманд он там насовал.
Go to the top of the page
 
+Quote Post
TwisteR
сообщение Jul 25 2008, 22:03
Сообщение #3


Участник
*

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



Цитата(Flasher @ Jul 25 2008, 23:33) *
посмотри в ассемблерный листинг, каких комманд он там насовал.

Если бы я только что то понимал... biggrin.gif
CODE

main.elf: file format elf32-avr

Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0000007c 00000000 00000000 00000054 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .stab 0000036c 00000000 00000000 000000d0 2**2
CONTENTS, READONLY, DEBUGGING
2 .stabstr 00000054 00000000 00000000 0000043c 2**0
CONTENTS, READONLY, DEBUGGING
3 .debug_aranges 00000020 00000000 00000000 00000490 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_pubnames 0000001b 00000000 00000000 000004b0 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_info 0000015d 00000000 00000000 000004cb 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_abbrev 000000c7 00000000 00000000 00000628 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 000000e5 00000000 00000000 000006ef 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_frame 00000020 00000000 00000000 000007d4 2**2
CONTENTS, READONLY, DEBUGGING
9 .debug_str 000000ca 00000000 00000000 000007f4 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_loc 00000018 00000000 00000000 000008be 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:

00000000 <__vectors>:
0: 14 c0 rjmp .+40 ; 0x2a <__ctors_end>
2: 2d c0 rjmp .+90 ; 0x5e <__bad_interrupt>
4: 2c c0 rjmp .+88 ; 0x5e <__bad_interrupt>
6: 2b c0 rjmp .+86 ; 0x5e <__bad_interrupt>
8: 2a c0 rjmp .+84 ; 0x5e <__bad_interrupt>
a: 29 c0 rjmp .+82 ; 0x5e <__bad_interrupt>
c: 28 c0 rjmp .+80 ; 0x5e <__bad_interrupt>
e: 27 c0 rjmp .+78 ; 0x5e <__bad_interrupt>
10: 26 c0 rjmp .+76 ; 0x5e <__bad_interrupt>
12: 25 c0 rjmp .+74 ; 0x5e <__bad_interrupt>
14: 24 c0 rjmp .+72 ; 0x5e <__bad_interrupt>
16: 23 c0 rjmp .+70 ; 0x5e <__bad_interrupt>
18: 22 c0 rjmp .+68 ; 0x5e <__bad_interrupt>
1a: 21 c0 rjmp .+66 ; 0x5e <__bad_interrupt>
1c: 20 c0 rjmp .+64 ; 0x5e <__bad_interrupt>
1e: 1f c0 rjmp .+62 ; 0x5e <__bad_interrupt>
20: 1e c0 rjmp .+60 ; 0x5e <__bad_interrupt>
22: 1d c0 rjmp .+58 ; 0x5e <__bad_interrupt>
24: 1c c0 rjmp .+56 ; 0x5e <__bad_interrupt>
26: 1b c0 rjmp .+54 ; 0x5e <__bad_interrupt>
28: 1a c0 rjmp .+52 ; 0x5e <__bad_interrupt>

0000002a <__ctors_end>:
2a: 11 24 eor r1, r1
2c: 1f be out 0x3f, r1 ; 63
2e: cf e5 ldi r28, 0x5F ; 95
30: d2 e0 ldi r29, 0x02 ; 2
32: de bf out 0x3e, r29 ; 62
34: cd bf out 0x3d, r28 ; 61

00000036 <__do_copy_data>:
36: 10 e0 ldi r17, 0x00 ; 0
38: a0 e6 ldi r26, 0x60 ; 96
3a: b0 e0 ldi r27, 0x00 ; 0
3c: ec e7 ldi r30, 0x7C ; 124
3e: f0 e0 ldi r31, 0x00 ; 0
40: 02 c0 rjmp .+4 ; 0x46 <.do_copy_data_start>

00000042 <.do_copy_data_loop>:
42: 05 90 lpm r0, Z+
44: 0d 92 st X+, r0

00000046 <.do_copy_data_start>:
46: a0 36 cpi r26, 0x60 ; 96
48: b1 07 cpc r27, r17
4a: d9 f7 brne .-10 ; 0x42 <.do_copy_data_loop>

0000004c <__do_clear_bss>:
4c: 10 e0 ldi r17, 0x00 ; 0
4e: a0 e6 ldi r26, 0x60 ; 96
50: b0 e0 ldi r27, 0x00 ; 0
52: 01 c0 rjmp .+2 ; 0x56 <.do_clear_bss_start>

00000054 <.do_clear_bss_loop>:
54: 1d 92 st X+, r1

00000056 <.do_clear_bss_start>:
56: a0 36 cpi r26, 0x60 ; 96
58: b1 07 cpc r27, r17
5a: e1 f7 brne .-8 ; 0x54 <.do_clear_bss_loop>
5c: 01 c0 rjmp .+2 ; 0x60 <main>

0000005e <__bad_interrupt>:
5e: d0 cf rjmp .-96 ; 0x0 <__heap_end>

00000060 <main>:
#include <util/delay.h>
#define F_CPU 8000000UL // 8 MHz


int main(void) // начало основой программы
{
60: 8f ef ldi r24, 0xFF ; 255
62: 81 bb out 0x11, r24 ; 17
64: 2f ef ldi r18, 0xFF ; 255
66: e0 e0 ldi r30, 0x00 ; 0
68: f0 e0 ldi r31, 0x00 ; 0

DDRD = 0xff; /* все выводы порта D сконфигурировать как выходы */

while (1) { // Бесконечный цикл

PORTD = 0xff; /* установить "1" на всех линиях порта D */
6a: 22 bb out 0x12, r18 ; 18
milliseconds can be achieved.
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
6c: cf 01 movw r24, r30
6e: 01 97 sbiw r24, 0x01 ; 1
70: f1 f7 brne .-4 ; 0x6e <main+0xe>

_delay_ms(1000); // Ждем 1 сек.

PORTD = 0x00; /* установить "0" на всех линиях порта D */
72: 12 ba out 0x12, r1 ; 18
74: cf 01 movw r24, r30
76: 01 97 sbiw r24, 0x01 ; 1
78: f1 f7 brne .-4 ; 0x76 <main+0x16>
7a: f7 cf rjmp .-18 ; 0x6a <main+0xa>


Пробовал так же этот код:
CODE
.include "m8535def.inc"
.def TMP = R16
.def VERT = R17
.def COUNT1 = R18
.def COUNT2 = R19
.def COUNT3 = R20

.org 0
reset:
ldi TMP, 0xFF
out DDRD, TMP

enable:
ldi TMP, 0xFF
out PORTD, TMP

ldi COUNT3, 16
wait1:
dec COUNT1
brne wait1
dec COUNT2
brne wait1
dec COUNT3
brne wait1

disable:
ldi TMP, 0x00
out PORTD, TMP

ldi COUNT3, 16
wait2:
dec COUNT1
brne wait2
dec COUNT2
brne wait2
dec COUNT3
brne wait2

rjmp enable

Результат - светодиод горит постоянно, осциллограмма не изменилась.

Сообщение отредактировал TwisteR - Jul 25 2008, 22:06
Go to the top of the page
 
+Quote Post



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

 


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


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