嵌入式开发--CAN总线与高速光耦6N137

2023-05-16

嵌入式开发–CAN总线与高速光耦6N137

6N137简介

CAN总线应用时,有时候需要加光耦隔离电路,以免在雷击或遇到高压干扰时,保护设备安全。常用的有光耦隔离和专用芯片隔离。
本文介绍使用高速光耦6N137的光耦隔离方案。
6N137是10MBPS的高速光耦,而CAN总线的最高速度仅为1MBPS,用在此处绰绰有余。
6N137等效电路如下:
在这里插入图片描述
1,4脚空闲,
2,3脚是输入侧,接发光二极管
5脚接地
6脚输出
7脚为使能端
8脚接电源

电路

电路如下图,

在这里插入图片描述

在这里插入图片描述

简要说明一下,U3是1W的DCDC隔离模块,用于给隔离电路供电。
D8是电平保护。
由于U7是5V供电,R20和R21是一个输出分压电路,使各CAN_RX上的高电平从5V降到3.3V,其实现在很多单片机IO的口都是5V容限的,也就是说可以直接接5V输入,所以可以直连到6脚。在这里为了保险还是做了一个分压。

接下来就是光耦配套电阻的参数了。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

U6输入侧

输入侧的二极管在10mA电流时压降为1.4V,看第2个图,1mA时压降为1.3V。也就是说,电压降大致按1.4V计算是没问题的。
第3个图,IF是7.5mA,此时满足10MBPS也是没有问题的。而现在的应用是1MBPS,压力就更小了。所以IF可以更小。
实际电路中,IF压降大约1.35V,电流大约为5.9mA。

U6输出侧

在这里插入图片描述

输出低电平时,全工作范围内,工作点选择大致依照红线表示的位置,电压降大致在0.3V左右,按0.3V计算。负载1K时,电流为4.7mA,图上没有画出此时的工作曲线,其实应该比0.3V更小。

U7输入侧

U7输入是5V,而不是U6的3.3V,因此计算公式为(5V - 1.4V)/ 6mA = 600欧。所以正常应该是用560欧的电阻,而我这里510比较常用,所以选用了510欧的电阻。

U7输出侧

上拉负载和U6一样,分压后,CAN_RX端电压值略高于3.3V,感兴趣的朋友可以自行计算到底是多少。

光耦6脚

6N137的6脚,虽然图上画的是一个非门输出,但实际上,它却是OC输出,需要自己接上拉电阻作为OC的负载。
千万不要以为输出是一个非门,可以直接输出,而不需要负载。
下图是另一款光耦的等效电路图,可见其输出是一个集电极,必须接上拉电阻才能工作的
在这里插入图片描述

电路实测波形

示波器显示波形如下,输入和输出波形都很好。
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

