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

    文章

    6027

    浏览量

    130707
  • CAN
    CAN
    +关注

    关注

    58

    文章

    3010

    浏览量

    471427
  • 总线
    +关注

    关注

    10

    文章

    3014

    浏览量

    91297
  • 开发板
    +关注

    关注

    25

    文章

    6122

    浏览量

    113250
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    开发者分享 | HPM5E-EC-DEV:基于HPM5E00的EtherCAT开发板分享

    Azure一名业余单片机爱好者,平时喜欢折腾各种开发板和新出的MCU。本职工作是一名软件工程师,日常主要从事软件应用开发,更多是和系统、应用打交道。相比工作里的软件世界,更喜欢在业余时间动手做一些
    的头像 发表于 10-29 10:15 788次阅读
    <b class='flag-5'>开发</b>者分享 | <b class='flag-5'>HPM</b>5E-EC-DEV:基于<b class='flag-5'>HPM</b>5E00的EtherCAT<b class='flag-5'>开发板</b>分享

    HPM6E00EVKRevC开发板32位RISC-V架构

    HPM6E00EVKRevC是先楫半导体(HPMicro)推出的基于HPM6E00系列RISC-V双核MCU的开发板,主频高达 600 MHz,片上集成 2MB RAM,适合用于工业控制、电机驱动
    发表于 10-29 09:41

    HPM monitor studio 只能在 hpm芯片+hpm_sdk 的组合下才能用吗?

    使用 hpm6200evk开发板,但未使用hpm_sdk。 然后编译的固件elf无法在hpm monitor studio解析成功。所以说必须要使用
    发表于 08-28 09:36

    迅为RK3568开发板模型推理测试实战LPRNet 车牌识别

    迅为RK3568开发板模型推理测试实战LPRNet 车牌识别
    的头像 发表于 08-25 14:55 1068次阅读
    迅为RK3568<b class='flag-5'>开发板</b>模型推理<b class='flag-5'>测试</b>实战LPRNet 车牌识别

    【HZ-RK3568开发板免费体验】02 开发板外设测试

    =fsync 写速度约89MB/s 重启开发板后再次读取文件 dd if=/test of=/dev/null bs=1M 读速度约155MB/s 4 CAN收发测试 ifconfig
    发表于 06-30 13:19

    HPM6P41 BuckBoost 开发板之(一)硬件设计篇

    本章基于HPM6P00的丰富外设与高性能特性,剖析了四开关BuckBoost开发板的硬件设计思路与实现细节。从宽范围输入/输出电压的功率拓扑选型,到电源管理、驱动电路、采样电路及各类接口的原理图
    的头像 发表于 06-30 11:14 3209次阅读
    <b class='flag-5'>HPM</b>6P41 BuckBoost <b class='flag-5'>开发板</b>之(一)硬件设计篇

    基于米尔全志T536开发板的多协议物联网关的方案测试

    本文将介绍基于米尔电子MYD-LT536开发板(米尔基于全志T536开发板)的多协议物联网关方案的开发测试。摘自优秀创作者-ALSET米尔基于全志T536
    的头像 发表于 06-19 08:03 1473次阅读
    基于米尔全志T536<b class='flag-5'>开发板</b>的多协议物联网关的方案<b class='flag-5'>测试</b>

    迅为RK3562开发板Buildroot系统功能测试

    迅为RK3562开发板Buildroot系统功能测试
    的头像 发表于 06-13 13:46 1721次阅读
    迅为RK3562<b class='flag-5'>开发板</b>Buildroot系统功能<b class='flag-5'>测试</b>

    基于RV1126开发板的按键测试方法与例程

    RV1126开发板的按键测试方法与例程详细描述
    的头像 发表于 04-15 17:03 829次阅读
    基于RV1126<b class='flag-5'>开发板</b>的按键<b class='flag-5'>测试</b>方法与例程

    Linux开发板CAN总线测试方法,触觉智能RK3568开发板演示

    本文介绍Linux开发板CAN总线测试方法,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0G
    的头像 发表于 04-11 19:14 914次阅读
    Linux<b class='flag-5'>开发板</b><b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>测试</b>方法,触觉智能RK3568<b class='flag-5'>开发板</b>演示

    重磅更新 | 先楫半导体HPM_SDK v1.9.0 发布

    版本更新概况[New]增加HPM6P00系列MCU以及hpm6p00evk支持[New]增加了开发板已知问题说明[Update]将全系列开发板VCore电压调节至1.275V,
    的头像 发表于 04-02 08:31 820次阅读
    重磅更新 | 先楫半导体<b class='flag-5'>HPM</b>_SDK v1.9.0 发布

    STM32/GD32开发板基本串口RS232\\RS485通信及CAN接口 usbhid升级 U盘升级 sd卡升级升级学习方案开发板

    方案开发板。该开发板提供上位机升级软件,购买者可使用该上位机配合我们的升级例程学习给MCU在线更新升级,升级测试上位机有,串口上位机、CAN上位机、USB-HID上位机,tcp升级
    发表于 02-27 14:56

    分享 |迅为基于RK3588开发板部署测试DeepSeek模型

    分享 |迅为基于RK3588开发板部署测试DeepSeek模型
    的头像 发表于 02-18 14:26 2070次阅读
    分享 |迅为基于RK3588<b class='flag-5'>开发板</b>部署<b class='flag-5'>测试</b>DeepSeek模型

    dsPIC33C Touch-CAN-LIN Curiosity开发板用户指南

    电子发烧友网站提供《dsPIC33C Touch-CAN-LIN Curiosity开发板用户指南.pdf》资料免费下载
    发表于 01-22 16:18 1次下载
    dsPIC33C Touch-<b class='flag-5'>CAN</b>-LIN Curiosity<b class='flag-5'>开发板</b>用户指南

    自己做的hpm5321和6750板子怎么都没有1.1的输出呢?

    新手硬件开发求分析 。 不知道是layout的关系还是什么原因呢,主要IC内部dcdc部分跟其他引脚配置没关系吧,对比了官方开发板和野火的开发版没什么差,难道电容规格会影响吗? 5321原理图,3.3上电正常,无1.1v输出
    发表于 12-14 11:48