Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: сконфигурить CAN на 100кБ/с LPC2129
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Punk
Не могу разобраться с регистром BTR. Покажите плз пример расчета скорости 100кБит/сек для Fclk=60МГц
Заранее спасибо =)
Punk
Цитата(Punk @ Oct 7 2007, 14:39) *
Не могу разобраться с регистром BTR. Покажите плз пример расчета скорости 100кБит/сек для Fclk=60МГц
Заранее спасибо =)


Спасибо мне сам додумался =)
Smallday
Подскажите ответ пожалуйста?, я еще не додумался!
Alex03
Цитата(Smallday @ Oct 12 2007, 10:40) *
Подскажите ответ пожалуйста?, я еще не додумался!


У меня в хидере такое, не помню откуда.

Код
// Bit rate = cclk / ( VPBDIV * (BRP+1) * ( TSEG1+1 + 1 + TSEG2+1))

// Common CAN bit rates for cclk=60 MHz, VPBDIV=4: ==> pclk=15 MHz:
// CAN Bit Timings in Detail -->   // SAM TSEG1 TSEG2 SJW SP%  BRP
#define CANBit10k_15MHz   0x25C095 // 0+1  5+1   2+1  3+1 70  149+1
#define CANBit25k_15MHz   0x25C03B // 0+1  5+1   2+1  3+1 70   59+1
#define CANBit50k_15MHz   0x25C01D // 0+1  5+1   2+1  3+1 70   29+1
#define CANBit100k_15MHz  0x25C00E // 0+1  5+1   2+1  3+1 70   14+1
#define CANBit125k_15MHz  0x25C00B // 0+1  5+1   2+1  3+1 70   11+1
#define CANBit250k_15MHz  0x25C005 // 0+1  5+1   2+1  3+1 70    5+1
#define CANBit500k_15MHz  0x25C002 // 0+1  5+1   2+1  3+1 70    2+1
#define CANBit1000k_15MHz 0x48C000 // 0+1  8+1   4+1  3+1 67    0+1

// Common CAN bit rates for cclk=60 MHz, VPBDIV=1: ==> pclk=60 MHz:
// CAN Bit Timings in Detail -->   // SAM TSEG1 TSEG2 SJW SP%  BRP
#define CANBit10k_60MHz   0x25C257 // 0+1  5+1   2+1  3+1 70  599+1
#define CANBit25k_60MHz   0x25C0EF // 0+1  5+1   2+1  3+1 70  239+1
#define CANBit50k_60MHz   0x25C077 // 0+1  5+1   2+1  3+1 70  119+1
#define CANBit100k_60MHz  0x25C03B // 0+1  5+1   2+1  3+1 70   59+1
#define CANBit125k_60MHz  0x25C02F // 0+1  5+1   2+1  3+1 70   47+1
#define CANBit250k_60MHz  0x25C017 // 0+1  5+1   2+1  3+1 70   23+1
#define CANBit500k_60MHz  0x25C00B // 0+1  5+1   2+1  3+1 70   11+1
#define CANBit1000k_60MHz 0x48C003 // 0+1  8+1   4+1  3+1 67    3+1
Smallday
Спасибо.. smile.gif
Punk
Считал ручками, но работает без ошибок:
//Кварц 16MHz
VPBDIV = 0x00000001; //60MHz
//SPEED
//C2BTR = 0x001C001D; //125
//C2BTR = 0x006B001D; //100
C2BTR = 0x006B0005; //500
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.