嵌入式开发--CAN总线与高速光耦6N137 的相关文章

  • C#获取网络图片

    简单获取图片 string url 61 zhi txt Text 图片地址 string dizhi 61 lujing Text 图片下载后保存路径及图片名称要写在一块 WebClient wc 61 new WebClient wc
  • 在vscode中使用Git

    用了git最方便的就是比如在公司写了很多代码后回到家打开vscode只需要点击一下pull就能全部同步过来 是不是很方便 毕竟之前我都是拿u盘拷贝回家或者存到云盘再下载下来 我这里用的是国内的码云托管的代码 xff0c xff0c gith
  • vscode同步设置&扩展插件

    首先安装同步插件 xff1a Settings Sync 第二步 xff1a 进入你的github如图 xff1a 打开设置选项 xff1a 新建一个token xff1a 如图 xff1a 记住这个token值 转到vscode 按shi
  • mysql 常用语句使用

    1 查询语句 SELECT FROM table 2 更改语句 UPDATE table SET name 61 39 123456 39 WHERE id 61 100 3 插入语句 INSERT INTO table VALUES 1
  • STM32学习第七天--串口调试助手没弄懂

    啊啊 啊 今天真的好沮丧 调代码足足调了一晚上 xff0c 不知道什么原因工程就是错 xff0c 最后好不容易啊 xff0c 在主函数加了个 include 34 stm32f10x lib h 34 就好使了 xff0c 真不知道为什么
  • swoole 相关

    安装虚拟机 VMware Workstation Pro 安装CentOS CentOS 7 x86 64 Minimal 1708 iso 安装FinalShell 教程地址 安装lnmp 教程地址 服务状态管理命令 1 安装lnmp 2
  • ffmpeg编程:读取摄像头信息,保存为裸yuv420p、yuyv422视频流

    1 源码下载 xff1a https download csdn net download dijkstar 10898462 2 编程环境使用Windows下的QT5 11 minGW32 xff0c 源码中已经放好了fmpeg的bin
  • C中__FILE__ __LINE__的用法

    include lt stdio h gt void main void printf 34 File s Successfully reached line d n 34 FILE LINE Other statements here l
  • ubuntu中添加和删除源

    添加PPA源的命令为 xff1a br sudo add apt repository ppa user ppa name 添加好更新一下 xff1a sudo apt get update 删除命令格式则为 xff1a br sudo a
  • jetson nano 部署yoloV3,yoloV4,yoloV3-tiny,yoloV4-tiny

    系统 ubuntu nbsp nbsp 自带cuda10 0 nbsp 1 下载与安装darknet git clone https github com AlexeyAB darknet cd darknet 2 以下步骤我都在直接进入c
  • 对比first-fit/best-fit/worst-fit/slab以及buddy这几种算法的特点

    以下均为自己对这些算法的理解 xff1a fitst fit算法 First fit算法 xff1a 连续物理内存分配算法的一种 xff0c 将空闲内存块按照地址从小到大的方式连起来 xff0c 具体实现时使用了双向链表的方式 当分配内存时
  • MIT6_0001F16_Pset2

    MIT6 0001F16 Pset2 完成Hangman Game的编写 xff0c 就是一个猜词游戏 span class token comment Problem Set 2 hangman py span span class to
  • 利用python进行数据分析 pdf

    利用python进行数据分析 链接 xff1a https pan baidu com s 1mFg7kB0WG6edKnhumMbbJg 提取码 xff1a 6kos 如果带来帮助 xff0c 可点赞或关注博主 xff01
  • 数据库系统概念第六版 第六章练习题6.11

    6 11 考虑下图所示的关系数据库 xff0c 主码加了下划线 给出关系代数表达式来表达下列的每一个查询 xff1a a 找出First Bank Corporation的所有员工姓名 b 找出First Bank Corporation所
  • 数据库实验4 SQL语言-SELECT查询操作

    数据库实验4 SQL语言 SELECT查询操作 1 首先按照第三章的jxgl数据库的模板创建jxgl数据库并插入数据 xff1a 创建数据库jxgl create database jxgl 创建相应的表 xff1a 创建student表
  • Docker安装RabbitMQ,RabbitMQ Management使用

    上一篇文章介绍了RabbitMQ的一些基本概念 xff0c 如果没看过没了解 xff0c 推荐先去了解一下 xff1a 下面我们一起来安装一下RabbitMQ并且访问一下它的Management吧 我这边是使用了Docker容器来安装和启动
  • 数据库系统概念第六版 第七章练习题 15 22

    数据库第七章理论习题 7 15 为医院构造一个包含一组病人和一组医生的E R图 为每个病人关联一组不同的检查和化验记录 说明 xff1a 医生和病人间存在联系 xff0c 同时病人有特有的检查和化验记录 xff0c 病人有病床 xff0c
  • 操作系统设计思想--主奴思想

    操作系统设计思想 主奴思想 对于操作系统而言 xff0c 如何稳定可靠运行无疑是最重要的 目前的方案均为将用户进程和其他用户进程 将用户进程和操作系统进行分离 实现操作系统可以管理用户进程 xff0c 但用户进程不能侵入内核 xff0c 同
  • 从零开始学GO ---- 错误处理

    从零开始学GO 错误处理 Go 语言通过内置的错误接口提供了非常简单的错误处理机制 error类型接口 在这个接口类型的声明中只包含了一个方法Error Error方法不接受任何参数 xff0c 但是会返回一个string类型的结果 它的作
  • 从零开始学GO ---- 接口

    从零开始学GO 接口 接口是一个编程规范 xff0c 一组方法签名的集合 Go的接口是非侵入式的设置 xff0c 一个具体类型实现接口不需要在语法上显式地声明 xff0c 只要具体类型的方法集是接口方法集的超集 xff0c 就代表该类型实现

