提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
IC-MU磁绝对值编码器的SPI通讯和码盘数据处理
前言
ic-mu基本情况介绍
IC_MU是一款离轴的1.28mm磁编码器,主要用于电机控制居多,当作磁编码器,优势是能使用多种通讯协议(SPI,BISS,SSI),但是目前中文网上使用资料较少,因此我自己写一篇关于IC_MU的SPI通讯读取方式的文章,读取芯片为stm32G4系列,然后代码在stm32G4和stm32F1系列基本通用。
芯片基本介绍如下

提示:以下是本篇文章正文内容,下面案例可供参考
一、硬件连接
按最小系统连接。IC-mu需连接eeprom存储角度,供电为5V
二、STM32 cubmx配置模式
STM32G491配置cubemx

如图几个关键点
1数值格式:可以选8bit,但是我觉得16比特配置更方便,如果要配8bit只需将数据拆分即可
2波特率 没有明确要求,12M以下都可以
3SPI模式,SPI一共4种模式

IC_MU只支持模式0和模式3,如上图所示采用模式3 CPOL选择High CPHA选择2Edge

SPI通道要设置为高速
除此之外还需要设置片选信号,默认为高电平

三、软件代码及思路
首先需要对整体进行说明,需要将编码器激活,配置在SPI通讯模式
1.寄存器指令介绍
0xB083 Activate,激活
0xA6FF Position Read 位置读取命令
0x8A Register Read (Continuous) 寄存器读取(连续)
0xCF Register Write(Continuous) 寄存器写入(连续)
0x9C Read Status 读取状态寄存器 指令
0x97 Register Read(Single) 寄存器读取(单次)
0xD2 Register Write(Single) 寄存器写入(单次)
2.代码介绍
对片选进行宏定义,然后对SPI数据传输底层函数进行定义
1初始声明和定义
#define SPI_IC_MU_CS_LOW(); HAL_GPIO_WritePin(ABS_ENCODER_CSN_GPIO_Port, ABS_ENCODER_CSN_Pin, GPIO_PIN_RESET);
#define SPI_IC_MU_CS_HIGH() ; HAL_GPIO_WritePin(ABS_ENCODER_CSN_GPIO_Port, ABS_ENCODER_CSN_Pin, GPIO_PIN_SET);
uint16_t SPI_SendHalfWord(uint16_t HalfWord

本文介绍IC-MU磁编码器通过SPI接口与STM32微控制器的连接配置及数据读取方法。详细展示了硬件连接、STM32配置步骤、SPI通讯代码实现,并给出了角度计算的具体算法。

4997

被折叠的 条评论
为什么被折叠?



