当前位置: 首页 > news >正文

[具身智能-399]:AS5600 OUT信号以及PGO详解

S5600 的OUTPGO引脚是实现其灵活性的关键,它们共同决定了传感器的输出模式和工作状态。

简单来说:

  • OUT引脚:是一个多功能输出端,根据配置可以输出模拟电压PWM信号或用于手动编程
  • PGO引脚:是一个模式选择端,它决定了你是通过I²C 接口还是OUT引脚来读取数据或进行编程。

下面为你详细解析这两个引脚。

📤 OUT 引脚:三种工作模式

OUT引脚(Pin 3)的功能由内部的CONF寄存器(地址0x07)中的OUTS位来配置。它主要有三种输出模式:

1. 模拟电压输出 (Analog Output)

这是 AS5600 的默认模式OUT引脚会输出一个与磁铁角度成比例的模拟电压

  • 原理:内部 12位 DAC 将角度值转换为电压。
  • 电压范围:可通过CONF寄存器配置为两种范围:
    • 全范围 (OUTS=00)电压在 0V 到 VDD 之间变化。
    • 窄范围 (OUTS=01):电压在10% VDD 到 90%VDD 之间变化,可以避免信号在 0V 和 VDD 极限处的非线性区。
  • 角度计算:主控芯片通过ADC 读取OUT引脚的电压值,然后按比例换算成角度。
2. PWM 数字输出 (PWM Output)

在此模式下,OUT引脚输出一个数字 PWM 信号,其占空比与磁铁的绝对角度成正比。这种模式抗干扰能力强,适合长距离传输。

  • 配置:需通过 I²C 将CONF寄存器的OUTS位设置为10
  • 信号帧结构:一个完整的 PWM 帧由4351个时钟周期组成,具体结构如下:
    1. 前导高电平:固定128个时钟周期。
    2. 数据脉冲4095个时钟周期,其高电平持续时间代表角度
    3. 后随低电平:固定128个时钟周期。
  • 角度计算:通过测量数据脉冲部分的高电平时间T_data),可以计算出角度。例如,0° 对应 128 个周期的高电平,360° 对应 4223 (128+4095) 个周期的高电平。
  • PWM 频率:可通过CONF寄存器的PWMF位进行配置,可选 115Hz, 230Hz, 460Hz, 920Hz。
3. 手动编程模式 (Manual Programming Mode)

这是一种无需 I²C 接口即可对 AS5600 进行角度范围编程的特殊用法,需要与PGO引脚配合。

⚙️ PGO 引脚:模式选择开关

PGO引脚(Pin 5)是“编程选项”(Program Option)引脚,它在芯片上电时决定了 AS5600 的工作模式。

表格

PGO 引脚状态工作模式描述
悬空 或 接 VDD(高电平)

模式 A

(I²C 模式)

这是正常工作模式。芯片通过 I²C 接口与主控通信,可以读取角度、配置寄存器。此时OUT引脚的功能由CONF寄存器决定(模拟或PWM)。
接地 (GND)(低电平)

模式 B

(手动编程模式)

进入一种特殊的编程状态。此时无法通过 I²C 读取角度,而是通过操作OUT引脚的电平来设定测量的起始和终止角度。
PGO 模式 B 的手动编程流程:

PGO接地时,你可以按照以下步骤设定一个自定义的角度范围(例如 0° 到 90°):

  1. 上电:给 AS5600 上电,此时PGO必须为低电平。
  2. 设定起始点:将磁铁旋转到你想要的起始位置。然后将OUT引脚拉低到 GND 并保持至少 100ms,再释放让它浮空。这一步设定了零点(ZPOS)。
  3. 设定终止点:按照DIR引脚定义的方向(顺时针或逆时针),将磁铁旋转到你想要的终止位置。旋转角度必须大于 18°。然后再次将OUT引脚拉低到 GND 并保持至少 100ms,再释放。这一步设定了最大角度(MPOS)。
  4. 验证:编程成功后,OUT引脚会输出与磁铁当前位置对应的模拟电压。如果OUT引脚被永久拉低,则表示编程出错。

重要提示:上述步骤只是在 RAM 中进行了临时设置。如果需要永久保存(OTP烧录),需要通过 I²C 接口向BURN寄存器(地址0xFF)写入特定命令。OTP 烧录次数有限(角度设置最多3次),请务必谨慎操作。

http://www.jsqmd.com/news/674696/

相关文章:

  • Agent 出现幻觉怎么解决?RAG 检索准确率低怎么优化?Agent 多轮对话状态怎么管理?
  • C语言:指向数组的指针和指向数组首元素的指针
  • 程序员追不上机器人干脆开电瓶车跟;小米徐洁云辟谣“雷军被人堵在车里维权”;DeepSeek被曝融资20亿 | 极客头条
  • geogram实战案例:基于几何算法的10个工业应用场景解析
  • 兔抗53BP1抗体亲和纯化,高效富集目标蛋白,低丰度样品稳定输出
  • 终极指南:OCI内容描述符如何保障容器镜像的安全寻址与验证
  • 【万字文档+PPT+源码】基于springboot+vue的学生操行评分系统-计算机专业项目设计分享
  • 如何利用Nuclide键盘宏提升开发效率:完整指南与API解析
  • 如何从零部署Colanode:开源协作平台的完整生产环境搭建指南
  • 终极指南:如何用stacktrace.js构建企业级前端错误监控系统
  • Gemma-3多模态模型应用场景:博物馆文物图片智能导览系统构建
  • Space Cloud架构深度解析:GraphQL API与数据库查询优化终极指南
  • 终极指南:如何使用Eloquent-Sluggable在Laravel中快速创建SEO友好的URL
  • AutoRaise未来展望:macOS窗口管理工具的发展趋势与社区贡献指南
  • ytfzf高级技巧:10个提升终端视频体验的实用方法
  • **发散创新:基于角色权限模型的代码保护机制设计与实现**在现代软件开发中,**模型保护**已成为系统安全的
  • 深圳同袍存储解说DDR内存及SSD价格现状
  • 剪映专业版教程:制作动感照片效果
  • 终极LeetCode2测试驱动开发指南:5个步骤编写可靠算法测试用例
  • Linux挂载硬盘
  • ARM架构安全定时器CNTPS_TVAL_EL1详解与应用
  • 如何参与DictionaryByGPT4开源AI单词学习项目:完整贡献指南
  • Hermes 最强引擎:学习循环——Agent 自己给自己造缰绳
  • 从擦写寿命到掉电保护:深入解析SPI NAND、SD NAND和eMMC的可靠性差异
  • [具身智能-400]:AS5600 PWM时钟与PWM输出与角度的关系详解
  • 如何快速掌握世界最快JSON解析器jsmn:从零开始构建高效数据处理工具
  • 终极指南:Cluster API如何简化Kubernetes集群全生命周期管理
  • 终极Geocoder测试指南:单元测试、集成测试和性能测试的完整方案
  • ssh-audit实战:10个关键命令保护你的SSH服务
  • Handlebars-helpers高级用法:自定义辅助函数与扩展技巧