[PIC®/AVR®/dsPIC®产品]

MCU 外设应用 - CAN总线远程帧接收

[复制链接]
1534|8
手机看帖
扫描二维码
随时随地手机跟帖
oxygenzz|  楼主 | 2019-4-12 10:24 | 显示全部楼层 |阅读模式
本帖最后由 oxygenzz 于 2019-4-12 10:31 编辑

实验内容:正确接收主机通过CAN总线发来的远程帧,并自动发送应答数据,此过程无需CPU/固件干预。

设计举例
目标芯片:PIC18F25K83 (带有CAN控制器)
硬件平台:HPC Curiosity Board , MCP2542 Click (CAN收发器板)

使用MCC对芯片进行配置


时钟配置

489855caff605e3687.png

管脚配置

407985caff61c6429c.png

CAN外设配置

986655caff6319cfd7.png

849175caff63c95d80.png

342835caff6463e97a.png

MCC生成代码

检查生成的代码。
在ecan.c中,
void ECAN_Initialize(void)
{

    /**
    Configure Generic Buffers to be Transmit or Receive
    */
    BSEL0 = 0x04;
    B0CON = 0x04;

    B0D0 = 0x00;
    B0D1 = 0x01;
    B0D2 = 0x02;
    B0D3 = 0x03;
    B0D4 = 0x04;
    B0D5 = 0x05;
    B0D6 = 0x06;
    B0D7 = 0x07;
    B0DLC = 0x08;
    B0SIDH = 0x24;
    B0SIDL = 0x60;

    /**
    Enable Filters
    */
    RXFCON0 = 0x01;
    RXFCON1 = 0x00;


    /**
    Assign Filters to Buffers
    */
    RXFBCON0 = 0x02;

/**
    Initialize Receive Filters
    */
    RXF0EIDH = 0x00;
    RXF0EIDL = 0x00;
    RXF0SIDH = 0x24;
    RXF0SIDL = 0x60;
    RXF1EIDH = 0x00;
    RXF1EIDL = 0x00;
    RXF1SIDH = 0x00;
    RXF1SIDL = 0x00;

}

测试结果

下载程序后,运行。
PCCAN测试软件,发送一帧远程帧后,接收到K83自动发送的8字节数据。

441955caff7b771ff6.png

722325caff6aeded90.png



345195caff69e80141.png
385615caff7ac30d9d.png

使用特权

评论回复
CoolSilicon| | 2019-4-12 10:36 | 显示全部楼层
高大上的应用啊....赞!

使用特权

评论回复
martin| | 2019-4-12 10:37 | 显示全部楼层
MCC真是个好东西!

使用特权

评论回复
天灵灵地灵灵| | 2019-4-14 00:02 | 显示全部楼层
多谢分享。

使用特权

评论回复
externally| | 2019-4-15 21:24 | 显示全部楼层
学习了!前段时间用过CAN通讯

使用特权

评论回复
beijiaohong| | 2019-9-18 17:00 | 显示全部楼层
externally 发表于 2019-4-15 21:24
学习了!前段时间用过CAN通讯

您好,您用的单片机是dsPIC33CH系列吗?

使用特权

评论回复
beijiaohong| | 2019-9-18 17:01 | 显示全部楼层
您好,您用过dsPIC33CH系列单片机的CAN FD吗?

使用特权

评论回复
CoolSilicon| | 2019-9-19 10:17 | 显示全部楼层
beijiaohong 发表于 2019-9-18 17:00
您好,您用的单片机是dsPIC33CH系列吗?

不是的...
人楼主第二行就说明型号了的:
目标芯片:PIC18F25K83 (带有CAN控制器)

使用特权

评论回复
beijiaohong| | 2019-9-19 10:50 | 显示全部楼层
CoolSilicon 发表于 2019-9-19 10:17
不是的...
人楼主第二行就说明型号了的:
目标芯片:PIC18F25K83 (带有CAN控制器) ...

MCC不支持某些单片机的CAN FD,好像除了寄存器配置外,还需要其他的基本程序,这个实在是不知道咋写

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

46

主题

190

帖子

11

粉丝