0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MAX1452串行通信

星星科技指导员 来源:ADI 作者:ADI 2023-02-21 11:37 次阅读

MAX1452通过单引脚接口进行异步串行数据通信。本应用笔记详细介绍了所使用的串行通信系统,应结合MAX1452数据资料阅读。

本应用笔记描述了MAX1452中使用的串行通信系统,最好结合MAX1452数据资料阅读。它扩展了数据手册中包含的串行通信信息,并提供了通信示例。

MAX1452数字模式

MAX1452数字输入/输出(DIO)提供单引脚串行通信,具有内部控制功能和存储器。所有命令输入流入一组 16 个寄存器,这些寄存器构成接口寄存器集 (IRS)。控制逻辑提供了其他级别的命令处理,该逻辑从 IRS 获取其输入。双向 16 位锁存器缓冲进出 16 位校准寄存器和内部(8 位宽)EEPROM 位置的数据。图3显示了各种串行命令与MAX1452内部架构之间的关系。

通信协议

DIO串行接口用于MAX1452与主机校准测试系统或计算机之间的异步串行数据通信。MAX1452在主机发送初始化序列时自动检测上位机的波特率。可以检测和使用 4800 到 38,400 之间的波特率。数据格式始终为 1 个起始位、8 个数据位和 1 个停止位。8个数据位首先传输LSB,最后传输MSB。当MAX1处于数字模式时,弱上拉电路可用于在DIO上保持逻辑1452。这是为了防止此引脚上出现意外的 1 到 0 转换,这将被解释为通信起始位。仅当安全锁时才允许通信™字节被禁用(即 CL[7:0] = 00十六进制) 或 解锁 保持高电平。

初始化顺序

MAX1452使用上电后或收到重新初始化命令后发送给MAX1452的第一个命令字节来学习通信波特率。初始化序列是 1 个十六进制的 81 字节传输,如下所示:

pYYBAGP0PH2AOEFgAAAGCeFb8Hk797.gif?imgver=1

起始位(如上以粗体显示)启动波特率同步。8 个数据位 81 十六进制(首先是 LSB)遵循此数据位,然后是停止位,也以上面的粗体显示。MAX1452使用该序列计算1位传输的时间间隔,作为其内部振荡器周期的倍数。然后,得到的振荡器时钟周期数在内部存储为 8 位数字 (BITCLK)。请注意,在发送初始化序列之前,设备的电源应至少稳定 1 毫秒。这为上电复位功能完成和 DIO 由安全锁定字节或解锁配置留出时间。

重新初始化顺序

MAX1452提供重新建立或重新学习波特率。重新初始化序列是 FF 十六进制的 1 字节传输,如下所示:

poYBAGP0PH-AYlWmAAAFFoiBfMM346.gif?imgver=1

当收到串行重新初始化序列时,接收逻辑将自身复位到其上电状态并等待初始化序列。初始化序列必须遵循重新初始化序列才能重新建立波特率。

串行接口命令格式

MAX1452的所有通信命令均遵循起始位、8个命令位(一个命令字节)和一个停止位的格式。命令字节控制接口寄存器集的内容,包括一个 4 位接口寄存器集地址 (IRSA) 半字节和一个 4 位接口寄存器集数据 (IRSD) 半字节。IRS 字节命令的结构如下:

国税局[7:0] = 国税局[3:0] , IRSA[3:0]

所有命令首先传输 LSB。起始位之后的第一个位是 IRSA[0],停止位之前的最后一个位是 IRSD[3],如下所示:

pYYBAGP0PIWAOk4DAAAJg2koxa4330.gif?imgver=1

IRS 的一半寄存器内容用于数据保存和转向信息。将数据写入 IRS 中的两个位置会导致立即操作(命令执行)。这些位置位于地址 9 和 15,分别是内部逻辑和重新初始化命令的命令寄存器。表 9 显示了 IRS 地址解码的完整列表。

命令序列可以作为连续流写入MAX1452,例如起始位、命令字节、停止位、起始位、命令字节、停止位等。MAX1452接收数据时,命令之间没有延迟要求。

命令寄存器到内部逻辑 (CRIL)

