0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

HPM6750EVKMINI开发板的CAN总线测试

Evanee 来源:Evanee 作者:Evanee 2022-06-20 09:25 次阅读

1.前言

hpm6750具有高性能,比较适合做复杂控制算法,而工控领域can总线是绕不开的话题,本文进行基本can测试,后续将在此基础上进行相对复杂的程序编写。

2.接线

本次测评的hpm67650evkmini板子上没有can总线的phy,如果要用can总线就只能外接,刚好手上有个TJA1050小板,就用它测试。

poYBAGKtakWAcbMWAAeHlqErmK0735.pngTJA1050PHY板

第一步:查询芯片手册以及开发板手册,找到需要的引脚。

poYBAGKtZ9SAOMbwAAEwQ9Iq8Mw653.png芯片数据手册(HPM6700_6400_DS_V1_2.pdf)pYYBAGKtaCaANIEQAABwaeXaN-A495.png板载P2连接器列表(HPM6750EVKMINI USER GUIDE.pdf)poYBAGKtaI-AOWfWAABS06LrsE8204.png板载P1连接器列表(HPM6750EVKMINI USER GUIDE.pdf)

整理需要连接的引脚如下表所示:

TJA1050PHY板引脚

HPM6750EVKMINI引脚

+5v

P1_2

GND

P1_6

CAN_TX

P2_7

CAN_RX

P2_10

然后使用杜邦线,将两块板以及usbcan进行连接,连好后的照片如下图。

poYBAGKta-qANLUaAAMl-D-4cRE132.png

3.生成can测试工程

start_cmd.cmd进入D:\AEMBED\HPM6750\sdk_env_v0.11.0\hpm_sdk\samples\drivers\can

> generate_project -b hpm6750evkmini -t flash_xip

使用SEGGER Embedded Studio打开工程。

4.代码分析

根据can_demo.c中的源代码,准备测试board_can_echo_test_responder回传程序,关键代码如下:

void board_can_echo_test_responder(void)
{
    can_config_t can_config;
    can_get_default_config(&can_config);
    can_config.baudrate = 500000; /* 500kbps */
    can_config.mode = can_mode_normal;
    board_init_can(BOARD_APP_CAN_BASE);
    uint32_t can_src_clk_freq = board_init_can_clock(BOARD_APP_CAN_BASE);
    hpm_stat_t status = can_init(BOARD_APP_CAN_BASE, &can_config, can_src_clk_freq);
    if (status != status_success) {
        printf("CAN initialization failed, error code: %d\n", status);
        return;
    }

    can_enable_tx_rx_irq(BOARD_APP_CAN_BASE, CAN_EVENT_RECEIVE);
    intc_m_enable_irq_with_priority(BOARD_APP_CAN_IRQn, 1);
    printf("CAN echo test: Responder is waiting for echo message...\n");
    while (!has_new_rcv_msg) {
    }
    has_new_rcv_msg = false;
    show_received_can_message((const can_receive_buf_t *)&s_can_rx_buf);

    can_transmit_buf_t tx_buf;
    memset(&tx_buf, 0, sizeof(tx_buf));
    tx_buf.dlc = s_can_rx_buf.dlc;
    tx_buf.id = 0x321;
    uint32_t msg_len = can_get_data_bytes_from_dlc(s_can_rx_buf.dlc);
    memcpy(&tx_buf.data, (uint8_t *)&s_can_rx_buf.data, msg_len);
    status = can_send_message_blocking(BOARD_APP_CAN_BASE, &tx_buf);
    if (status != status_success) {
        printf("CAN sent message failed, error_code:%d\n", status);
        return;
    }
    printf("Sent echo message back\n");
}

分析代码,总结函数功能:如果接收到can信息,将在串口打印出该信息的id以及信息内容,并且以ID=0x321将该can信息原路发送回去。

5.下载工程

使用SEGGER Embedded Studio编译下载,运行:

pYYBAGKtbm-AdFmYAAKR1GF9BbA666.png

1.串口控制台输入3,板子进入等待接收状态;

2.使用usbcan发送如图所示信息,板子串口控制台出现响应,同时usbcan接收到板子发回的can信息。

pYYBAGKtboWARdlAAAB5CahH6hA876.png

3.试验现象与分析一致,can总线测试成功!

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 测试
    +关注

    关注

    8

    文章

    5075

    浏览量

    126297
  • CAN
    CAN
    +关注

    关注

    57

    文章

    2690

    浏览量

    463069
  • 总线
    +关注

    关注

    10

    文章

    2856

    浏览量

    87886
  • 开发板
    +关注

    关注

    25

    文章

    4880

    浏览量

    96997
