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

 
 
 
Reply to this topicStart new topic
> lpc2119 CAN bit timing, baudrate settings
ToniPizecato
сообщение Mar 5 2009, 21:05
Сообщение #1





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



Доброго времени суток.
Работаю с CAN интерфейсом lpc2119. Отсылаю/принимаю на/с компьютер через usb-can. Все прекрасно работает на 125 и 250 kb/s. Пытался повысить до 1Mb/s - не отсылает/принимает. Сперва думал на usb переходник и замкнул передачу CAN'а на себя - не работает. Смотрел в даташите - все делаю правильно. Нашел пример LPC2000_CAN_Driver_Demo со строчками
Цитата
/**
* Bit Timing Values for 20MHz clk frequency
*/
#define LPC2000_CANDRIVER_CANBITRATE125K20MHZ 0x002B0009
#define LPC2000_CANDRIVER_CANBITRATE250K20MHZ 0x002B0004
#define LPC2000_CANDRIVER_CANBITRATE500K20MHZ 0x00140004
#define LPC2000_CANDRIVER_CANBITRATE1000K20MHZ 0x00250001

Юзаю 20МГц. Но значение для 250kb\s у меня отличается от вышеуказанного (у меня 0x0011000F). При подстановке бадрейта на 1Mb\s, указанного выше, ничего не работает. Нашел бадрейт калькулятор в интернете - не помогает.
Для 1mbit/s и 20Mhz вычислил BRP = 3, Tseg1 = 1, Tseg2 = 1, SAM = 1, SJW = 0 (0x00910003).
Зашел в тупик. Как выйти из ситуации?
Go to the top of the page
 
+Quote Post
KRS
сообщение Mar 5 2009, 22:29
Сообщение #2


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

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



Цитата(ToniPizecato @ Mar 6 2009, 00:05) *
Для 1mbit/s и 20Mhz вычислил BRP = 3, Tseg1 = 1, Tseg2 = 1, SAM = 1, SJW = 0 (0x00910003).
Зашел в тупик. Как выйти из ситуации?

Так нельзя!
Время бита равно (TSEG1 + TSEG2 + 1(SYNC)) * (TQ - время кванта)
так вот время бита может быть минимум 5! Но в большинтсве контроллеров минимум 8 * TQ
т.е. TSEG1 + TSEG2 >= 7 и TSEG1 > TSEG2
можно почитать например это
http://www.freescale.com/files/microcontro...note/AN1798.pdf
Go to the top of the page
 
+Quote Post
ToniPizecato
сообщение Mar 6 2009, 10:31
Сообщение #3





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



Цитата(KRS @ Mar 6 2009, 01:29) *
Так нельзя!
Время бита равно (TSEG1 + TSEG2 + 1(SYNC)) * (TQ - время кванта)
так вот время бита может быть минимум 5! Но в большинтсве контроллеров минимум 8 * TQ
т.е. TSEG1 + TSEG2 >= 7 и TSEG1 > TSEG2
можно почитать например это
http://www.freescale.com/files/microcontro...note/AN1798.pdf

Большое спасибо, KSR за доку и совет. Все настроил, прекрасно работает.
Для 20Mhz 1Mbit/s настройки будут такие Tseg1 = 4, Tseg2 = 3, BRP = 1, SAM = 1, SJW = 0
C1BTR = 0x00B40001
Go to the top of the page
 
+Quote Post

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

 


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


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