写入 CRIL 位置(IRS 地址 9)的数据会导致立即执行与写入的 4 位数据半字节关联的命令。所有EEPROM和校准寄存器读写以及EEPROM ERASE命令都通过CRIL位置进行处理。CRIL还用于使能MAX1452模拟输出,并将输出数据(串行数字输出)放在DIO上。表 10 显示了 CRIL 命令的完整列表。

串行数字输出

通过将读取 IRS (RdIRS) 命令(5 十六进制)写入 CRIL 位置,将 DIO 配置为数字输出。收到此命令后,MAX1452输出一个字节的数据,其内容由IRS[3:0] = 3十六进制位置的IRS指针(IRSP[0:8])值确定。数据以单个字节输出,由起始位和停止位成帧。表 12 列出了为每个 IRSP 地址值返回的数据。

发送RdIRS命令后,所有与DIO的连接必须三态,以允许MAX1452驱动DIO线路。收到RdIRS命令后,MAX1452在一个字节后将DIO驱动为高电平。MAX1452保持DIO高电平1452位,然后通过驱动DIO低电平来置位起始位。然后,起始位后跟数据字节和停止位。在停止位传输后,MAX1452将立即三态DIO,释放线路。MAX<>在释放DIO后一个字节即可接收下一个命令序列。

注意,在MAX1452发送数据字节之前和之后会有时间间隔,此时DIO线路上的所有器件都将处于三态状态。建议在这些时间间隔内对 DIO 线路施加弱上拉,以防止不必要的转换。在DIO和模拟输出(OUT)未连接的应用中,上拉电阻应永久连接到DIO。如果MAX1452 DIO和OUT连接,则在模拟测量期间不要加载该公共线路非常重要。在这种情况下,合适的事件顺序如下:

将上拉电阻连接到 DIO/OUT 线路(最好使用 接力)。

发送 RdIRS 命令。

用户连接的三态(设置为高阻抗)。

从MAX1452接收数据。

激活用户连接(将 DIO/OUT 线拉高)。

松开上拉电阻。

图1所示为发送/接收序列示例,发送RdIRS命令(59十六进制),MAX1452响应字节值为10十六进制。

poYBAGP0P7GAJS9kAAA-4XV_v2k160.png

图1.DIO 输出数据格式。

内部时钟设置

初始上电后或电源复位后,MAX1452内的所有校准寄存器都包含00十六进制,必须进行编程。请注意,在模拟模式下,内部寄存器从EEPROM自动刷新。

当MAX1452以数字模式启动时,应特别注意配置寄存器的3个CLK位:3MSB。MAX1452内部振荡器的频率在生产测试期间测量,计算3位调整(校准)代码并存储在EEPROM位置3十六进制(EEPROM上部配置字节)的上161位中。MAX1452内部时钟控制所有定时功能,包括信号路径增益、DAC功能和通信。建议在数字模式下,为配置寄存器CLK位分配EEPROM中包含的值(上部配置字节)。3 个 CLK 位代表一个 9 的补码数,标称时钟调整为每位 15%。表 <> 显示了可用的代码和调整。

对配置寄存器中包含的CLK位值的任何更改都必须遵循MAX1452波特率学习序列(重新初始化和初始化命令)。为了在时钟复位期间最大限度地提高通信系统的鲁棒性,一次仅将CLK位更改1LSB值。因此,配置寄存器CLK位的推荐设置过程如下:在设置过程中使用9600的最小波特率,以防止时钟值接近最大值时MAX1452波特率计数器可能溢出。

以下示例基于所需的 CLK 代码 010 二进制文件:

第 1 步。从 EEPROM 位置读取 CLK 位 (3MSB) 161 十六进制 CLK = 010 二进制。
第 2 步。将配置寄存器中的 CLK 位设置为 001 二元的。
第 3 步。发送重新初始化命令,然后初始化 (波特率学习)命令。
第 4 步。 将配置寄存器中的 CLK 位设置为 010 二元的。
第5步。发送重新初始化命令,然后初始化 (波特率学习)命令。

内部振荡器的频率可以随时通过读取 BITCLK[7:0] 的值来检查。这个 8 位数字表示对应于通信波特率的一个周期(一位时间)的内部振荡器周期数。

擦除和写入 EEPROM

在对所需内容进行编程之前,必须擦除内部EEPROM(字节设置为FF十六进制)。MAX1452以标称擦除状态供电,字节161十六进制和字节16B十六进制除外。字节 3 十六进制的 161MSB 包含内部振荡器校准设置。字节 16B 十六进制设置为 00 十六进制以允许串行通信,而不管“解锁”状态如何。

擦除 EEPROM 时,首先保存字节 3 十六进制的 161MSB。擦除后,必须重写这 3 位,以及 00 十六进制的安全锁字节值。如果不这样做,可能会导致部件停止通信。在重写这些值之前,请勿断开设备的电源。

内部EEPROM可以使用擦除命令完全擦除,也可以使用PageEras命令部分擦除(请参阅表10,CRIL命令)。发出 ERASE 或 PageErase 命令后需要等待 6 毫秒。任何在6ms之前与器件通信或中断电源的尝试都可能在EEPROM中产生不确定的状态。

要擦除 EEPROM 中的页面(页面擦除命令):首先将所需的页码(见表1)加载到IRS位置IEEA[3:0]。然后发送 CRIL PageErase 命令(79 十六进制)。

要将字节写入 EEPROM: 使用字节地址(地址 [9:8])加载 IRS 位置 IEEA[7:4]、IEEA[3:0] 和 IEEA[9:0]。加载 IRS 位置 DHR[7:4] 和 DHR[3:0] 以及要写入的 8 个数据位 (Data[7:0])。将EEPROM WRITE命令发送到CRIL(19十六进制)。

要从 EEPROM 读取字节: 加载国税局位置 IEEA[9:8], IEEA[7:4] 和带有字节地址(地址 [3:0])的 IEEA[9:0]。发送一个 将EEPROM命令读取到CRIL寄存器(49十六进制);这将加载所需的 EEPROM 字节转换为 DHR[7:0]。加载 IRS 位置 IRSP[3:0] 与 00 十六进制(返回 经[7:0])。将读取 IRSP 命令发送到 CRIL 寄存器(59 十六进制)。

多路复用模拟输出

MAX1452提供在数字模式下通过读取模拟(RdAlg)命令输出模拟信号的功能。在收到RdAlg命令后的一个字节时间,由ALOC[3:0]寄存器确定的内部模拟信号(见表14)被多路复用为OUT。信号在 ATIM[3:0] 寄存器设置的持续时间内保持与 OUT 的连接。ATIM功能使用通信波特率作为定时基础。详见表13。在ATIM[3:0]确定的周期结束时,模拟信号与模拟输出断开,OUT恢复三态状态。MAX1452在OUT恢复三态状态后,可以在DIO 1字节上接收进一步的命令。图 2 说明了此方案的时序。

MAX1452 DIO在模拟输出有效期间为三态。这是为了允许 OUT 和 DIO 引脚并联连接。当DIO和OUT并联连接时,上位机还必须三态其与MAX1452的通信连接。这一要求将产生与DIO的所有连接同时三态的周期,因此在这些期间必须对DIO施加一个弱上拉电阻。有关更多详细信息,请参阅“串行数字输出”部分。

“连续输出”模式可用于模拟输出,可通过将 ATIM[3:0] 设置为 F 十六进制来选择。仅当 DIO 和 OUT 分开时,才能使用此模式。在此模式下,在收到 RdAlg 命令或任何其他命令后,DIO 三态为 32,769 字节时间。经过此时间段后,DIO 将进入接收模式,并将接受进一步的命令输入。在连续模式下,模拟输出始终处于活动状态。

注意:连接到OUT时,内部模拟信号不缓冲。在测量这些内部信号之一时,任何OUT负载都可能产生测量误差。读取内部信号(如BDR、FSOTC等)时,不要加载OUT引脚。

pYYBAGP0PIiAfokVAAAc0fXioEI627.gif?imgver=1

图2.模拟输出定时。

poYBAGP0P5OAeXBMAADtTIsc1DA053.png

图3.MAX1452串行命令结构和硬件原理图

通信命令示例

以下是MAX1452中各种功能的命令序列示例。

示例 1:更改波特率设置,并检查通信。注意:如果在发送重新初始化命令之前,由于系统波特率变化导致与MAX1452的通信中断,则必须进行电源复位以保证初始化条件。

命令 行动
FF 六角 重新初始化准备进行波特率学习的零件。
将系统波特率更改为新值。
81 十六进制 学习波特率。
F8 六角 将 15(F 十六进制)加载到 IRSP[3:0] 寄存器。
59 十六进制 阅读国税局。
主机必须准备好在发送读取 IRS 命令的一个(波特率)字节时间内接收串行线路上的数据。MAX1452将返回CA十六进制(IRSP值为10至15,配置为返回CA十六进制,用于通信检查)。

示例 2:读取查找表指针 (临时索引)。

命令 行动
78 十六进制 将 7 加载到 IRSP[3:0] 寄存器。
59 十六进制 阅读国税局。
主机已准备好在发送读取 IRS 命令后的一个字节内接收数据。MAX1452将返回当前温度指数指针值。

例3:在 OUT 引脚上启用 BDR 测量,持续时间为 3.4 秒,波特率为 9600。

命令 行动
1B 十六进制 加载 1(BDR 测量)到 ALOC[3:0] 寄存器。
CA六角 将 12 加载到 ATIM[3:0] 寄存器:(212+1)
pYYBAGP0PIuAcsjiAAABw33vyf4306.gif?imgver=1
8/9600 = 3.4秒
69 十六进制 RdAlg
DIO 引脚为三态,OUT 引脚在内部连接到 BDR 引脚,持续时间约为 3.4 秒。

例4: 将 8C40 十六进制写入 FSODAC 寄存器。

命令 行动
00 十六进制 将 0 十六进制加载到 DHR[3:0] 寄存器。
41 十六进制 将 4 十六进制加载到 DHR[7:4] 寄存器。
C2 六角 将 C 十六进制加载到 DHR[11:8] 寄存器。
83 十六进制 将 8 十六进制加载到 DHR[15:12] 寄存器。
36 十六进制 将 3 (FSODAC) 加载到 ICRA[3:0] 寄存器。
09 十六进制 低沉管
8C40十六进制写入FSODAC寄存器。

例5: 将 8C40 十六进制写入 FSODAC 查找表位置 温度指数为 40。本示例使用“页面擦除”命令清除 EEPROM的相关部分,并假设没有现有数据 在该部分中需要保留。

命令 行动
A6 六角 加载 A 十六进制(对应于 EEPROM 位置的页码 280 十六进制 和 281 十六进制)到 IEEA[3:0] 寄存器。
79 十六进制 “页面擦除”命令。
等待 6 毫秒,然后再发送任何进一步的命令。
06 十六进制 将 0 十六进制加载到 IEEA[3:0] 寄存器。
87 十六进制 将 8 十六进制加载到 IEEA[7:4] 寄存器。
28 十六进制 将 2 个十六进制加载到 IEEA[9:8] (IRSP[3:0]) 寄存器。
00 十六进制 将 0 十六进制加载到 DHR[3:0] 寄存器。
41 十六进制 将 4 十六进制加载到 DHR[7:4] 寄存器。
19 十六进制 编写 EEPROM。40 十六进制加载到 EEPROM 地址 280 十六进制,其中 是对应于 TEMP-INDEX 指针值的低字节位置 的 40。
16 十六进制 将 1 加载到 IEEA[3:0] 寄存器。IEEA[7:4] 和 IEEA[9:8] 已经 分别包含 8 和 2。
C0 六角 将 C 十六进制加载到 DHR[3:0] 寄存器。
81 十六进制 将 8 十六进制加载到 DHR[7:4] 寄存器。
19 十六进制 编写 EEPROM。8C十六进制加载到EEPROM地址281十六进制,其中 是对应于 TEMP-INDEX 指针的高字节位置 值为 40。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5308

    浏览量

    119975
  • 存储器
    +关注

    关注

    38

    文章

    7447

    浏览量

    163579
  • EEPROM
    +关注

    关注

    9

    文章

    1010

    浏览量

    81395
