你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

游名:Stm32F3+CA-IS3050 隔离CAN设计参考原理图/PCB图/教程/源...  

[复制链接]
mmuuss586 发布时间:2020-3-12 16:30

基于Stm32F3+CA-IS3050 隔离CAN设计参考原理图/PCB图/教程/源码等开源分享

资料下载见附件的,电脑登入
QQ图片20200312162812.png
一、概述
    控制器区域网络(CAN)物理层收发器芯片采用了高速、高隔离耐压、低环路延时的高性价比的隔离式收发器CA-IS3050,此器件采用片上二氧化硅(SiO2) 电容作为隔离层,在 CAN 协议控制器和物理层总线之间创建一个完全隔离的接口,与隔离电源一起使用,可隔绝噪声和干扰并防止损坏敏感电路。
CA-IS3050 可为 CAN 协议控制器和物理层总线分别提供差分接收和差分发射能力,信号传输速率最高可达 1Mbps。该器件具有限流、过压和接地损耗保护(–40 V至 40 V)以及热关断功能, 可防止输出短路,
共模电压范围为–12 V 至 12 V。CA-IS3050 额定温度范围为–40°C 至 125°C, 提供宽体SOIC-16 封装。

引脚配置和引脚功能描述如下图:
1.png

CA-IS3050 datasheet_cn_revision.0(隔离CAN).pdf

下载

1.85 MB, 下载次数: 50

CAN通信例程.zipx.gz

下载

11.37 MB, 下载次数: 173

QBD1044 datasheet 2019-11-4(1).pdf

下载

509.29 KB, 下载次数: 29

基于Stm32F3 CA-IS3050 隔离CAN设计参考原理图PCB图教程源码等开源分享.pdf.pdf

下载

682.4 KB, 下载次数: 41

游名科技产品目录(2020-7-21).pdf

下载

1.05 MB, 下载次数: 3

收藏 3 评论72 发布时间:2020-3-12 16:30

举报

72个回答
mmuuss586 回答时间:2020-3-12 16:34:51
                              
1.png
图2 引脚功能描述

mmuuss586 回答时间:2020-3-12 16:36:02
该芯片具有凉薄的保护功能:
信号隔离:CA-IS3050 信号隔离是通过基于电容隔离方案的数字隔离器实现的, 在逻辑侧通过数字隔离器采用开关键控(On-OffKey, OOK)调制方式将输入信号调制到高频然后通过起隔离耐压作用的片上二氧化硅电容,在总线侧数字隔离器部分电路将接收到的信号恢复然后转换成符合标准的电平输出至 CAN 总线。同理,总线侧的电平被总线侧电路处理后同样通过数字隔离器调制到高频然后传输回逻辑侧,然后在逻辑侧解调恢复输出至 RXD。逻辑侧和总线侧的地完全可以分开,并通过片上二氧化硅电容实现高达 5 kVRMS 的隔离耐压等级,确保了实际使用时微控制器和高压总线之间信号传输的完整性和安全性。
主动态超时功能:CA-IS3050 具有主动态超时功能,防止 TXD 因为软件或者硬件故障一直被下拉到低电平,造成总线持续进入主动态从而被锁死(阻断整个网络通信)。 主动态超时功能通过使用一个计数器,在 TXD 输入信号的负边沿发生期间被触发,当 TXD 的低电平持续时间长于主动态超时时间 tTXD_DTO 时,收发器会被关断,此时总线被释放并进入被动态。在 TXD输入信号的正边沿期间,计数器会被置位。
热关断保护功能:CA-IS3050 集成有热关断保护功能,可在过温情况下对器件内部电路进行保护。如果器件的结温超过热关断温度TJ(shutdown), 驱动器会被关断,从而阻断 TXD 到总线的信号传输路径,典型的热关断温度为 165°C。 当器件结温低于热关断温度后,驱动器会被重新使能。
限流保护:CA-IS3050 集成有限流保护功能,可防止总线侧输出短路至电源或地瞬间过流对器件造成损坏,注意限流保护一旦发生会产生较大的电流,从而带来较大损耗。
mmuuss586 回答时间:2020-3-12 16:36:58
二、硬件设计
    模块原理图如下图:
