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

 
 
> Настройки CAN для ATmega128CAN, Необходимо подобрать значения регистров CANBT1-3 для кварца 14,7456 МГ
Vladimir-K
сообщение Feb 13 2008, 10:52
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 13-02-08
Пользователь №: 35 003



Необходимо подобрать значения регистров CANBT1-3 для контроллера, работающего на частоте 14,7456 МГц
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
A.D.
сообщение Feb 14 2008, 06:52
Сообщение #2





Группа: Новичок
Сообщений: 2
Регистрация: 5-01-08
Пользователь №: 33 833



http://electronix.ru/forum/index.php?showt...p;hl=AT90CAN128
тут есть пример
Go to the top of the page
 
+Quote Post
galjoen
сообщение Feb 14 2008, 07:42
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(A.D. @ Feb 14 2008, 09:52) *

Оттуда для 14745600: case f125kbps: { CANBT1 = 0x0C; CANBT2 = 0x0E; CANBT3 = 0x36; break; } //123.913kbps
Это значит делитель =7 - (CANBT1 = 0x0C), TQ=17 - (Tprs=8)+(Tphs2=5)+(Tphs1=4)=17. Вторая по точности настройки частоты комбинация. Если-бы сделать так: делитель=9, а TQ=13 - 126030.77 kbps получается. И ещё у неё SMP=0. То есть 1 выборка, а не 3. И Tsjw=1. Я в CAN-е новичок, поэтому мне интересно - это неточность, или из-за каких-то определённых соображений так сделано?
Go to the top of the page
 
+Quote Post
KRS
сообщение Feb 14 2008, 08:29
Сообщение #4


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

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



Цитата(galjoen @ Feb 14 2008, 10:42) *
Вторая по точности настройки частоты комбинация. Если-бы сделать так: делитель=9, а TQ=13 - 126030.77 kbps получается.

Да так получается лучше. Тут главное выбрать соотношение Tprs Tphs1 Tphs2 правильно.
Например для 69% sample point Tprs = 6 Tphs1 = 3 Tphs2 = 3


Цитата(galjoen @ Feb 14 2008, 10:42) *
Оттуда для 14745600: case f125kbps: { CANBT1 = 0x0C; CANBT2 = 0x0E; CANBT3 = 0x36; break; } //123.913kbps
Это значит делитель =7 - (CANBT1 = 0x0C), TQ=17 - (Tprs=8)+(Tphs2=5)+(Tphs1=4)=17.

Здесь Tphs2 = 4, правда TQ все равно 17 вы забыли SYN прибавить
А sample поинт получается 70%
Так что способ с TQ = 13 лучше.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Feb 14 2008, 12:28
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(KRS @ Feb 14 2008, 11:29) *
Да так получается лучше. Тут главное выбрать соотношение Tprs Tphs1 Tphs2 правильно.
Например для 69% sample point Tprs = 6 Tphs1 = 3 Tphs2 = 3
Так что способ с TQ = 13 лучше.

А вы для всех возможных TQ (от 8 до 25) оптимальные соотношения Tprs Tphs1 Tphs2 случайно не вычисляли? Или м.б. есть такие TQ, для которых это оптимально сделать не получается?
Цитата(galjoen @ Feb 13 2008, 16:02) *
Я вообще хочу чтобы это в самом AT90CAN128 вычислялось. У меня там RTC кварц есть 32756 Гц. Я частоту процессора вычисляю - кварцы-то разные могут быть (для автобауда у RS485 так сделал). Потом оптимальный делитель + кол-во TQ вычислю. Делитель сразу установлю, а остальное по таблице в зав-ти от TQ. Для значений TQ от 8 до 25 это всего 17 таблиц. В этих таблицах - что в остальные регистры писать при соответствующем TQ.

Я вот об этом. Если какие-то TQ "плохие". Это усложнится. Но всё равно сделать можно будет. Весовые коэфф-ты для TQ ввести. Потом на них отклонение от частоты помножать. И уже из этих произведений лучшее выбирать.

А ещё вопрос не по теме: Сегодня меня в "свои" перевели. А вроде ничего не изменилось. Я что-то настроить должен? Если насчёт "своих" глупость написал - не пинайте. Будем считать, что это у меня от радости.
Go to the top of the page
 
+Quote Post



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

 


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


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