Jump to content

    

Работа с STK500 и STK501

Привет всем.

 

Купил был отладочный комплект 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.

 

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

 

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

Share this post


Link to post
Share on other sites

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

Кстати для кварца я ставлю всегда самое долгое время старта, т.е. 16КСК+65мс

Share this post


Link to post
Share on other sites
убрать ретурн из майна, и в цикл что то внести, например завести переменную и там ее инкрементировать, а то может у вас оптимизатор просто выкинул пустой цикл а за ним сразу ретурн стоит, вот программа и завершается. А еще лучше не тупо ставить в порты единицы, а светодиодами помигать, наверняка есть соответствующий пример в комплекте или на просторах интернет его можно отыскать, или самому сварганить.

Кстати для кварца я ставлю всегда самое долгое время старта, т.е. 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"

::);

}

PORTE = 0xFF;

}

}

 

По поводу светодиодиков или осцеллографа - это дело вкуса. Если есть сигнал на портах то это видно и осцеллогрофом.

У меня кварц на 7.372МГц, напряжение тоже есть - 4.91 В. На порт XTAL1 сигналы от кварца поступают.

Фьюзы прошивал и читал все данны совпадают.

Share this post


Link to post
Share on other sites

На счёт сигналов 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);

}

 

то всё должно работать, если с фузами не напутали, я их обычно сам высталяю без калькуляторов- не доверяю я им...

Share this post


Link to post
Share on other sites
Использую ма ATmega128L.

 

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

 

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

 

Анатолий.

Share this post


Link to post
Share on other sites
...а то может у вас оптимизатор просто выкинул пустой цикл а за ним сразу ретурн стоит...

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

Share this post


Link to post
Share on other sites

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

 

Анатолий.

Share this post


Link to post
Share on other sites

Спасибо всем за ответы, но проблему это не решело. Может где то с настройками не так. Программирую я в режиме внутрисхемного программирования. Ни какой эмитации меги 103 я в фьюзах не ставил.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

она снята.

 

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

 

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

 

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

 

Всем еще раз спасибо. Как говорилась была ошибка в настройках. Я не правильно немного осциллограф настроил. Все работает :)

Share this post


Link to post
Share on other sites

В STK500 при работе с дополнительным RS232 надо его выводы проводами подключить к нужным пинам микроконтроллера. В мануале это написано.

Share this post


Link to post
Share on other sites
В STK500 при работе с дополнительным RS232 надо его выводы проводами подключить к нужным пинам микроконтроллера. В мануале это написано.

Теме 11 лет. Кому этот ответ может помочь?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now