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

 
 
> Почему ATMega128 работает так медленно,
boryx
сообщение Oct 27 2006, 07:42
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 25-05-06
Пользователь №: 17 428



Имеется плата MicroVega с ATMega 128. (внешний кристалл 14,7456MHz)

Включаю питание. Зашиваю программатором Atmel прогу

while (1){
PORTB INV_B(2); (ножка PB2 сконфигурированна на выход)
};

Наблюдаю странную картину на ножке.
Частота всего 37.50 Hz

Пробовал менять Fuses на Internal RC Generator 1/4/8 MHz. Особых изменений не заметил.

Как заставить его работать на нормальной скорости?

Мне нужна частота всего 300Hz.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
arttab
сообщение Oct 27 2006, 09:55
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



толи я туплю, но не понял последнюю строку - это прыжок на -6?
должно ведь на +0000031E

про фузы прочитайте. особенно про выбор источника тактовой частоты. и то что если фуз=1, то он не запрограмирован. разные проги по разному это отображают.
можно при возможности в аврстудии погонять код


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
boryx
сообщение Oct 27 2006, 10:11
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 25-05-06
Пользователь №: 17 428



Цитата(arttab @ Oct 27 2006, 12:55) *
толи я туплю, но не понял последнюю строку - это прыжок на -6?
должно ведь на +0000031E

про фузы прочитайте. особенно про выбор источника тактовой частоты. и то что если фуз=1, то он не запрограмирован. разные проги по разному это отображают.
можно при возможности в аврстудии погонять код



Я как раз и гоняю в Atmel AVR Studio 4. Странно, что код то работает. Я и таймеры могу использовать и АDC. Но только медленно.

на правельно
+0000031В

1)берем значение порта В
2)берем бит, что будем инвертировать 4 (0b100);
3)операция OR
4)сохраняем что получилось в порт В
5)прыжок на пункт 1


Я могу Fuse про частоту выбрать только один. Я пробовал и 1 и 4 и 8MHz internal RC generator. а также внешний кристал.

Итоговая частота на выходе ножки 20-40Hz


AVR Studio показывает, что XDIV=0 и прерывания я не врубаю

Сообщение отредактировал boryx - Oct 27 2006, 10:14
Go to the top of the page
 
+Quote Post
Demeny
сообщение Oct 27 2006, 10:23
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237



Проверьте стабильность питания. Что-то очень громкое подсказывает мне, что тут дело в питании...
Или на пине этом висит что-то такое, что при единице на выходе процессор ресетится из-за провала питания, а переинициализация контроллера - это и есть десятки миллисекунд...
Попробуйте вместо RJMP записать туды NOP и бесконечный пустой цикл - если частота все равно пойдёт - однозначно ресетится проц.

Сообщение отредактировал Demeny - Oct 27 2006, 10:30


--------------------
Сделано в Китае. Упаковано в России.
Go to the top of the page
 
+Quote Post
boryx
сообщение Oct 27 2006, 10:43
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 25-05-06
Пользователь №: 17 428



Цитата(Demeny @ Oct 27 2006, 13:23) *
Проверьте стабильность питания. Что-то очень громкое подсказывает мне, что тут дело в питании...
Или на пине этом висит что-то такое, что при единице на выходе процессор ресетится из-за провала питания, а переинициализация контроллера - это и есть десятки миллисекунд...
Попробуйте вместо RJMP записать туды NOP и бесконечный пустой цикл - если частота все равно пойдёт - однозначно ресетится проц.


для чистоты эксперемента я все отсоеденил. Включаю только плату с Атмегой и питание беру от источника в 10V (макс 1А) а не аккумулятора. На LM стабильно 5,05 В.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- boryx   Почему ATMega128 работает так медленно,   Oct 27 2006, 07:42
- - klop   Цитата(boryx @ Oct 27 2006, 11:42) Имеетс...   Oct 27 2006, 07:46
|- - boryx   Я честно говоря не спец по хардварной части. Для...   Oct 27 2006, 07:57
|- - =GM=   Цитата(boryx @ Oct 27 2006, 06:57) Я чест...   Oct 27 2006, 08:42
|- - boryx   Цитата(=GM= @ Oct 27 2006, 11:42) Возможн...   Oct 27 2006, 09:15
- - arttab   может так PORTB_Bit2^=1; и глянте всетаки асм. бы...   Oct 27 2006, 09:40
|- - boryx   247: DDRB = 0xF; +00000316: E08F ...   Oct 27 2006, 09:48
|- - =GM=   Цитата(boryx @ Oct 27 2006, 09:43) для чи...   Oct 27 2006, 11:31
- - klop   А делитель частоты у Вас часом не врублен? А в пре...   Oct 27 2006, 09:59
- - klop   Ну положим операция то не OR а XOR. А частоту прав...   Oct 27 2006, 10:21
- - gladov   Есть еще такой FUSE: CLKDIV8. Если он включен, то ...   Oct 27 2006, 10:34
- - _artem_   Выключите прерывания вообше.   Oct 27 2006, 14:43
- - Yura_K   Возможно, измерения проводятся неверно (если, к...   Oct 27 2006, 16:28
- - _case_   А может процессор дохлый? Я всякое видал....   Oct 27 2006, 19:40
- - VDG   Если он фузы ещё не менял, то кварц выключен, рабо...   Oct 31 2006, 10:24


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

 


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


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