Инициализация контроллера CAN





|Си|
в палитре на схеме

Описание

Блок реализует настройку периферийного модуля CAN.

Программная реализация блока, расположена в заголовочном файле can.h (функция Init_CAN) файла main.c проекта Test_Driver (в среде разработки Keil), который создается при генерации кода проекта и содержит тексты программ алгоритма на языке СИ.

Частота тактирования блока CAN:

CAN_CLK = CPU_CLK / PSG / (BRP+1)

Частота обмена шины CAN:

CAN_RATE = CAN_CLK / (PSEG + SEG1 + SEG2 + SB)

По умолчанию при CPU_CLK = 80МГц:

CAN_CLK = 80M / 1 / (7+1) = 10M

CAN_RATE = 10M / (3+8+8+1) = 500K

Можно использовать для программирования двух типов микроконтроллеров 1986BE1T и 1986BE9X.

Основные характеристики контроллера CAN приведены в спецификациях 1986BE1T.pdf и 1986BE9X.pdf.

Входные порты

Имя Описание Тип линии связи
sort_block Порт необходим для сортировки (определения порядка выполнения) блока. Математическая

Выходные порты

Имя Описание Тип линии связи
ready Выход готовности, сортировки блока. Математическая

Свойства

Название Имя Описание По умолчанию Тип данных
Выбор CAN контроллера CAN_NUM

Возможные значения:

CAN1

CAN2
CAN2 Перечисление
Прием собственных пакетов ROP

Возможные значения:

DISABLE

ENABLE
DISABLE Перечисление
Подтверждение собственных пакетов SAP

Возможные значения:

DISABLE

ENABLE
DISABLE Перечисление
Режим самотестирования STM

Возможные значения:

DISABLE

ENABLE
DISABLE Перечисление
Режим «Только прием» ROM

Возможные значения:

DISABLE

ENABLE
DISABLE Перечисление
Значение размера фазы PSEG PSEG

Возможные значения:

CAN_PSEG_Mul_1TQ

CAN_PSEG_Mul_2TQ

CAN_PSEG_Mul_3TQ

CAN_PSEG_Mul_4TQ

CAN_PSEG_Mul_5TQ

CAN_PSEG_Mul_6TQ

CAN_PSEG_Mul_7TQ

CAN_PSEG_Mul_8TQ
CAN_PSEG_Mul_3TQ Перечисление
Значение размера фазы SEG1 SEG1

Возможные значения:

CAN_SEG1_Mul_1TQ

CAN_SEG1_Mul_2TQ

CAN_SEG1_Mul_3TQ

CAN_SEG1_Mul_4TQ

CAN_SEG1_Mul_5TQ

CAN_SEG1_Mul_6TQ

CAN_SEG1_Mul_7TQ

CAN_SEG1_Mul_8TQ
CAN_SEG1_Mul_8TQ Перечисление
Значение размера фазы SEG2 SEG2

Возможные значения:

CAN_SEG2_Mul_1TQ

CAN_SEG2_Mul_2TQ

CAN_SEG2_Mul_3TQ

CAN_SEG2_Mul_4TQ

CAN_SEG2_Mul_5TQ

CAN_SEG2_Mul_6TQ

CAN_SEG2_Mul_7TQ

CAN_SEG2_Mul_8TQ
CAN_SEG2_Mul_8TQ Перечисление
Значение размера фазы SJW SJW

Возможные значения:

CAN_SJW_Mul_1TQ

CAN_SJW_Mul_2TQ

CAN_SJW_Mul_3TQ

CAN_SJW_Mul_4TQ
CAN_SJW_Mul_3TQ Перечисление
Семплирование SB

Возможные значения:

CAN_SB_1_SAMPLE

CAN_SB_3_SAMPLE
CAN_SB_1_SAMPLE Перечисление

Предделитель частоты CAN_CLK = PCLK/(BRP+1)

BRP

Возможные значения:

0.. 65535
7 Целое
Максимальное значение счетчиков ошибки [0..255] ERR_MAX

Возможные значения:

0.. 255
255 Целое

Базовый предделитель частоты CPU_CLK

PSG

Возможные значения:

CAN_HCLKdiv1

CAN_HCLKdiv2

CAN_HCLKdiv4

CAN_HCLKdiv8

CAN_HCLKdiv16

CAN_HCLKdiv32

CAN_HCLKdiv64

CAN_HCLKdiv128
CAN_HCLKdiv1 Перечисление
Включить прерывание по приему посылки IRQ_EN

Возможные значения:

Да/Нет
Да Двоичное
Приоритет прерывания СAN IRQ_PRI

Возможные значения:

0

1

2

3

4(ВЕ9х)

5(ВЕ9х)

6(ВЕ9х)

7(ВЕ9х)
2 Перечисление
Выбор буферов на прием BUF_ARR

Возможные значения:

CAN_BUFFER_0…CAN_BUFFER_31
CAN_BUFFER_0 Множество

Параметры

Блок не имеет параметров.