Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Значит вот как дело было, наша славная кобыла до безумья полюбила привозного жеребца (+)

Отправлено ReAl 16 июля 2008 г. 17:31
В ответ на: Становится всё чудесатеее и чудесатее! Какая красота! Кажется, там просто ядро сбрасывается. Ещё пару тыков и отчитываюсь отправлено ReAl 16 июля 2008 г. 16:30

Похоже, косяк в BOD (кстати, а кто при каких фьюзах проверял?)

ATTINY2313-20PU  0623
6F7011
35570C
1-P0623 e3


.nolist
#define __SFR_OFFSET 0
#include <avr/io.h>
.list

#define NOPS 1
#define OUTS 2

.text
.global main
main:

ldi r16, 0xFF
out DDRD, r16
out DDRB, r16
out DDRA, r16

1: ldi r16, 0xFF
out PORTA, r16
out PORTB, r16
out PORTD, r16
.rept OUTS
out PORTD, r16
.endr
.rept NOPS
nop
.endr
ldi r16, 0
out PORTA, r16
out PORTB, r16
out PORTD, r16
.rept OUTS
out PORTD, r16
.endr
.rept NOPS
nop
.endr
rjmp 1b


FUSES = wdton=1,bodlevel=4,sut=1,cksel=4,ckdiv=1
Питание 5В


При ckdiv=0 либо при cksel=2 (т.е. на более низкой частоте) - тоже всё нормально.

Если стоит вывод только в PORTA - тоже всё нормально.
Если только в PORTD - достаточно двух NOP
Если только в PORTB - достаточно трёх NOP
Если во все три порта - тоже достаточно трёх NOP
NOPS можно разменивать на OUTS - т.е. проблема в выводе противоположного значения в порты. Зависимость количества NOP от количества изменяемых битов в порту не исследовал, моя страсть к неразменным пятакам так далеко не распространяется.

Как это выглядит:
Пачка импульсов в несколько микросекунд (5-15 периодов меандра), если пачка закочилась на "1"-ке, то плавный спад напряжения, разряд на входном сопротивлении осциллографа.
Длина пачки зависит от количества портов, задействованных в тестировании и от количества тактов между выводами противоположного значения.
Расстояние между пачками несколько микросекунд при SUT=0, около 4мс при SUT=1, около 65мс при SUT=2, т.е. определённо кристалл просто сбрасывается.
Но!
При bodlevel=7 (т.е. BOD выключен) никаких проблем вообще без прмежуточных NOP.
При 6,5,4 - одинаковое поведение с точностью до количества нужных для нормальной работы NOP-ов.
Т.е. косяк в (трассировке) BOD на кристалле.

Дело было на макетке, на которой конденсатор по питанию в паре см от панельки (так сложилось, что на несколько панелек "проверялки avreal" только один керам. конденсатор на штырях байт-бластера, до сих пор не глючило и я не стал паять конденсаторы на все панельки, чтобы не улучшать лишний раз условия работы программатора).

Включать паяльник влом.

p.s. Я протестую! Это антиспамщик попросил меня набрать число "123", меня заставили набирать забаненное число!


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
сложите 2 и 3:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru