摘要: MAXREFDES14#为隔离能量测量提供了紧凑的解决方案,具有MAX78615+LMU。该参考设计默认配置为SPI通信。本应用笔记描述了如何配置MAX78615+LMU进行UART通信,并给出了该接口的一些示例事务。
Maxim集成的所有能量测量设备都支持三种不同的串行接口,从而在与不同的主机处理器和应用程序接口时具有最大的灵活性。但是,一次只能激活一个串行接口。在上电期间,Maxim集成能量测量设备将轮询其硬件接口引脚的状态,以确定哪个串行协议将被激活。要在器件已经开启后改变通信模式,用户必须对器件进行一次电源循环,并将新的配置逻辑应用于接口引脚。MAX78615+LMU具有两个接口引脚:引脚16的MP0/IFC1和引脚2的IFC0。表1显示了上电时哪个串行接口对应这些引脚的逻辑状态。
接口模式 | IFC1 | IFC0 |
SPI | X | 0 |
UART | 0 | 1 |
我(2)C | 1 | 1 |
MAXREFDES14#系统板如图1所示。该设计在IFC0和IFC1上都具有10k欧姆下拉电阻,默认情况下选择SPI模式。为了启用UART通信而不是SPI,原理图中的R10应该上拉到V(CC)而不是下拉到GND。由于MP0在选择接口后可以作为“多用途”引脚,因此建议使用下拉引脚而不是直接连接到GND。通过这些连接,MAX78615+LMU将在上电期间配置为UART模式。UART接口的默认设置是38,400波特,8个数据位,无奇偶校验和一个停止位。
图1所示、MAXREFDES14#原理图-非隔离侧
用于通过UART进行通信的协议是简单串行接口(SSI)。SPI和UART接口之间的一个主要区别是,SPI主机通过硬件芯片选择(MAX78615+LMU上的SSB)来选择设备,而UART接口通过使用每个设备的定义的SSI ID来建立通信。MAX78615+LMU可以选择1 ~ 255的SSI ID, SSI ID的选择分两步进行。MAX78615+LMU中的DEVADDR[5:0]寄存器位用于定义SSI ID的上6位。SSI ID的最低2位由硬件引脚MP6/ADDR1和SPCK/ADDR0设置。这些引脚的状态在上电时采样,与MP0/IFC1和IFC0引脚采样以确定串行接口的方式相同。MAX78615+LMU SSI ID =设备总地址+ 1。因此,如果DEVADDR[5:0] = 000000且ADDR1 = ADDR0 = 0,则SSI ID为1。因为255是允许的最大SSI ID,所以不支持' FF '的总设备地址。MAX78615+LMU有一个默认的DEVADDR = 0。
一旦MAX78615+LMU在UART模式下上电并设置SSI ID,就可以通过UART接口发送数据。下拉ADDR1和ADDR0将使MAX78615+LMU的SSI ID为1。可以发送以下报文来选择设备:
字节。 | 数据 | 描述 |
1 | 0 xaa | 报头字节 |
2 | 0 x04 | 字节数 |
3. | 0 xc1之前 | 选择SSI ID目标' 1 ' |
4 | 0 x91 | 校验和 |
校验和的计算方法是将前三个字节相加,并取和的最小字节的两个补码。如果配置正确,MAX78615+LMU将响应单字节响应0xAD,这是一个没有数据的确认。图2显示了事务的逻辑分析器捕获。
图2、SSI选择目标逻辑波形
SSI ID可以在固件和硬件中配置。DEVADDR寄存器可以通过任何串行接口写入——spi、I(2)C或UART。要通过UART写入寄存器的内容,应该发出“设置读/写地址”命令,然后首先发送LSB的两个地址字节,它们表示寄存器的字节地址。“Write 3 Bytes”命令是下一个,后面是三个数据字节,首先发送LSB。仅使用DEVADDR的最低字节来确定SSI ID;上面两个字节是未使用的。可以发送以下报文将DEVADDR寄存器设置为1。MAX78615+LMU应该在没有数据的情况下响应“0xAD”。
字节。 | 数据 | 描述 |
1 | 0 xaa | 报头字节 |
2 | 0 x0a | 字节数 |
3. | 0 xa3 | 设置读写地址[15:0] |
4 | 0 x69 | 寄存器地址[7:0] |
5 | 0 x00 | 寄存器地址[15:8] |
6 | 0 xd3 | 写3字节命令 |
7 | 0 x01 | 数据字节低 |
8 | 0 x00 | 数据字节中 |
9 | 0 x00 | 数据字节高 |
10 | 0 x6c | 校验和 |
最初,DEVADDR寄存器的新内容不会保存到flash中。为了在片上闪存中存储设备地址,必须专门调用flash访问命令。如果不这样做,将导致设备在下一个电源周期时将先前存储的值输入寄存器。命令寄存器位于字地址0处,可用于启动校准、执行软件复位或将寄存器数据存储到闪存。要访问闪存,将0xACC2写入命令寄存器的上字节。可以发送以下包来将寄存器内容存储到flash中:
字节。 | 数据 | 描述 |
1 | 0 xaa | 报头字节 |
2 | 0 x0a | 字节数 |
3. | 0 xa3 | 设置读写地址[15:0] |
4 | 0 x00 | 命令寄存器地址[7:0] |
5 | 0 x00 | 命令寄存器地址[15:8] |
6 | 0 xd3 | 写3字节命令 |
7 | 0 x00 | 数据字节低 |
8 | 0 xc2 | 数据字节中 |
9 | 0 xac | 数据字节高 |
10 | 0 x68 | 校验和 |
一旦执行了这一步,下一次上电时将用新的闪存内容加载寄存器内容。
由于使用的实现和命名约定,应该在DEVADDR、设备地址和SSI ID之间进行一些澄清。DEVADDR是存储用户可编程数据以设置设备地址的寄存器的名称。然而,实际的设备地址是DEVADDR的低六位和设备上电或复位时ADDR1和ADDR0引脚状态的组合。DEVADDR[5:0]位对应设备地址的上6位,ADDR1分配给1位,ADDR0分配给0位。一旦设置了设备地址,SSI ID就是设备地址+ 1。在上例中,如果DEVADDR[5:0] = 1, ADDR1 = ADDR0 = 0,则上电或复位后的新设备地址为4,使上例中的SSI ID为5。
MAXREFDES14#隔离能量测量子系统参考设计上的MAX78615+LMU支持SPI, I(2)C和UART接口。参考设计默认配置了SPI接口。通过在上电时改变硬件引脚的逻辑状态,可以使能MAX78615+LMU上的UART接口。一旦激活,SSI协议被实现通过UART进行通信。通过硬件和固件设置唯一的地址,可以实现多台设备的并行连接。有关SSI协议的完整描述和示例代码,请参阅Maxim集成应用说明5947,“使用嵌入式测量设备的简单串行接口:78M6610+LMU, 78M6610+PSU和MAX78630+PPM”以及每个特定设备的数据表。
社群二维码
关注“华强商城“微信公众号
Copyright 2010-2023 hqbuy.com,Inc.All right reserved. 服务热线:400-830-6691 粤ICP备05106676号 经营许可证:粤B2-20210308