本帖最后由 Libby@ 于 2024-7-12 12:19 编辑
#技术资源#
虽然官网提供了 ATSHA204A 的完整文档,但要快速获取有用信息,仍需花费一些时间。最近用逻辑分析仪观察了 ATSHA204A 的单总线协议和通信信号,以 ATSHA204A 为例,详细介绍其唤醒、读取和发送命令的过程。
单线接口(SWI)通信采用系统微处理器上的单个GPIO引脚连接到设备的SDA引脚。这种方法可以将连接器的引脚数量降至最少,特别适用于可移动或可替换的设备。其比特率最高可达25.6 kbps,与标准UART信号兼容。在ATSHA204A器件中,数据在总线上以LSb形式传输。下图显示了0x7F对应逻辑1,0x7D对应逻辑0。
在本实验中,主机 UART 端口设置为 7 位数据字和 230.4 kbps 数据速率。硬件上 TX 和 RX 短接并连接 SDA。
所需工具
- 逻辑分析仪:国内有许多性价比高的工具可以使用。建议使用支持 Atmel 单线接口(SWI)协议的 Logic 软件。
- SAMD21 Xplained Pro 开发板
- 一片 3 引脚触点式的 ATSHA204A
- 几根跳线
- 硬件连接 将 ATSHA204A 连接到 SAMD21 Xplained Pro 开发板,使用跳线连接所需引脚。确保 PB08 和 PB09 背面短接,并使用上拉电阻。
- 观察 ATSHA204A 的唤醒信号:唤醒对于系统的正常工作至关重要。根据数据手册,“唤醒条件要求系统处理器手动将SDA引脚拉低持续时间为t(wlo),或者以足够慢的时钟速率发送数据字节0x00,以确保SDA至少低电平持续t(wlo)的最短时间。CryptoAuthLib在每次事务开始时都会进行唤醒,以确保在发送任何命令之前已经被唤醒。如下图保持SDA低电平至少60us,然后保持高至少1.5ms。
实验步骤:先唤醒芯片,再读取芯片版本 1)唤醒
- 发送I/O标志位0x88,读取唤醒状态
- 返回数据块包括4个字节,0x04表示共4个字节,状态0x11表示成功唤醒,后面两位CRC校准值。
2)读取器件版本号(DevRev命令) - 数据块 0x7表示共7个字节, 0x30为DevRev命令操作码,三个参数(0x00,0x00,0x00),最后两位CRC校准值0x5d,0x03。返回值请大家留言

附上工程配置
通过这些步骤和工具的使用,可以更高效地对加密芯片的开发和调试。希望这些分享能帮助刚使用加密芯片的小伙伴们。
欢迎大家留言 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|