草庐IT

MAX3051的can芯片的学习

FPGAI 2023-04-10 原文

本篇文章将总结MAX3051芯片的特征、及其外围电路等,小白总结,如有错误,欢迎讨论。

一、引脚的详细介绍

1.TXD:传输数据的输入。TXD是来自CAN控制器的CMOS/ ttl兼容输入。TXD有一个内部75 kΩ引体向上电阻。

2.GND:地。

3.VCC:电源电压。用0.1μF电容旁路VCC到GND。

4.RXD:接收数据输出。RXD是CMOS/ ttl兼容的输出。

5.SHDN:关闭输入,CMOS / TTL-Compatible。驱动SHDN高置MAX3051停机。SHDN内部有一个到GND的75kΩ下拉电阻。(电流太小,相当于停机)

6.CANL:CAN总线线路低速

7.CANH:CAN总线线路高速(不同的速度具有不同的应用)

8.RS:方式选择输入。驱动RS低或连接到GND高速运行。在RS和GND之间连接一个电阻来控制输出斜率。高驱动RS进入待机模式。(什么是输出斜率呢?即为IO端口输出上升和下降沿的斜率控制,输出的时候,上升沿有可能不是方波,是有一定的斜率的)

二、特征及其参数

1.封装:SO/SOT23

2.参数及其额定值:

绝对最大参数:

(1)VCC to GND:-0.3V to +6V

(2)TXD, RS, SHDN to GND:-0.3V to +6V

(3)RXD to GND:-0.3V to +6V

(4)CANH, CANL to GND:-7.5V to +12.5V

(5)工作温度范围:-40°C to +85°C

(6)储存温度范围:-65°C to +150°C

(7)焊接温度:+260°C

三、应用说明

细节说明:

(1)这个canL与canH是差分信号,要使用差分走线,主要用于+3.3V单电源应用。

(2)MAX3051具有四种不同的工作模式:高速、斜坡控制、待机和关机模式。

高速模式:允许高达1Mbps的数据速率。
斜坡控制模式:可用于编程转换速率的发射机的数据率高达500kbps。这减少了电磁干扰的影响,从而允许使用非屏蔽的扭曲或平行电缆。

待机模式:关闭发射机,将接收机拉高,将MAX3051置于小电流模式。

关机模式:发射机和接收机处于关机状态。

(3)发射器将CAN控制器的单端输入(TXD)转换为母线的差分输出。接收器从总线读取差分输入
(CANH, CANL),并将这些数据作为单端输出(RXD)传输给CAN控制器。

(4)将一个电阻从RS连接到地面,选择斜坡控制模式。在斜坡控制模式下,CANH和CANL的转换速率由连接到RS引脚的电阻控制。最大传输速度由RRS控制,范围从40kbps到500kbps。
控制上升和下降斜率可以降低电磁干扰,并允许使用非屏蔽的双绞线或平行的导线作为总线。选择电阻值的公式为:RRS (kΩ) ≈ 12000 / 最高速度(最高速度以kbps为单位)

(5)CAN总线的每个元件应该用一根单线连接,总线的两端应该用120Ω电阻端接不应该使用星型配置。保持直接的点对点布线方案是很重要的。(那么点对点的连接方式是什么样的呢?我的理解就是两个设备直连,而不经过其他设备与此相对应的还有一个端对端连接,端到端传输指的是在数据传输前,经过各种各样的交换设备,在两端设备问建立一条链路,就像它们是直接相连的一样,链路建立后,发送端就可以发送数据,直至数据发送完毕,接收端确认接收成功)

(6)旁路VCC到GND0.1μF陶瓷电容器安装在靠近IC的地方,引线长度短,道宽。

典型应用电路如下:

 此电路PCB走线时要特别注意差分走线和旁路电容!!!

有关MAX3051的can芯片的学习的更多相关文章

  1. ruby-on-rails - 新 Rails 项目 : 'bundle install' can't install rails in gemfile - 2

    我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="

  2. ruby CSV : How can I read a tab-delimited file? - 2

    CSV.open(name,"r").eachdo|row|putsrowend我得到以下错误:CSV::MalformedCSVErrorUnquotedfieldsdonotallow\ror\n文件名是一个.txt制表符分隔文件。我是专门做的。我有一个.csv文件,我转到excel,并将文件保存为.txt制表符分隔的文件。所以它是制表符分隔的。CSV.open不应该能够读取制表符分隔的文件吗? 最佳答案 尝试像这样指定字段分隔符:CSV.open("name","r",{:col_sep=>"\t"}).eachdo|row|

  3. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  4. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  5. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  6. ruby-on-rails - 事件记录 : Select max of limit - 2

    我正在尝试将以下SQL查询转换为ActiveRecord,它正在融化我的大脑。deletefromtablewhereid有什么想法吗?我想做的是限制表中的行数。所以,我想删除少于最近10个条目的所有内容。编辑:通过结合以下几个答案找到了解决方案。Temperature.where('id这给我留下了最新的10个条目。 最佳答案 从您的SQL来看,您似乎想要从表中删除前10条记录。我相信到目前为止的大多数答案都会如此。这里有两个额外的选择:基于MurifoX的版本:Table.where(:id=>Table.order(:id).

  7. ruby - 我正在学习编程并选择了 Ruby。我应该升级到 Ruby 1.9 吗? - 2

    我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or

  8. ruby - 混帐 & ruby : How can I unset the GIT_DIR variable from inside a ruby script? - 2

    我编写了一个非常简单的“部署”脚本,作为我的裸git存储库中的post-updateHook运行。变量如下livedomain=~/mydomain.comstagingdomain=~/stage.mydomain.comgitrepolocation=~/git.mydomain.com/thisrepo.git(bare)core=~/git.mydomain.com/thisrepo.gitcore==addedremoteintoeachlive&stagegitslive和stage都初始化了gitrepos(非裸),我已经将我的裸仓库作为远程添加到它们中的每一个(名为co

  9. ruby - 我如何学习 ruby​​ 的正则表达式? - 2

    如何学习ruby​​的正则表达式?(对于假人) 最佳答案 http://www.rubular.com/在Ruby中使用正则表达式时是一个很棒的工具,因为它可以立即将结果可视化。 关于ruby-我如何学习ruby​​的正则表达式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1881231/

  10. ruby-on-rails - 在 Ruby 或 Rails 中,hash.merge({ :order => 'asc' }) can return a new hash with a new key. 什么可以返回带有已删除键的新散列? - 2

    在Ruby(或Rails)中,我们可以做到new_params=params.merge({:order=>'asc'})现在new_params是一个带有添加键:order的散列。但是是否有一行可以返回带有已删除key的散列?线路new_params=params.delete(:order)不会工作,因为delete方法返回值,仅此而已。我们必须分3步完成吗?tmp_params=paramstmp_params.delete(:order)returntmp_params有没有更好的方法?因为我想做一个new_params=(params[:order].blank?||para

随机推荐