roboforum.ru

Технический форум по робототехнике.


COM порт vs МК

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

Сообщение KiCom » 24 ноя 2005, 19:00

Тоесть нужно поставить везде галочки (в codeVisionAVR) напротив CKSEL 0, CKSEL 1,  CKSEL 2 и CKSEL 3 Или какае-то их комбинация?
KiCom
 
Сообщения: 345
Зарегистрирован: 22 окт 2005, 11:15
Откуда: Красноярск

Сообщение -= Александр =- » 24 ноя 2005, 19:41

Комбинацию ищи в даташите... Я щас занят, может позже сам гляну...
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение KiCom » 24 ноя 2005, 20:35

Что-то нашел вот табличка:
Как я понял мне нужен External Clock?
Вложения
2.gif
2.gif (6.02 КиБ) Просмотров: 2580
KiCom
 
Сообщения: 345
Зарегистрирован: 22 окт 2005, 11:15
Откуда: Красноярск

Сообщение -= Александр =- » 24 ноя 2005, 22:29

Нужен External Crystal. Далее должна быть табличка по частотам...
У меня на М8538 и М16 было 1111, наверно там так-же...
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение KiCom » 26 ноя 2005, 20:13

Блин запорол уже третий (последний) МК, непонимаю в чем фигня, поступаю я так: Использую Code Vision AVR, тыкаю по кнопке Run the chip programer (микросхемка нарисована) открываеться значит оно высавляю мой МК частоту не трогаю по дефолту стоит 4 Мгц, нажимаю вкладку read => fuse bit(s), все проходит пучком, он типа предлагает перенести эти данные в окно я нажимаю yes потом выставляю галочки напротив CKSEL0..CKSEL3 как я понял по ДШ нажимаю program fuse. Все проходит тоже пучком. Потом опять нажимаю Read fuse bit(s) А он говорит хрен тебе ломайся. И ВСЕ на этом МК у меня кончились. Так я запорол 3 МК. Что я делаю не так, а то уже денег просто жалко. Да и нервов.
KiCom
 
Сообщения: 345
Зарегистрирован: 22 окт 2005, 11:15
Откуда: Красноярск

Сообщение -= Александр =- » 26 ноя 2005, 21:02

Черт... Они ж инверсные! Галочка значит 0! Сам с этим долго парился... Надо не ставить, а снимать все галочки CKSEL...
Оживить те что запорол так: на XTAL1 подать импульсы. Взять их можно от прибора, если есть или сгенерить живым МК. Годится от 500кГц до 1МГц. Даешь импульсы и перешиваешь биты как надо...
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение KiCom » 30 ноя 2005, 13:08

Вчера удачно прошил fuse теперь он работает от кварца, но только скорость мигания светодиодов не изменилась. (есть у меня програмка которая просто мигает светодиобом при переполнении таймера).Какая была с внутреним кварцем,и с внешним на 11.059 МГЦ скорость таже. Как я понимаю она должна была увеличиться раз в десять.
KiCom
 
Сообщения: 345
Зарегистрирован: 22 окт 2005, 11:15
Откуда: Красноярск

Сообщение -= Александр =- » 30 ноя 2005, 20:30

Точно не изменилась? Хотя почитай даташит, возможно 2313 идет с внутренним генератором на 8 МГц... Черт его знает...

или в АппБилдере создай прогу чтоб с твоим кварцем раз в пару секунд морнала и по часам проследи не набегает ли ошибка...
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение KiCom » 02 дек 2005, 15:00

Что-то я понять не могу с этим кварцем, прогоняю прошивку в эмуляторе все замеры по времени как надо, но прошиваю ее в контролер мигает примерно в 10 раз медленее. То в эмуляторе мигает с цастотой 50 гц. А в жизни ну всяко меньше мой глаз замечает причем достаточно отчетливо, посчитать не успеваю но есть подозрени что в районе 5 гц.
KiCom
 
Сообщения: 345
Зарегистрирован: 22 окт 2005, 11:15
Откуда: Красноярск

Сообщение -= Александр =- » 02 дек 2005, 19:02

Попробуй отпаять кварц. Если не заведется без него - значит от кварца работает.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение KiCom » 02 дек 2005, 19:14

Странно очень странно но без кварца тоже работает :) вот блин а , хотя я это первым делом проверил, правда проверял на програматоре там он не захотел работать без кварца, аж как-то не удобно стало.
Выполнил команду read fuse bits а CDAVR CKSEL0...CKSEL3 напротив ничего не стоит тоесть все равны еденице как в ДШ написано что делать?
KiCom
 
Сообщения: 345
Зарегистрирован: 22 окт 2005, 11:15
Откуда: Красноярск

Сообщение -= Александр =- » 02 дек 2005, 22:06

Посмотри в даташите про биты SUT0..1 - не помню че это такое, но помню я чего-то и с ними шаманил...
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение KiCom » 03 дек 2005, 13:07

Ага нашел, вот только не работает перепробовал все варианты (только те где CKSEL0 = 1). Всеравно работает без кварца. Как я понимаю сам контролер работает от внешнего кварца а таймер от внутренего? Вот табличка по которой я выставлял значения.
Кстати без кварца он не работает что меня вчера взглючило и я отпаял землю кварца (точнее конденсаторов кварца). Тако вот сегодня сделал как надо без кварца не работает, как-бы зависает на том положении на каком был.
Вложения
2.gif
KiCom
 
Сообщения: 345
Зарегистрирован: 22 окт 2005, 11:15
Откуда: Красноярск

Сообщение KiCom » 04 дек 2005, 16:52

Сегодня на доосуге проводил опыт, была составлена простейшая программа с помощью APPBuilder вот ее код:

Код: Выделить всёРазвернуть
//ICC-AVR application builder : 04.12.2005 18:35:13
// Target : 2313
// Crystal: 1.0000Mhz

#include <io2313v.h>
#include <macros.h>

void port_init(void)
{
PORTB = 0x80;
DDRB  = 0x80;
PORTD = 0x00;
DDRD  = 0x00;
}

//TIMER0 initialize - prescale:1024
// desired value: 4Hz
// actual value:  4,002Hz (0,1%)
void timer0_init(void)
{
TCCR0 = 0x00; //stop timer
TCNT0 = 0x0C; //set count
TCCR0 = 0x05; //start timer
}

#pragma interrupt_handler timer0_ovf_isr:7
void timer0_ovf_isr(void)
{
PORTB ^=BIT(7);
TCNT0 = 0x0C; //reload counter value
}

//call this routine to initialize all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
port_init();
timer0_init();

MCUCR = 0x00;
GIMSK = 0x00;
TIMSK = 0x02;
SEI(); //re-enable interrupts
//all peripherals are now initialized
}

//
void main(void)
{
init_devices();
//insert your functional code here...
}

Потом она была просимулирована на симуляторе VML все мигало как надо потом это было прошито на МК, в МК я прошил фьюзы на использоваие внутренего кварца с частотой 4 МГЦ но вместо положеных 16 МГЦ мигания светодиода я получил 30 миганий за 25 секунд, тоесть примерно 0.8 Гц, потом я прошил фьзы МК на использование встроенного кварца с цастотой 8Мгц получил частоту 1.8 гц. Где я мог допустить косяк допустил косяк?
KiCom
 
Сообщения: 345
Зарегистрирован: 22 окт 2005, 11:15
Откуда: Красноярск

Сообщение -= Александр =- » 05 дек 2005, 14:56

В общем достал я Т2313, как только с глюками на компе справлюсь - посмотрю где там собака зарыта...
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Пред.След.

Вернуться в Новичкам или основы основ роботостроения.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

cron