收藏 人收藏

    评论

    相关推荐

    MAX1452需要使用外部存储器吗?针对电桥calibration怎么做?

    MAX1452 需要使用外部存储器吗? 针对电桥的calibration怎么做?
    发表于 01-10 06:41

    MAX1452传感器信号调理芯片 大连睿科电子

    睿科电子作为东棉电子的增值分销商,专业推广MAXIM的传感器调理芯片,MAX1452等传感器信号调理芯片,价格全国最低。我们还为MAX1452芯片研发了调理模块和校准系统等配套产品,技术成熟,功能
    发表于 09-02 09:03

    labview软件环境支持的MAX1452评估软件打开时有错误提示!!!

    我在打开MAX1452评估软件时错误提示如下:Initializaion failed could not find seriel In board.我不知道怎么解决,请各位大侠指教,非常感谢!另外,我的MAX1452评估套件不带光盘。
    发表于 01-31 15:51

    max1452通信问题

    max1452电源5v,UNLOCK连接至5V。STM32单片机与max1452共地,串口TX与max1452 DIO连接,发送01后,再发送ff 81 f8 59没有任何返回,在示波器上查看发送数据没问题,
    发表于 11-30 14:33

    MAX1452

    请问美信公司有对于MAX1452的替代产品吗?公司官网上的校准软禁要求电脑系统是98的,请问有适用于现在大部分电脑系统的校准软件吗?
    发表于 08-12 10:28

    求大佬分享一款MAX1452非线性修正应用电路

    求大佬分享一款MAX1452非线性修正应用电路
    发表于 05-12 06:47

    低成本高精度传感器信号调理器MAX1452相关资料下载

    概述:MAX1452是一款高度集成的模拟传感器信号处理器,优化于工业和过程控制中采用阻性元件的传感器。MAX1452具有放大、校准和温度补偿功能,可以逼进传感器所固有的可重复指标。全模拟信号通道在
    发表于 05-17 06:37

    如何实现STM32结合MAX1452来对压阻式传感器进行温度补偿?

    有大佬会STM32结合MAX1452对应变式传感器进行温度补偿吗,本人是个纯小白,查了一大堆关于MAX1452的资料,也看了MAX1452的数据手册,但还是不明白咋弄,也怪自己比较笨吧,希望有大佬能指导一下,可以有偿。
    发表于 09-17 20:12

    MAX1452中文资料pdf

    MAX1452是一种高度集成的模拟传感器信号处理器,可用于优化工业和过程控制中采用阻性元件的传感器。MAX1452具有放大、校准和温度补偿功能,其综合工作特性可以逼进传感
    发表于 04-17 13:14 378次下载

    利用MAX1452实现远端传感器补偿

    摘要:MAX1452高性能模拟信号调理器通过片内闪存查找表或者OTC和FSOTC DAC实现线性补偿。对于MAX1452温度和传感器温度不同的应用(例如,传感器位于距离MAX1452较远的位置),应采用OTC和
    发表于 04-20 15:38 1532次阅读
    利用<b class='flag-5'>MAX1452</b>实现远端传感器补偿

    MAX1452非线性修正应用电路

    摘要:MAX1452是一款高性能的模拟传感器信号调理器,已广泛用于工业领域和汽车电子领域。对于多数应用来说,传感器输出的非线性修正非常重要。虽然MAX1452内部没有集成非线性修
    发表于 04-20 15:39 2693次阅读
    <b class='flag-5'>MAX1452</b>非线性修正应用电路

    MAX1452 Serial Communications

    Abstract: The MAX1452 utilizes asynchronous serial data communication via a single-pin interface.
    发表于 04-20 16:08 2072次阅读

    MAX1452串行通信资料下载

    初始化序列 第一个命令字节送到MAX1452上电后或之后的重新初始化命令的接收由MAX1452用来学习通信的波特率。初始化序列是一个81进制字节传输,如下:
    发表于 04-08 09:15 69次下载
    <b class='flag-5'>MAX1452</b>的<b class='flag-5'>串行</b><b class='flag-5'>通信</b>资料下载

    使用MAX1452进行远程传感器补偿

    MAX1452高性能模拟信号调理器可通过片内闪存查找表或OTC和FSOTC DAC进行线性补偿。对于MAX1452和传感器不能处于同一温度的应用(例如,传感器远离MAX1452),应使用OTC
    的头像 发表于 02-20 10:15 1810次阅读
    使用<b class='flag-5'>MAX1452</b>进行远程传感器补偿

    利用MAX1452实现远端传感器补偿

    MAX1452高性能模拟信号调理器通过片内闪存查找表或者OTC和FSOTC DAC实现线性补偿。对于MAX1452温度和传感器温度不同的应用(例如,传感器位于距离MAX1452较远的位置),应采用
    的头像 发表于 06-16 15:32 735次阅读
    利用<b class='flag-5'>MAX1452</b>实现远端传感器补偿