随机推荐

  • Golang通过反射对结构体进行赋值和其他操作

    Golang通过反射对结构体进行赋值和其他操作 通过反射可以方便快捷地访问Golang的结构体字段 xff0c 并进行赋值或其他操作 当两个结构体内容相同但名字不同时 xff0c 如何快捷地进行赋值 xff1f 或者内容有交集 xff0c
  • 如何使用github来下载你需要使用的ros资源

    使用ros系统 xff0c 需要用到许多数据包 xff0c 有些时候你需要使用的ROS数据包并没有Debian包的形式 xff0c 这时你需要从数据源安装它 代码开发人员通常使用的有三种主流的版本控制系统 xff1a SVN xff0c G
  • VLC RTSP视频播放终极解决方案

    VLC播放RTSP视频流遇到的问题 摄像头是RTSP协议的 xff0c 需要在Android端实时显示摄像头视频流 xff0c 这里采用了开源的VLC播放器 xff0c 可能会有如下需求 xff1a 一 有截屏的需求 二 有屏幕录制的需求
  • docker push 实现过程

    这一篇文章分析一下docker push的过程 xff1b docker push是将本地的镜像上传到registry service的过程 xff1b 根据前几篇文章 xff0c 可以知道客户端的命令是在api client push g
  • FreeRTOS专题六:支持多优先级

    在 FreeRTOS 中 xff0c 数字优先级越小 xff0c 逻辑优先级也越小 xff0c 这与RT Thread 和 C OS刚好相反 就绪列表 pxReadyTasksLists configMAX PRIORITIES 是一个数组
  • 操作系统中的中断(详细介绍+图片理解)

    中断的概念 中断是指程序执行过程中 xff0c 遇到急需处理的事件时 xff0c 暂时中止CPU上现行程序的运行 xff0c 转去执行相应的事件处理程序 xff0c 待处理完成后再返回原程序被中断处或调度其他程序执行的过程操作系统是 中断驱
  • Android 如何杀死Service

    方法很简单就是用ActivityManager private void killeService List lt RunningAppProcessInfo gt infos TODO 自动生成的方法存根 ActivityManager
  • [自动驾驶]Build a Traffic Sign Recognition Program

    看 准确率98 的深度学习交通标志识别是如何做到的 xff1f 这篇文章的时候 xff0c 发现了udacity的自动驾驶课程 可惜要收费 xff0c 不过课程project在github上有 xff0c 那直接做project就好了 xf
  • 教你快速学习PID控制原理

    教你快速学习PID控制原理 写在前面 在这篇文章中我会通过举例的方式来让大家了解什么是PID控制 xff0c 这篇博客是让大家更加容易的理解PID控制 xff0c 如果大家想要跟深入的了解的话最好是自己上手去做一个关于PID控制的实物 xf
  • opencv HSV找颜色,找轮廓用最小旋转矩形框出

    include lt opencv2 opencv hpp gt include lt iostream gt include lt string gt using namespace cv using namespace std 输入图像
  • FreeRTOS学习笔记——FreeRTOS 任务基础知识

    RTOS 系统的核心就是任务管理 xff0c FreeRTOS 也不例外 xff0c 而且大多数学习RTOS 系统的工程师或者学生主要就是为了使用RTOS 的多任务处理功能 xff0c 初步上手RTOS 系统首先必须掌握的也是任务的创建 删
  • linux c char * char[]相互转换

    1 char 转char 可以直接赋值 char pp 20 61 34 helloworld 34 char p 61 pp 2 char 转char 主要有两种方法可以将char 转换为char 类型 xff0c 分别是 xff1a s
  • GDB改变程序的执行

    1 修改变量值 xff1a set var var name 61 num 最佳 print var name 61 num 2 跳转执行 gdb提供了乱序执行的功能 jump linespec linespec可以是文件的行号 xff0c
  • Linux缓冲区

    所有的磁盘I O都要进过内核的快缓冲区 xff08 内核缓冲区高速缓冲 xff09 xff0c 既然read和write都要被内核缓冲 xff0c 那么 不带缓冲的IO 指的是在用户的进程中对这两个函数不会进行缓冲 xff0c 每次read
  • git忽略本地的已经push过的提交

    先使用如下命令 xff1a span class hljs comment git span span class hljs comment rm span span class hljs literal span span class h
  • 计算机启动过程

    BIOS BIOS做了底层的一些初始化的工作 BIOS的初始化过程 xff1a 在计算机电源刚打开的时候 xff0c 首先会 xff1a 1 硬件自检 2 检查系统中的内存和显卡等关键部件的存在和工作状态 3 查找并执行显卡等接口卡BIOS
  • 系统调用

    系统调用 xff1a 操作系统对上提供服务的接口 通过软中断触发中断 INT和IRET指令用于系统调用 xff0c 系统调用时 xff0c 堆栈切换和特权级的切换 开销 1 引导机制 2 建立内核堆栈 3 验证参数 4 内核态映射到用户态的
  • ERVER CONSOLE DEBUG: onBackendConnect: gdb-server session closed

    Waiting for gdb server to start 2022 08 24T07 08 56 126Z SERVER CONSOLE DEBUG onBackendConnect gdb server session connec
  • Linux离线安装telnet命令

    参考 xff1a https www hangge com blog cache detail 2935 html 一 离线包下载 xff08 1 xff09 首先下载 telnet client 或 telnet 客户端软件包 xff0c
  • 嵌入式开发--CAN总线与高速光耦6N137

    嵌入式开发 CAN总线与高速光耦6N137 6N137简介 CAN总线应用时 xff0c 有时候需要加光耦隔离电路 xff0c 以免在雷击或遇到高压干扰时 xff0c 保护设备安全 常用的有光耦隔离和专用芯片隔离 本文介绍使用高速光耦6N1