精华内容
下载资源
问答
  • CH372的中文手册,很完整,适合学习查询使用,可以用来设计CANUSB电路
  • USBCAN设计原理图

    2012-06-30 16:05:46
    STM32设计的USBCAN硬件原理图
  • 基于STM32的CANUSB模块的PCB设计

    千次阅读 2020-11-25 17:26:57
    第一个文件夹用来存放设计PCB时用到芯片的数据手册。 第二个文件夹用来存放设计PCB时用到的参考设计,包括所用芯片最小系统电路图,各种规范手册,别人设计的PCB等。 第三个文件夹用来存放原理图库和封装库。 第四个...

    1. 项目的文件结构

    设计PCB项目时,文件结构主要分为四个模块

    • 第一个文件夹用来存放设计PCB时用到芯片的数据手册。
    • 第二个文件夹用来存放设计PCB时用到的参考设计,包括所用芯片最小系统电路图,各种规范手册,别人设计的PCB等。
    • 第三个文件夹用来存放原理图库和封装库。
    • 第四个文件夹用来存放AD的project文件,最好在每做一些修改时,就保存为一个版本。
      在这里插入图片描述

    2. 原理图设计

    首先进行原理图设计。
    在此之前提一下,芯片的原理图库可以从立创商城下载,使用立创EDA的导出功能就能完成原理图库的下载。

    2.1 最小系统

    如下图所示,此模块的MCU选用了STM32F103RCT6,即64引脚的MCU。倒不是说非要用64引脚的才能实现,48引脚的也可以,而且利用率更高,只是因为手头刚好有STM32F103RCT6,而且这个模块只是一个用来做练习的,所以就使用此款芯片作为主控芯片。
    在这里插入图片描述
    在最小系统中,采用3.3V供电,8M的外部晶振电路,并且对BOOT0采用下拉电阻,NRST采用了上拉电阻。
    为了减小模块尺寸,又考虑到功耗方面,电阻与电容的封装均采用0603。

    2.2 USB转串口

    在这里插入图片描述
    一般见到USB转串口电路,使用的芯片都是CH340G,但由于本模块只是一个实验性模块,不需要使用到很多的功能,因此在查阅资料后,选用了尺寸更小但又能刚好满足需求的CH330N模块。
    在CH330N的TXD以及RXD引脚都各自外接了一个LED灯,这样,在本模块开始通讯的时候,指示灯就会亮起来:上位机发送数据时,TXD1指示灯亮;上位机接收数据时,RXD1指示灯亮。
    一开始设计LED灯的驱动电路时,考虑到,若直接接电阻然后驱动LED灯,将会损耗很多电流,这样可能会影响到数据的收发。因此,还有一个思路是,采用MOS管来驱动LED灯,这种方案损耗的电流很小,不会影响数据的收发,但缺点是占用的面积更大,电路更复杂。最后在网上查阅各种参考电路后,发现存在直接驱动LED灯的电路,因此最终采用了直接驱动LED灯的方案。

    2.3 CAN通信

    在这里插入图片描述
    CAN收发器采用TJA1050。
    CAN的外部接口采用5引脚的接插件,这样的设计是为了匹配安装CAN转USB模块的外壳。
    一般来说,CAN通信部分要加上隔离电路,例如光耦隔离或电阻隔离或磁耦隔离等。但还是由于本模块只是一个实验用模块,就没有设计隔离电路。
    SW1这个开关,是为了让CAN总线的一端能够根据情况,可以选择挂载或者不挂载120Ω的电阻。

    2.4 JLINK仿真器

    在这里插入图片描述
    为了进一步减小尺寸,选用了J-Link仿真器的SWD模式。根据博客STM32中使用J-Link仿真器选择JTAG模式和SWD模式的区别就可设计出此电路。

    2.5 电源

    在这里插入图片描述

    本模块采用外部USB供电,由于USB供电电压为5V,因此需要采用AMS1117-3.3将5V转为3.3V。
    外接了一个保险丝F1,确保电路的安全。

    3. PCB设计

    注意,芯片的封装库也可以从立创商城下载,使用立创EDA的导出功能就能完成封装库的下载。

    3.1 布局

    原理图设计好后,进行编译,编译通过后,就可以将其导入到pcb文件了。但在导入元件之前,我们最好先进行一下pcb板子的尺寸设计
    根据CAN转USB模块的外壳设计出的PCB尺寸图如下图所示。
    在这里插入图片描述
    根据尺寸图在keepout layer中绘制出PCB的外边框。
    在这里插入图片描述
    然后选中所有的框线,点击define from selected objects。
    在这里插入图片描述
    完成pcb板子的形状尺寸设计。接下来进行布局。
    在这里插入图片描述
    设计好后,就可以将元件导入pcb了。
    在这里插入图片描述

    布局时要注意,每一个小模块内的所有元件,在布局时最好放在一起。用已经设计好的pcb图中的电源部分举个例子,电源部分的布局如下图所示。
    在这里插入图片描述

    3.2 布线

    本模块采用双层板设计。
    在打过孔时,要注意:信号线采用内径为0.2mm,外径为0.45mm的过孔;电源线采用内径为0.5mm,外径为1mm的过孔。并且过孔要离焊盘远一些。
    走线时,要注意:信号线采用0.2mm的线;电源线根据情况选择,至少要0.5mm的线。
    CANL和CANH要采用0.5mm的线。

    3.3 敷铜

    本模块正反面敷铜。
    敷铜时注意与GND网络连接。例如,top层敷铜时的设置如下图所示。
    在这里插入图片描述
    正反面敷铜后的pcb板子如下图所示。
    在这里插入图片描述

    展开全文
  • 基于ARM_Cortex3的低功耗,用一个芯片完成 USB_CAN透明传输转换。
  • 如何区别国产CAN芯片和进口CAN芯片的性能(上) 现在国产芯片百花齐放,但是性能参数如何,怎么来测出它们的性能优劣呢?下面的小实验来解答,现在以国产广州金升阳...含有CAN芯片的电子产品,现在用USBCAN卡USBCA...

    如何区别国产CAN芯片和进口CAN芯片的性能(上)

    现在国产芯片百花齐放,但是性能参数如何,怎么来测出它们的性能优劣呢?下面的小实验来解答, 现在以国产 广州金升阳 SCM3421ASA芯片和NXP的 TJA1051 两款作性 能测试及比对。
    工具:

    1. 国产广州金升阳SCM3421ASA芯片 3PCS
    2. NXP的TJA1051 3PCS
    3. 含有CAN芯片的电子产品,现在用USBCAN卡 USBCAN-01121来做实验
    4. 一台具有超长数据与波形记录分析仪(如RoyalScope)
      方法和步骤:
      A : 把进口芯片CAN收发器(NXP的TJA1051 )取下,位置:红色框标识出的芯片;焊上国产的芯片(广州金升阳SCM3421ASA),简称为:B卡红色框标识出的芯片
      B:另一只USBCAN卡的CAN收发器使用TJA1050T,简称为A卡
      这个用的是NXPTJA1050T
      C:使用来可RoyalScope进行连续无间隔信号采样,并全部存储为波形,最高可存储5200万帧波形。接线如下
      在这里插入图片描述
      来可RoyalScope
      D:开始测试
      (a). 使用国产CAN收发芯片的B卡发送报文,B卡参数设置:波特率 1Mbps,帧ID选随机,帧数据随机。
      测如结果如下图:B卡发送50572064个CAN帧,A卡正确接收50572064个CAN帧。使用国产CAN芯片的测试图
    展开全文
  • CAN接口采用金升阳电源模块和信号隔离芯片实现2500V DC电气隔离,USB接口ESD静电防护;具有优秀的EMC性能,可靠性测试项目:ESD接触放电8KV、浪涌±1KV、脉冲群±3KV,,通过CE-EMC和Rohs认证。 配套测试软件LCANTest...

    USB接口CAN卡、USB转CAN的产品介绍
    在这里插入图片描述
    LCUSB -13xB/M系列高性能USB接口CAN卡,坚固金属外壳,具有更佳EMC性能,插到用户设备USB接口上,快速扩展出1~2路CAN通道,可作为组件集成到用户设备中,长期稳定可靠的工作。CAN接口采用金升阳电源模块和信号隔离芯片实现2500V DC电气隔离,USB接口ESD静电防护;具有优秀的EMC性能,可靠性测试项目:ESD接触放电8KV、浪涌±1KV、脉冲群±3KV,,通过CE-EMC和Rohs认证。

    配套测试软件LCANTest使用,接收、发送、分析、记录、回放CAN报文;配套丰富驱动; 提供Windows、Linux/Ubuntu、QNX、VxWorks、SylixOS、INTime等系统开发包,开发包中包含库函数、库函数调用说明和丰富例程等资料;提供全程专家指导服务。
    产品特性

    ﹂ 坚固金属外壳,美观大方

    ﹂ 1~2路CAN通道

    ﹂ CAN波特率支持5Kbps~1Mbps

    ﹂ 符合CAN 2.0A/2.0B规范

    ﹂ 符合ISO/DIS 11898-1/2/3标准

    ﹂ 单通道最高帧流量高达14000帧/s

    ﹂ 提供丰富系统开发包

    ﹂ 提供支持更多开发环境的丰富例程

    ﹂ CAN接口电气隔离高达2500VDC

    ﹂ DB9或接线端子二种接口方式供选

    ﹂ 工作温度:-40℃至+85℃

    ﹂ 接口防浪涌、防脉冲群、ESD保护设计

    ﹂ 通过CE-EMC、Rohs认证

    展开全文
  • stm32制作CAN适配器1--USBCAN

    千次阅读 2021-04-30 15:00:47
    STMF072系列可以同时使用CANUSB,利用这个功能可以制作一个简单的USBCAN。 1、管脚配置 2、时钟配置 3、CAN配置,500Kbps 4、USB配置 5、下面对USB代码部份进行更改: usbd_custom_hid_if.c文件中...

    STM32F072系列可以同时使用CAN与USB,利用这个功能可以制作一个简单的USB转CAN。

    1、管脚配置

    2、时钟配置

    3、CAN配置,500Kbps

    4、USB配置,这里用的是HID模式

    5、下面对USB代码部份进行更改:

    usbd_custom_hid_if.c文件中更改HID报文描述,发送与接收长度设置为20

    __ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS[USBD_CUSTOM_HID_REPORT_DESC_SIZE] __ALIGN_END =
    {
    	0x05,0x8C,
    	0x09,0x01,
    	0xA1,0x01,
    	//the input report
    	0x09,0x03,
    	0x15,0x00,
    	0x26,0x00,0xFF,
    	0x75,0x08,
    	0x95,CUSTOM_HID_EPIN_SIZE,
    	0x81,0x02,
    	//the output report
    	0x09,0x04,
    	0x15,0x00,
    	0x26,0x00,0xFF,
    	0x75,0x08,
    	0x95,CUSTOM_HID_EPOUT_SIZE,
    	0x91,0x02,
    	
    	0xC0,
    };

    usbd_conf.h中更改

    #define USBD_CUSTOMHID_OUTREPORT_BUF_SIZE     20
    /*---------- -----------*/
    #define USBD_CUSTOM_HID_REPORT_DESC_SIZE     33

    usbd_desc.c中更改VID与PID

    #define USBD_VID     0x1234
    #define USBD_LANGID_STRING     1033
    #define USBD_MANUFACTURER_STRING     "STMicroelectronics"
    #define USBD_PID_FS     0x5678
    #define USBD_PRODUCT_STRING_FS     "STM32 Custom Human interface"
    #define USBD_CONFIGURATION_STRING_FS     "Custom HID Config"
    #define USBD_INTERFACE_STRING_FS     "Custom HID Interface"

    usbd_customhid.h更改端点大小

    #define CUSTOM_HID_EPIN_ADDR                 0x81U
    #define CUSTOM_HID_EPIN_SIZE                 20U
    
    #define CUSTOM_HID_EPOUT_ADDR                0x01U
    #define CUSTOM_HID_EPOUT_SIZE                20U
    
    #define USB_CUSTOM_HID_CONFIG_DESC_SIZ       41U
    #define USB_CUSTOM_HID_DESC_SIZ              9U
    
    #ifndef CUSTOM_HID_HS_BINTERVAL
    #define CUSTOM_HID_HS_BINTERVAL            0x05U
    #endif /* CUSTOM_HID_HS_BINTERVAL */
    
    #ifndef CUSTOM_HID_FS_BINTERVAL
    #define CUSTOM_HID_FS_BINTERVAL            0x05U
    #endif /* CUSTOM_HID_FS_BINTERVAL */
    
    #ifndef USBD_CUSTOMHID_OUTREPORT_BUF_SIZE
    #define USBD_CUSTOMHID_OUTREPORT_BUF_SIZE  0x40U
    #endif /* USBD_CUSTOMHID_OUTREPORT_BUF_SIZE */
    #ifndef USBD_CUSTOM_HID_REPORT_DESC_SIZE
    #define USBD_CUSTOM_HID_REPORT_DESC_SIZE   163U
    #endif /* USBD_CUSTOM_HID_REPORT_DESC_SIZE */

    6、在main函数中启动CAN

    CAN_RxHeaderTypeDef RxHeader = {0};
      CAN_FilterTypeDef filter;
    	uint8_t Rxdata[8] = {0};
    
    	uint8_t data[64] = {0};
    
    filter.FilterMode = CAN_FILTERMODE_IDMASK;
      filter.FilterScale = CAN_FILTERSCALE_32BIT;
      filter.FilterFIFOAssignment = CAN_FILTER_FIFO0;
      filter.FilterActivation = CAN_FILTER_ENABLE;
      filter.FilterBank = 0;
      filter.SlaveStartFilterBank = 0;
      
      if( HAL_CAN_ConfigFilter( &hcan, &filter ) != HAL_OK )
      {
       	Error_Handler();
      }
    
    	if (HAL_CAN_Start(&hcan) != HAL_OK)
        {
          Error_Handler();
        }
    

    7、在while中把接收到的CAN数据从USB发送出去

    if(HAL_CAN_GetRxFifoFillLevel(&hcan, CAN_RX_FIFO0) >= 1)
    	{
    		HAL_CAN_GetRxMessage(&hcan, CAN_RX_FIFO0, &RxHeader, &Rxdata[0]);
    
    		HAL_GPIO_TogglePin(RED_GPIO_Port, RED_Pin);
    
    		data[0] = RxHeader.Timestamp;
    		data[1] = RxHeader.Timestamp >> 8;
    		data[2] = RxHeader.Timestamp >> 16;
    		data[3] = RxHeader.Timestamp >> 24;
    
    		data[4] = RxHeader.IDE;
    		data[5] = RxHeader.RTR;
    
    		if(RxHeader.IDE == CAN_ID_STD)
    		{
    			data[6] = RxHeader.StdId;
    			data[7] = RxHeader.StdId >> 8;
    			data[8] = RxHeader.StdId >> 16;
    			data[9] = RxHeader.StdId >> 24;
    		}
    		else
    		{
    			data[6] = RxHeader.ExtId;
    			data[7] = RxHeader.ExtId >> 8;
    			data[8] = RxHeader.ExtId >> 16;
    			data[9] = RxHeader.ExtId >> 24;
    		}
    
    		data[10] = RxHeader.DLC;
    
    		for(i=0;i<8;i++)
    		{
    			data[i + 11] = Rxdata[i];
    		}
    
    		USBD_CUSTOM_HID_SendReport_FS(data, CUSTOM_HID_EPIN_SIZE);
    	}

    8、在usbd_custom_hid_if.c中把USB接收到的数据从CAN发出去

    static int8_t CUSTOM_HID_OutEvent_FS(uint8_t event_idx, uint8_t state)
    {
      /* USER CODE BEGIN 6 */
      CAN_TxHeaderTypeDef msg;
      uint8_t data[8];
      uint8_t i;
       uint32_t txMailbox = 0;
      
      USBD_CUSTOM_HID_HandleTypeDef *hhid = (void*)hUsbDeviceFS.pClassData;
    
      HAL_GPIO_TogglePin(YEL_GPIO_Port, YEL_Pin);	
    
      if(hhid->Report_buf[4] == CAN_ID_STD)
      {
    	msg.IDE = CAN_ID_STD;
    	msg.StdId = hhid->Report_buf[6];
    	msg.StdId += ((uint32_t)hhid->Report_buf[7] << 8);
      }
      else
      {
      	msg.IDE = CAN_ID_EXT;
    	msg.ExtId = hhid->Report_buf[6];
    	msg.ExtId += ((uint32_t)hhid->Report_buf[7] << 8);
    	msg.ExtId += ((uint32_t)hhid->Report_buf[8] << 8);
    	msg.ExtId += ((uint32_t)hhid->Report_buf[9] << 8);
      }
    	msg.RTR = CAN_RTR_DATA;
      msg.DLC = hhid->Report_buf[10];
      for(i=0;i<8;i++)
      {
      	data[i] = hhid->Report_buf[11+i];
      }
    
      HAL_CAN_AddTxMessage(&hcan, &msg, data,  &txMailbox);
    	
    	return 0;
      /* USER CODE END 6 */
    }
    
    /* USER CODE BEGIN 7 */
    /**
      * @brief  Send the report to the Host
      * @param  report: The report to be sent
      * @param  len: The report length
      * @retval USBD_OK if all operations are OK else USBD_FAIL
      */
    
     int8_t USBD_CUSTOM_HID_SendReport_FS(uint8_t *report, uint16_t len)
    {
      return USBD_CUSTOM_HID_SendReport(&hUsbDeviceFS, report, len);
    }

    这里用到的是USB的HID模式,优点就是电脑免驱,插入电脑就可以使用,用HID上位机也可以很方便进行调试。

    到此USB转CAN的基本收发功能已经实现,现有的CAN的波特率是固定500K,后期可通过USB协议更改波特率。

     

    下一步实现兼容使用周立功上位机

    展开全文
  • canusbcan-usb】【usb can转换】

    千次阅读 2015-12-30 13:42:38
    本文关键:canusbcan-usb】【usb can转换】 产品名称: can总线分析仪 产品品牌:GCTech广成牌 通用USBCAN产品~特点~ 一一产品亮点~双通道CAN总线分析仪 USBCAN-II Pro相较于单通道设备,增加了一路...
  • USB转LIN,USBCANUSB转PWM,总线工具

    千次阅读 2019-05-08 18:58:24
    在开发LIN总线接口的产品时,往往是需要USB转LIN适配器来协助产品开发的,比如通过上位机端发送LIN数据,读取LIN数据,监控LIN总线数据,同时也需要使用ldf文件进行协议解析,模拟从机或者模拟主机对从机进行控制。...
  • 绍了一种基于DSP的CAN控制器和USB芯片USB总线和CAN总线的通信模块的设计,提出了一种使用USB接口实现CAN总线网络与计算机连接的方案。
  • 该方案基于 USB 主/ 从控制芯片 CH375A, 在单片机的控制下, 既可以实现 CAN 总线数据采集系统中嵌入 USB 主机, 从而完 成把各节点采集的数据存入 U 盘, 取代了现场数据采集系统必须有一台 PC 机的模式; 也可以通过 ...
  • 烧录芯片经常出现坏片?良品率太低?是芯片太过脆弱么?还是我们的操作不当?也许看了下面,你就能找到问题的真正原因。 我想大家或多或少遇到过这样的问题,手上的芯片不知怎么的就烧不进去程序了,搞了半天...
  • 简介 CSM300(A)系列隔离 SPI / UART 转 CAN 模块是集成微处理器、 CAN 收发器、 DC-DC 隔离电源、 信号隔离于一体的通信模块, 该芯片可以很方便地嵌入到具有 SPI 或 UART 接口的设备中, 在不需改变原有硬件结构的...
  • 利用外设编写驱动程序,同时加上CAN接口芯片就组成了CAN网络的连接通道。PC机软件采用LabView来实现,可视化编程简单容易实现。 说明:由于LabView需要LabView环境才能运行,所以需要安装程序,单一生成的程序不能...
  • usbcancan分析仪的产品特点和功能特点 来可的usbcancan分析仪、usb接口can卡具有一体便携式、小巧、真材实料、工业四级、软件命令开关内置式终端电阻、三种接口方式供选等特点。 1、小巧、一体便携式 市面上usb...
  • USB芯片选型

    万次阅读 2017-04-20 19:59:37
    USB 芯片的使用角度来说,USB 系列芯片可以划分为 USB 接口芯片与内置 USB 功能的微控制器。前者对于跨平台和易用性方面比较有优势,无需了解芯片内部工作机制,按照芯片的手册以及官方例程来操作就可以了,而...
  • 我们在进行复杂系统设计,或者做嵌入式开发,用单片机连接其它各种传感器,都会面临怎样高效通信,设计什么样的总线问题,这里主要梳理了我们常见的USB、串口、I2C、SPI、CAN总线的基本概念,以及在总线设计时我们该...
  • tx2串口与can通信控制c620电机(使用usbcan模块) 出于各种各样的原因,我们没有使用常见的stm32来进行can通信,也没有使用tx2自带的can口,而是采用串口来发送和接收can数据报文。事实证明,这是可行的,但现在...
  • CAN接口采用金升阳电源模块和信号隔离芯片实现2500V DC电气隔离,USB接口ESD静电防护;具有优秀的EMC性能,可靠性测试项目:ESD接触放电8KV、浪涌±1KV、脉冲群±2KV,工业级,通过CE-EMC和FCC认证。 配套测试软件LC...
  • 最近买了一块STM32F103RCT的核心版,引出了PB8,PB9,连TJA1050(网上有卖的,几块钱一个)可以做can通讯收发,can发送搞了一两天才搞出来,遇到了一些坑,记录一下。如果你也出现了STM32CAN通讯发不出报文,可以参考...
  • 电路方案分析(六)USB-CAN

    千次阅读 2021-10-16 16:32:19
    之前在工作的过程中,无意的了解到USBCAN卡,这玩意看起来烂大街的东西竟然还那么贵。 USB-CAN这种工具,国内居然没有一个拿得出手的开源方案。某立功和PCAN动辄2000+的价格也是离谱。淘宝上各种虚拟串口方案、替换...
  • 开源一个USBCAN设备

    2021-11-15 20:12:32
    主控芯片采用的STM32F105RBT6,硬件有USBCAN、TF卡等接口,软件有以下功能: 报文显示 信号值显示(解析dbc显示信号值) 信号曲线显示(解析dbc显示信号曲线,使用开源的zedgraph控件) 信号发送(周期发送,波形...
  • 产品采用高性能低功耗通信芯片,内置高性能微处理器,具有抗干扰性强,通信稳定的特点,可广泛应用于各种场合的CAN-串口通信和工业控制领域。产品本身可将自己的USB口或串口接到计算机后用配置程序进行串口和CAN的...
  • 用在汽车上哦,稳定性没问题的。对于开发板原理图孱弱的可靠性担心的同学,可以拿去参考。已经批量试产5K以上,所以放心使用吧。 有什么不明白的地方可以提...6、还实现了USB'的功能,并且进行限流保护,有需要的拿去吧
  • 引言: 在调试单片机CAN程序的时候,一般需要使用环回模式测试程序是否...下面我们就通过Ginkgo CAN适配器来简单介绍下如何通过该适配器来协助调试单片机CAN程序,单片机选择STM32F103的芯片。 准备: 1、Ginkgo ...
  • 周立功CAN基础-芯片

    2009-08-18 21:53:00
    CAN是一种具有国际标准而且性能价格比又较高的现场总线,它在当今自动控制领域的发展中能发挥重要的作用。本书内容包括:计算机网络技术与现场总线的基本原理、概念和它们之间的密切关系;CAN的2.0规范和几种功能...
  • 我在网上也看了很多的文章,慢慢摸索然后就也做出来了吧。那我就说说如何做的吧。...使用它我们是用的usb口子,还要手机硬件支持otg 或者usb host 。如何看手机支持不支持这个 在包里面有接口 UsbFeatureSuppor...
  • LCUSB -13xB/M系列高性能USB接口...CAN接口采用金升阳电源模块和信号隔离芯片实现2500V DC电气隔离,USB接口ESD静电防护;具有优秀的EMC性能,可靠性测试项目:ESD接触放电8KV、浪涌±1KV、脉冲群±3KV,,通过CE-EM...
  • CAN接口采用金升阳电源模块和信号隔离芯片实现2500V DC电气隔离,USB接口ESD静电防护;具有优秀的EMC性能,可靠性测试项目:ESD接触放电8KV、浪涌±1KV、脉冲群±2KV,工业级,通过CE-EMC和FCC认证。 配套测试软件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,711
精华内容 3,484
关键字:

can芯片usb