找回密码
 立即注册
楼主: 王昱顺

【STC-FOC Lite】 FOC青春版,更少的成本,更简单的构造

  [复制链接]
已绑定手机

0

主题

2

回帖

22

积分

新手上路

积分
22
发表于 2024-11-21 10:50:38 来自手机 | 显示全部楼层
厉害
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-12-05 08:25:22

0

主题

8

回帖

30

积分

新手上路

积分
30
发表于 2024-12-4 22:36:20 | 显示全部楼层
void SPI_Init(void)
{
P_SW2 |= 0x80;                                // 扩展寄存器(XFR)访问使能
P_SW1 |= 0x0c;                                // 启动第四组SPI接口
SPSTAT = 0xc0;                                // 清除标志位
SPCTL = 0xd6;                                 // 忽略SS引脚功能,使能SPI功能,MSB优先,主机模式,下降沿采样数据,速率/4=52/4=13Mhz
IE2 &= 0Xfd;                                  // 关掉SPI中断
DMA_SPI_STA = 0x00;                           // 清零DMA标志位
DMA_SPI_CFG2 = 0x03;                          // 不自动控制SS,SS引脚为P3.5
DMA_SPI_CFG = 0xaa;                           // 1010 1010,SCLK发送时钟,MISO接受信号输入;使能SPI_DMA中断,禁止发送,允许接收。中断优先级3,总线访问优先3
DMA_SPI_CR = 0x81;                            // 允许SPI_DMA功能,开始操作前清空FIFO
DMA_SPI_RXAH = (u8)((u16)&Encoder_Data >> 8); // 通过SPI协议接受到数据后,将数据写入到这个等号右边的这个地址处
DMA_SPI_RXAL = (u8)((u16)&Encoder_Data);      
DMA_SPI_AMT = 2;    // 只传输3个字节
HSSPI_CFG2 |= 0x20; // 启动高速SPI模式
}

第12行和第13行的意思是将SPI从MT6701读到的数据写入到Encoder_Data这个数组里面,按照我的理解,应该是Encoder_Data[0]这个字节开始的地址对应RXAL,Encoder_Data[1]这个字节开始的地址对应RXAH,那RXAH是否不应该是 >> 8 的操作而是+8的操作呢?

还是说我理解的不太正确

点评

这个寄存器的作用是指定spi-dma的读取存放内存地址,是用来存储一个16位长度的内存地址。 Encoder_Data 是一个数组的指针形式,Encoder_Data[0]才是数组元素的形式  详情 回复 发表于 2024-12-5 07:53
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 2024-12-5 07:53:26 | 显示全部楼层
sea*** 发表于 2024-12-4 22:36
[md]```
void SPI_Init(void)
{

这个寄存器的作用是指定spi-dma的读取存放内存地址,是用来存储一个16位长度的内存地址。
Encoder_Data 是一个数组的指针形式,Encoder_Data[0]才是数组元素的形式
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-12-05 08:25:22

0

主题

8

回帖

30

积分

新手上路

积分
30
发表于 2024-12-5 08:30:31 | 显示全部楼层
王*** 发表于 2024-12-5 07:53
这个寄存器的作用是指定spi-dma的读取存放内存地址,是用来存储一个16位长度的内存地址。
Encoder_Data  ...

这里是我漏掉了一个点,因为寄存器是2个8位的组成一个16位的地址,而数组的地址是16位的,所以不能直接把数组的地址给到寄存器,而要把数组的地址分成两块,RXAL写地址的低位,RXHL写地址的高位。
还是挺感谢老哥的。

点评

不客气  发表于 2024-12-5 08:31
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-12-10 20:23:22
已绑定手机

0

主题

10

回帖

54

积分

注册会员

积分
54
发表于 2024-12-10 09:45:22 | 显示全部楼层

楼主能否出一个详细的调试视频啊

点评

安装好后摁一下自动校准按键就可以了,不需要其他操作。 如果校准后运行不好,可能是没校准成功,长按清空参数后重新校准几次就行了  详情 回复 发表于 2024-12-10 10:02
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 2024-12-10 10:02:26 | 显示全部楼层
gsgg*** 发表于 2024-12-10 09:45
楼主能否出一个详细的调试视频啊

安装好后摁一下自动校准按键就可以了,不需要其他操作。
如果校准后运行不好,可能是没校准成功,长按清空参数后重新校准几次就行了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-12-10 20:23:22
已绑定手机

0

主题

10

回帖

54

积分

注册会员

积分
54
发表于 2024-12-10 20:22:20 | 显示全部楼层

请教楼主,有遇到转不起来和不停抽搐的情况吗?如何设置呢

点评

电机线太长了,需要剪短。不然就相当于一个超大的信号干扰源。  详情 回复 发表于 2024-12-10 20:32
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 2024-12-10 20:32:07 | 显示全部楼层
gsgg*** 发表于 2024-12-10 20:22
请教楼主,有遇到转不起来和不停抽搐的情况吗?如何设置呢

电机线太长了,需要剪短。不然就相当于一个超大的信号干扰源。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-12-10 20:23:22
已绑定手机

0

主题

10

回帖

54

积分

注册会员

积分
54
发表于 2024-12-10 21:24:45 | 显示全部楼层
王*** 发表于 2024-12-10 20:32
电机线太长了,需要剪短。不然就相当于一个超大的信号干扰源。

已经剪短了,但是结果都一样

点评

那你可以通过串口输出内部的编码器值,看看是否正常。如果正常就看看电源是不是限流给小了,启动一瞬间会需要大概1a以上的电流。 还有,请查看硬件版本是否为v2,v1版本硬件和软件已经放弃维护了  详情 回复 发表于 2024-12-11 01:40
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 2024-12-11 01:40:59 | 显示全部楼层
gsgg*** 发表于 2024-12-10 21:24
已经剪短了,但是结果都一样

那你可以通过串口输出内部的编码器值,看看是否正常。如果正常就看看电源是不是限流给小了,启动一瞬间会需要大概1a以上的电流。
还有,请查看硬件版本是否为v2,v1版本硬件和软件已经放弃维护了
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 00:14 , Processed in 0.124686 second(s), 119 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表