1.png 2.png
原理图主要分为隔离电源部分和CAN通信隔离部分;隔离电源主要是通过3510微功率隔离式反激式转换器和变压器将VDD1=3V转换为VDD2=5V,然后CAN模块就可以正常通信。接线图如下表:     
  
设备1
  
CAN通信模块1
CAN通信模块2
设备2
CAN_TX
CAN_TX
CANH
CANH
CAN_TX
CAN_RX
CAN_RX
CAN_RX
CANL
CANL
CAN_RX
CAN_TX

通信模块最好共地

mmuuss586 回答时间:2020-3-12 16:38:35
参考PCB图及3D显示:


1.png
2.png
3.jpg
mmuuss586 回答时间:2020-3-12 16:40:54
模块如下图
1.jpg
2.jpg
mmuuss586 回答时间:2020-3-12 16:41:30
补充说明:
有条件的最好对CAN接口加保护,电路参考如下图:
1.png

mmuuss586 回答时间:2020-3-12 16:43:27
要是对成本比较敏感,可以参考如下方案:数字隔离器(或光耦)+CAN芯片(可选择国产的QBD1044:1元多些);
1.png

mmuuss586 回答时间:2020-3-12 16:43:50
三、软件设计
        在Cube MX中将基本的串口配置和CAN通信的基础配置好后生成Keil 5工程并使用Keil 5打开对应工程;
在can.c文件下,最开始添加三个宏定义,由于新版HAL库取消了TXheader的初始化,这里需要自行添加想关初始化;如下:
CAN_TxHeaderTypeDef hCAN1_TxHeader;
CAN_RxHeaderTypeDef hCAN1_RxHeader;
CAN_FilterTypeDef hCAN1_Filter;

void CAN_TxHeader_Init(CAN_TxHeaderTypeDef    * pHeader,
uint32_t          StdId,
                                                                uint32_t          ExtId,
                                                                uint32_t          IDE,
                                    uint32_t          RTR,
                                   uint32_t          DLC)
{
    pHeader->StdId    = StdId;   
    pHeader->ExtId    = ExtId;   
    pHeader->IDE      = IDE;     
    pHeader->RTR      = RTR;     
    pHeader->DLC      = DLC;     
    pHeader->TransmitGlobalTime    =    ENABLE;
}

void MX_CAN_Init(void)
{

  hcan.Instance                                         = CAN;
  hcan.Init.Prescaler                         = 6;
  hcan.Init.Mode                                         = CAN_MODE_NORMAL;
  hcan.Init.SyncJumpWidth                = CAN_SJW_1TQ;
  hcan.Init.TimeSeg1                         = CAN_BS1_9TQ;
  hcan.Init.TimeSeg2                         = CAN_BS2_2TQ;
  hcan.Init.TimeTriggeredMode         = DISABLE;
  hcan.Init.AutoBusOff                         = DISABLE;
  hcan.Init.AutoWakeUp                         = DISABLE;
  hcan.Init.AutoRetransmission         = DISABLE;
  hcan.Init.ReceiveFifoLocked         = DISABLE;
  hcan.Init.TransmitFifoPriority= DISABLE;
  if (HAL_CAN_Init(&hcan) != HAL_OK)
  {
    Error_Handler();
  }
}
mmuuss586 回答时间:2020-3-12 16:45:03
在初始化函数中,这四个参数hcan.Init.Prescaler, hcan.Init.SyncJumpWidth, hcan.Init.TimeSeg1,hcan.Init.TimeSeg2用来配置CAN通信波特率,CA-IS3050支持传输速率最高可达 1Mbps,即我们既可以用通用的500Kbps通信也可以用1Mbps进行通信,计算公式为:
通信波特率=SYSCLK/(Prescaler*(SyncJumpWidth+TimeSeg1+TimeSeg2))

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版