收藏 人收藏

    评论

    相关推荐

    HPM6750 Bootloader设计

    我正在做一个hpm6750evk2的bootloader。设计很简单,boot工程代码只做跳转到1M后的APP工程代码处,APP工程就是做的一个点灯的程序而已,boot、APP工程都是跑
    发表于 10-23 18:59

    HPM6750evkmini如何实现可信的执行环境?

    HPM6700的datasheet中的1.2.15 信息安全系统有提到“基于BOOT ROM 的安全启动机制,支持加密启动,支持可信的执行环境”,请问可信的执行环境如何实现的?有相关的Demo或者资料吗?是类似于TFM这样的吗?
    发表于 09-25 09:27

    [can开发板] 一款低价can/obd2总线Linux开发板

    CAN总线/汽车CAN总线/OBD2通讯/OBD分析仪/USB转CAN/DBC编解码/带远程访问功能的C
    发表于 07-05 16:46

    先楫半导体所有开发板已上RT-Thread主线啦

    目前,先楫半导体在RT-Thread主线支持的开发板包含以下这些
    的头像 发表于 06-05 08:17 474次阅读
    先楫半导体所有<b class='flag-5'>开发板</b>已上RT-Thread主线啦

    基于先楫HPM5300 RISC-V内核MCU的HPM5361EVK开发板测评效果(二)

    HPM5361EVK是基于先楫HPM5300系列高性能RISC-V内核MCU的一款开发板
    的头像 发表于 03-12 10:30 2517次阅读
    基于先楫<b class='flag-5'>HPM</b>5300 RISC-V内核MCU的<b class='flag-5'>HPM</b>5361EVK<b class='flag-5'>开发板</b>测评效果(二)

    先楫HPM5361EVK开发板,网友测评效果(二)

    上海先楫半导体举办的HPM5361EVK开发板试用活动圆满结束,广大工程师和爱好者们踊跃参与此次试用并提交报告。经过先楫半导体专家组评选,一共产生6名优秀获奖者。感谢媒体平台电子工程世界(简称
    的头像 发表于 03-12 08:16 1565次阅读
    先楫<b class='flag-5'>HPM</b>5361EVK<b class='flag-5'>开发板</b>,网友测评效果(二)

    解决HPM6750EVK2jlink下载

    拿到HPM6750EVK2,使用jlink下载时,我原来用买jlink配的20转10转接进行连接,下载程序里一直报不能连接到开发板。经过查找用手册后,找到了问题。 我的jlink的引脚图与之不对
    发表于 02-16 10:30

    【先楫HPM5361EVK开发板试用体验】先楫HPM5361EVK开发板初体验

    收到先楫HPM5361EVK开发板,被先楫HPM5361EVK开发板的做工和电路设计惊艳到了,首先是黑色的板子布线设计合理,元件布局整齐,
    发表于 12-24 22:58

    【先楫HPM5361EVK开发板试用体验】认识和了解先楫HPM5361EVK开发板

    近日,收到了先楫HPM5361EVK开发板开发板,带大家了解和认识一下先楫HPM5361EVK开发板。 已下是
    发表于 12-24 22:39

    【先楫HPM5361EVK开发板试用体验】HPM5361程序下载

    开发板的原理图可以考到的HPM5361的UART0连接到了FT2232,如下图所示。 HPM5361开发板的USB连接到丝印为USB的Type-C座子,如下图所示。 3.1、Embe
    发表于 12-21 14:59

    【先楫HPM5361EVK开发板试用体验】-- HPM5361初体验

    【先楫HPM5361EVK开发板试用体验】-- HPM5361初体验
    发表于 12-11 10:27

    【先楫HPM5361EVK开发板试用体验】coremark软件跑分测试HPM5361EVK性能

    感谢电子发烧友的工作人员发放的HPM5361EVK开发板, Windows环境下安装SEGGER Embedded Studio 先楫半导体公司的HPM5361EVK开发板支持SEG
    发表于 12-10 19:32

    【先楫HPM5361EVK开发板试用体验】coremark软件跑分测试HPM5361EVK性能

    感谢电子发烧友的工作人员发放的HPM5361EVK开发板, Windows环境下安装SEGGER Embedded Studio 先楫半导体公司的HPM5361EVK开发板支持SE
    发表于 12-07 10:15

    【先楫HPM5361EVK开发板试用体验】coremark测试HPM5361EVK性能

    感谢电子发烧友的工作人员发放的HPM5361EVK开发板, Windows环境下安装SEGGER Embedded Studio 先楫半导体公司的HPM5361EVK开发板支持SEG
    发表于 12-07 09:23

    【先楫HPM5361EVK开发板试用体验】-- HPM5361初体验

    值得称赞的是快递居然还是用的特快顺丰,这个对于着急等待,迫切希望体验先楫的坛友们是真的赞。 但是打开包装后开发板只用一层缓存泡沫和静电袋包装,这个太容易造成开发板上的插针或其他零部件造成损坏(之前就有
    发表于 11-29 11:26