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

 
 
 
Reply to this topicStart new topic
> Работа с STK500 и STK501
fpmoleg
сообщение Oct 4 2007, 11:26
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 33
Регистрация: 13-08-07
Пользователь №: 29 751



Привет всем.

Купил был отладочный комплект STK500 и STK501. Использую ма ATmega128L.
написал простенькую прогу (использовал winAVR 2007 года)

#include <avr/io.h>
int main(void){
PORTF = (1<<PF7)|(1<<PF6)|(1<<PF5)|(1<<PF4)|(1<<PF3)|(1<<PF2)|(1<<PF1)|(1<<PF0);
DDRF = 0xFF;
while (1){}
return(0);
}

прошивал с помощью AVR Studio выставил фьюзы:

;boot flash section size=4096 words
;Brown-out detection level at VCC=2,7 V
;Brown-out detection enabled
;Ext. Crystal/Resonator High Freq.;Strt-up time: 1K CK+0ms

Проверил осциллографом на портах стоит 0.

Проверял и кварц и напряжение. Все есть все программируется и читается.

Извечный вопрос: что делать ?
Go to the top of the page
 
+Quote Post
GDI
сообщение Oct 4 2007, 14:18
Сообщение #2


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



убрать ретурн из майна, и в цикл что то внести, например завести переменную и там ее инкрементировать, а то может у вас оптимизатор просто выкинул пустой цикл а за ним сразу ретурн стоит, вот программа и завершается. А еще лучше не тупо ставить в порты единицы, а светодиодами помигать, наверняка есть соответствующий пример в комплекте или на просторах интернет его можно отыскать, или самому сварганить.
Кстати для кварца я ставлю всегда самое долгое время старта, т.е. 16КСК+65мс


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
fpmoleg
сообщение Oct 4 2007, 14:45
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 33
Регистрация: 13-08-07
Пользователь №: 29 751



Цитата(GDI @ Oct 4 2007, 17:18) *
убрать ретурн из майна, и в цикл что то внести, например завести переменную и там ее инкрементировать, а то может у вас оптимизатор просто выкинул пустой цикл а за ним сразу ретурн стоит, вот программа и завершается. А еще лучше не тупо ставить в порты единицы, а светодиодами помигать, наверняка есть соответствующий пример в комплекте или на просторах интернет его можно отыскать, или самому сварганить.
Кстати для кварца я ставлю всегда самое долгое время старта, т.е. 16КСК+65мс



по поводу программы я написал так:
#include <avr/io.h>
#include <avr/iom128.h>
void main(void){
int i;
PORTE = (1<<PE7)|(1<<PE6)|(1<<PE5)|(1<<PE4)|(1<<PE3)|(1<<PE2)|(1<<PE1)|(1<<PE0);
DDRE = 0x00;
while(1){
PORTE = 0;
for (i=0;i<1000;i++){
asm volatile("nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
:smile.gif;
}
PORTE = 0xFF;
}
}

По поводу светодиодиков или осцеллографа - это дело вкуса. Если есть сигнал на портах то это видно и осцеллогрофом.
У меня кварц на 7.372МГц, напряжение тоже есть - 4.91 В. На порт XTAL1 сигналы от кварца поступают.
Фьюзы прошивал и читал все данны совпадают.
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Oct 4 2007, 15:10
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 289
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



На счёт сигналов XTAL - я когда осцилографом тыкал на эти лапыи смотрел обработку проги - так лампочками помигать - у меня камень загинался - в принципе думаю ёмкость была у него велика - оттого и так , но другого не было - С65-й вроде..
Касательно приведённого листинга - DDRE -> 0xFF;
а цикл - то до пятой точки - он за микросекунду пролетает если не меньше - его увидеть трудно, лучше
юзать на худой конец _delay_ms(xx)..Если поцепить на лапки светодиоды и зациклить типа так

DDRE=0xFF;
while (1)
{
PORTE=0x00;
_delay_ms(100);
_delay_ms(100);
PORTE=0xFF;
_delay_ms(100);
_delay_ms(100);
}

то всё должно работать, если с фузами не напутали, я их обычно сам высталяю без калькуляторов- не доверяю я им...
Go to the top of the page
 
+Quote Post
aesok
сообщение Oct 4 2007, 15:43
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(fpmoleg @ Oct 4 2007, 15:26) *
Использую ма ATmega128L.

Извечный вопрос: что делать ?


А в камом состоянии у вас фюз M103C?

Анатолий.
Go to the top of the page
 
+Quote Post
bzx
сообщение Oct 4 2007, 21:33
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 465
Регистрация: 5-07-05
Из: Санкт-Петербург
Пользователь №: 6 528



Цитата(GDI @ Oct 4 2007, 18:18) *
...а то может у вас оптимизатор просто выкинул пустой цикл а за ним сразу ретурн стоит...

Очень на это похоже. В настройках следует поставить '-O0' (выключить оптимизатор). Так же надо посмотреть, что получается при дезасемблировании.


--------------------
Для связи email: info собака qbit.su
Go to the top of the page
 
+Quote Post
aesok
сообщение Oct 4 2007, 21:50
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



while (1){} - Это бесконечный цикл, а бесконечные циклы оптимизатором не выкидываються!

Анатолий.
Go to the top of the page
 
+Quote Post
fpmoleg
сообщение Oct 5 2007, 12:12
Сообщение #8


Участник
*

Группа: Новичок
Сообщений: 33
Регистрация: 13-08-07
Пользователь №: 29 751



Спасибо всем за ответы, но проблему это не решело. Может где то с настройками не так. Программирую я в режиме внутрисхемного программирования. Ни какой эмитации меги 103 я в фьюзах не ставил.
Go to the top of the page
 
+Quote Post
GDI
сообщение Oct 5 2007, 12:33
Сообщение #9


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



А ее надо как раз снять, т.к. мега128 поставляется с устаноленным битом эмуляции мега103


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
fpmoleg
сообщение Oct 5 2007, 13:23
Сообщение #10


Участник
*

Группа: Новичок
Сообщений: 33
Регистрация: 13-08-07
Пользователь №: 29 751



>А ее надо как раз снять, т.к. мега128 поставляется с устаноленным битом эмуляции мега103

она снята.

Я прошиваю про помощи AVR Studio версии 4.13.

Написанная програ на эмоуляторе работает так что дело не в программе.

Скорее где то в настройках.

Всем еще раз спасибо. Как говорилась была ошибка в настройках. Я не правильно немного осциллограф настроил. Все работает smile.gif
Go to the top of the page
 
+Quote Post
vladimir_orl
сообщение May 29 2018, 06:18
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 191
Регистрация: 18-09-12
Из: Орёл
Пользователь №: 73 591



В STK500 при работе с дополнительным RS232 надо его выводы проводами подключить к нужным пинам микроконтроллера. В мануале это написано.
Go to the top of the page
 
+Quote Post
ataradov
сообщение May 29 2018, 06:45
Сообщение #12


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

Группа: Участник
Сообщений: 1 004
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



QUOTE (vladimir_orl @ May 28 2018, 23:18) *
В STK500 при работе с дополнительным RS232 надо его выводы проводами подключить к нужным пинам микроконтроллера. В мануале это написано.

Теме 11 лет. Кому этот ответ может помочь?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th June 2018 - 08:26
Рейтинг@Mail.ru


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