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

 
 
> Настройка скорости CAN АТ90CAN128, clock 14.7456 MHz for 125kbps
zuuuuk
сообщение Jul 28 2010, 15:44
Сообщение #1


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

Группа: Участник
Сообщений: 188
Регистрация: 26-04-07
Пользователь №: 27 334



Доброго времени суток.

я использую контроллер AT90CAN128. для соединения компа и платы использую USB-CAN.

Подскажите пожалуйста возможно ли организовать стандартную скорость
в сети CAN (125 кб/с 500 кб/с) при тактовой частоте контроллера 14.7456 MHz.

вот мои настройки для 125 кб/с
CANGSTA |= (1<<ENFG) ; // enable can
CANGCON |= (1<<1); //0x02;
CANGIE |= (1<<ENRX) | (1<<ENTX); //0x20;
CANIE2=0xFF;
CANIE1=0x00;
CANHPMOB=0x00;
CANTCON=0xf0;

CANBT1=0x0c;
CANBT2=0x4e;
CANBT3=0x58;
где то закралась ошибка. не могу найти где? буду признателен за помощ.

еще подскажите для чего необходим CAN timing. в доке написано
A programmable 16-bit timer is used for message stamping. для какой штамповки он нужен? я не понимаю

зарание благодарю.


Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zuuuuk
сообщение Aug 3 2010, 12:54
Сообщение #2


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

Группа: Участник
Сообщений: 188
Регистрация: 26-04-07
Пользователь №: 27 334



да там короткие нулевые биты длинной 15 мк секунд. доходят до драйвера CAN.
инициализация такая

// CAN Controller initialization
// CAN: On
CANGCON=0x02;
CANGIE=0x30;
CANGIE |= (1<<ENIT); //all interrupts
CANIE2=0x07;
CANIE1=0x00;
CANHPMOB=0x10;

CANBT1=0x10; //0x10
CANBT2=0x0a; //0x0A
CANBT3=0x25; //0x25

CANTCON=0x00;

#asm("sei"); //enable interrapt

//ID tag
CANPAGE=00;
CANIDT1=0;
CANIDT2=0;
CANIDT3=0;
CANIDT4=0;
CANIDM1=0;
CANIDM2=0;
CANIDM3=0;
CANIDM4=0;
CANCDMOB |= (1<<DLC3);
CANCDMOB|=(1<<CONMOB1);

// send messeg
CANPAGE=0x01;
CANIDT1=0x00;
CANIDT2=0x00;
CANIDT3=0;
CANIDT4=0;
CANCDMOB =(1<<DLC0);
CANMSG=0x55;
CANCDMOB|=(1<<DLC0);
CANCDMOB|=(1<<CONMOB0); //send



while (1)
{
};
Go to the top of the page
 
+Quote Post
KRS
сообщение Aug 3 2010, 14:03
Сообщение #3


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(zuuuuk @ Aug 3 2010, 16:54) *
// CAN Controller initialization
// CAN: On
CANGCON=0x02;

Так вы с самого начала неправильно инитите контроллер
Надо
Код
  CANGCON=0;
  while(CANGSTA & (1<<ENFG));
  .... нужная инициализация
  
  // запуск CAN
  CANGCON=(1<<ENASTB);
  while(!(CANGSTA & (1<<ENFG)));

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- zuuuuk   Настройка скорости CAN АТ90CAN128   Jul 28 2010, 15:44
- - zuuuuk   Помогите подсчитать коэфициэнты для скорости 125 к...   Jul 29 2010, 03:56
|- - galjoen   Цитата(zuuuuk @ Jul 29 2010, 07:56) Помог...   Jul 29 2010, 14:21
- - zuuuuk   великое тебе спасибо.. поиск по форуму что ли?   Jul 29 2010, 15:36
|- - galjoen   Цитата(zuuuuk @ Jul 29 2010, 19:36) поиск...   Jul 30 2010, 13:56
- - zuuuuk   qaljoen, извиняюсь за вольное обращение. к больш...   Jul 31 2010, 07:46
- - zuuuuk   я наверное слишком надоедлив на этом сайте. но все...   Aug 3 2010, 09:26
|- - galjoen   Видимо у вас в сети нет никого, кроме этого самого...   Aug 3 2010, 10:01
- - zuuuuk   я соединяю плату (AT90can128+драйвер sn65...) и к...   Aug 3 2010, 11:01
|- - galjoen   Нужно глянуть осциллографом на ноге TxCAN, у AT90C...   Aug 3 2010, 11:29
|- - galjoen   Цитата(zuuuuk @ Aug 3 2010, 16:54) да там...   Aug 3 2010, 15:44
|- - zuuuuk   Цитата(galjoen @ Aug 3 2010, 19:44) 15 мк...   Aug 4 2010, 07:39
|- - galjoen   ЦитатаACK FIELD The ACK FIELD is two bits long and...   Aug 4 2010, 13:20
- - zuuuuk   Вобщем решил использовать покупные платы. подскаж...   Aug 17 2010, 15:42


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

 


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


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