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

 
 
> Настройка скорости
Санёк76
сообщение Mar 12 2011, 21:11
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 6-03-11
Пользователь №: 63 428



Приветствую

для организации CAN шины между AVR-контроллерами я использую связку MCP2510 + MCP2551.

Для изменения сокорости передачи бита можно изменять временную кванту и длинну сегментов (в этих квантах).
Можно ли менять скорость измененением либо только ванты либо только длин сегментов от 125Кбит до 1Мбит при 16МГц тактовой частоты?
Достаточно ли 0,5 мкс, чтобы сигнал распространился по сети (витая пара, 2-3 метра)?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ldimitri
сообщение Mar 16 2011, 10:46
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 13-11-08
Пользователь №: 41 594



При 16Мгц кварце на MCP2510 скорость можно менять только изменением BRP в регистре CNF1 (как я и делаю на протяжении долгого времени), не трогая длину сегментов.

Достаточно добавить в код следующие строчки:

#define FOSC 16000000
#define NTQ 8
#define BRP_VAL(BITRATE) ((FOSC /(2*NTQ*BITRATE))-1)


Тогда следующий код сконфигурирует MCP2510 на работу по CAN со скоростью 125КБит/с:

__mcp_write(CNF1, BRP_VAL(125000));
__mcp_write(CNF2, 0x90);
__mcp_write(CNF3, 0x02);


где __mcp_write - функция записи в регистр некоторого значения

Данный вариант отлично работает для скоростей 25К, 50К, 125К, 250К, 500К, 1М.

0,5мкс - это 1TQ? Да, достаточно.
0,5мкс - это 1 бит? Гарантий нет, т.к. при такой длине бита скорость обмена - 2М, а для CAN максимально заявленная скорость 1М, хотя можешь и попробовать.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st August 2025 - 05:41
Рейтинг@Mail.ru


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