荣誉版主 山东.王,2024/9 技术漫步,共享,技术回复 索引
本帖最后由 王昱顺 于 2024-9-30 13:35 编辑1.开源小工具-自动生成PWM配置代码
欢迎大家继续提出更多建议,我会努力丰富自动代码生成小工具的
自动生成代码 (新增对话模式,聊天生成代码) AI8051U-PWM配置小工具 - 有ICache的AI32F12K54测试版块,FOC 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
技术文章
2.LED还能同时发光和感光!如何巧妙利用IO端口模式实现 - 作品展示 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
3.STC-PWM配置小工具详细使用方法 - 有ICache的AI32F12K54测试版块,FOC 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
4.OLED屏幕还能这么玩?真160帧刷新显示 - 有ICache的AI32F12K54测试版块,FOC 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
5.一句话就生成程序!使用自然语言进行自动代码生成的展望 - 综合讨论 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
6.如何让采集速度更稳定?编码器获得速度的一些见解 - 有ICache的AI32F12K54测试版块,FOC 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
7.有刷还能改成无刷?浅谈电机控制中的有刷无刷 - 有ICache的AI32F12K54测试版块,FOC 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
8.有关DMA双缓冲的一些思考 - DMA支持: QSPI, SPI, I2S, I2C, 4组串口, i8080/MC6800-TFT 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
9.串口数据丢失 如何重新同步? - 串行口,DMA支持的4组串口,RS232,RS485,Modbus, CRC16 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
10.使用AI8051U实现4路1MHz可控数量脉冲输出,工控领域 - 串行口,DMA支持的4组串口,RS232,RS485,Modbus, CRC16 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
本帖最后由 王昱顺 于 2024-10-6 13:29 编辑
技术回复:
问题1:
u8 xdata DmaTxBuffer;
DMA_I2CT_TXAH = (u8)((u16)&DmaTxBuffer >> 8); //I2C发送数据存储地址
DMA_I2CT_TXAL = (u8)((u16)&DmaTxBuffer);
谁能详说一下(u8)((u16)&DmaTxBuffer >> 8);这一段。
回复:
(u8)((u16)&DmaTxBuffer >> 8)
从里面开始解释,首先是&DmaTxBuffer为取地址操作,(u16)为强制转换无符号16位数据。防止被系统转成8位数据,而在后面的>>8中清零。
>>8是为了取到高8位,最前面的(u8)则是重新将数据强制转换成无符号8位数据
链接:
谁能详说一下(u8)((u16)&DmaTxBuffer >> 8);这一段 - C语言,汇编语言,Proteus MCU软件仿真 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题2:
几年前我就实现了蓝牙无线下载,但是问题就是最低波特率调成115200的话,就是调节频率有一定的机率失败,所以还是用有线下载,蓝牙无线下载器扔一边了
今天看到你这篇文章,我又拿出来测试,把下载调节IRC频率的勾去掉,可是新问题就是,正在重新握手有一定机率超时,看来蓝牙无线下载还是不能做到100%成功。。。
后来又试了,最低波特率调用115200,有线下载都有一定机率不成功,当USB线 或 TTL线有3米长的时候。。。
回复:
这个主要看蓝牙方面的通讯成功率。
这个算是比较偷懒的无损办法,如果想要效果好,还是要重新实现一遍下载流程,下载的文件仅做传输用途
链接:
全自动蓝牙下载器!使用STC8H2K08U和JDY33模块制作, 可通讯可下载 - 第4页 - 有ICache的AI32F12K54测试版块,FOC 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题3:
单片机IO如何检测输入信号是高/低电平还是连续方波?
如果1秒内刚好发生电平变化呢,怎么判断是从高电平转为低电平,还是方波
回复:
每次变化后清零1s计时器,重新开始计时。
因为方波没变化前的一段也属于电平信号,想要不误识别,就只能做延迟切换,检测到电平变换就开始等1s时间,有变化就识别为方波,没变化就识别为电平
链接:
单片机IO如何检测输入信号是高/低电平还是连续方波? - 老鸟反刍/吐槽,新手乐园,毕业设计 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题4:我发现int一般是4个字节,但是再单片机上似乎不是4个字节,位移的时候发现16和24位的位移高16位数据丢失,请教怎么处理呢
回复:单片机的int类型长度是2字节,16位
链接:AI8G1K08A-8PIN 串口复用问题请教 - 第2页 - 串行口,DMA支持的4组串口,RS232,RS485,Modbus, CRC16 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题5:我见用的比较多的恒流是通过运放来做前级,可以做到恒流.
是否是您说的这个pid关联电流传感器数据呢
回复:不是,我说的这个是软件实现方案,用运放是硬件电路自动调节的。
运放电路硬件会比较麻烦点,但是软件控制就比较简单。看你的选择了
追问:我可不可以理解成 利用单片机检测 电池电压来实时调节PWM的数值?
达到恒流的效果? 亮度一直是一个亮度。
追答:是的,这两种调节方式的效果实际是差不多的。可以这么理解
链接:有几个疑问,希望大佬教育一下!!! - 第2页 - 其他技术交流 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题6:AI8H8K64U上电过程中,串口接收不明数据
回复:启动的时候串口接收标志位暂时不打开,等全部启动完整再打开就好了。
初始化的手提前打开容易被IO口操作或者高阻态随机电平影响
链接:AI8H8K64U上电过程中,串口接收不明数据 - 串行口,DMA支持的4组串口,RS232,RS485,Modbus, CRC16 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题7:各位好,
目前我在使用AI8G1K08A-8PIN这颗芯片做产品,由于对单片机不是很熟悉,还请指导。
1和3脚需要接一个串口外设,7和8脚用于和主机通信下发和上行串口信息。 5和6用来连接。1和3收到数据在发给7和8 ,所以可以做动态切换复用。应该能做到
回复:你好,请使用这个代码进行配置,这个型号的配置在库函数中似乎是没有的
<font size="4"><font size="4">void PortSwitch(void)
{
P_SW1 = (P_SW1 & ~0xc0) | 0x80; //UART1/USART1: RxD(P5.4), TxD(P5.5)
}</font></font>
追问:还有一个问题 我在这过程中需要将串口在13和78之间来回切换,是否需要额外的操作呢? 必须去去初始化
追答:不用重新初始化,初始化一次就够了
直接操作P_SW1,这里面有关于切换引脚的位,操作了以后自然就切换过去了
链接:AI8G1K08A-8PIN 串口复用问题请教 - 串行口,DMA支持的4组串口,RS232,RS485,Modbus, CRC16 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题8:AI MCU的USB支持做主机吗?
回复:暂时不支持,目前的型号都是仅仅支持USB从机模式,可以做个键盘,手柄,鼠标之类的应用
链接:AI MCU的USB支持做主机吗? - 老鸟反刍/吐槽,新手乐园,毕业设计 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题9:哪个大佬帮忙看一下 屠龙刀22年6月20的板。。我没有办法打开定时器。全部程序
追加提问:你在在while(1)外面调用定时器,我主程序要在while(1)里面运行。怎么弄?
回复:定时器初始化一次就可以,重复初始化会导致无法达到定时效果。
链接:屠龙刀AI32G12K128定时器问题 - 第3页 - 定时器/计内部时钟,计数器/计外部脉冲,时钟分频输出,软件延时 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题10:OLED在高刷新率的情况下,是否会存在撕裂(tear effect)?
回复:会出现的,但是因为刷新显存帧率可以做到1000多帧,远远高于显示帧率,所以撕裂现象会非常轻微。
较为容易受撕裂影响的主要是写入显存速度和实际刷新速度近似的屏幕。比如60帧的彩屏
链接:OLED屏幕还能这么玩?真160帧刷新显示 - OLED12864-GUI/U8g2-科学计算器 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题11:Iapp-ISP单片机在线升级工具下面那个软件延时计算器里面没有STC8的怎么办?请看图示,我点那个下拉箭头,就是找不到STC8的
回复:AI8和STC8一样,就是改了个名字
链接:AIapp-ISP单片机在线升级工具下面那个软件延时计算器里面8051指令集如何选择?选择AI8 - 老鸟反刍/吐槽,新手乐园,毕业设计 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题12:佬,明年的微缩车模有没有什么建议的,我们这边没有一点微缩的经验和头绪
回复:按照成本来看应该是轻量化车身+空心杯电机+自制硅胶轮胎
如果按照性能来看应该是离心机负压+自绕无刷电机+FOC控制+惯性导航和赛道记忆
链接:智能车竞赛中的车模结构心得 - 全国大学生智能汽车竞赛,清华卓老师 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题13:想知道LED是如何读取到亮度的,ADC实现,但是LED光照也会产生弱电压吗
回复:反向通电,
外加内部的下拉电阻做成一个分压网络,
内部的下拉电阻流过电流产生电压,
读这个电压就可以了
链接:LED同时实现感光和发光,无外部电路,I/O口直连控制 - 作品展示 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题14:请教楼主,第一个问题(有刷电机自然差速-变频调速),较低的频率一般是多少?1k?或者1k一下?较高的频率又是什么范围,感谢分享
回复:一般我以1khz作为分界线,来区分较低和较高的频率。
链接:有刷直流电机的自然差速 - 全国大学生智能汽车竞赛,清华卓老师 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题15:为什么AI8051U读取出来CHIPID数值都是0呀
(int) *(unsigned char volatile xdata *)0xfde0 这个chipid0 的值居然等于0 到底是为什么啊
回复:使用手里的AI8051试验箱测试读取CHIPID,与STCISP对照无误,应该是你的程序问题。
直接通过AI8051.h的定义读取就可以了,我这也是通过数码管显示十六进制。
程序内容和STCISP内的序列号
链接:为什么AI8051U读取出来CHIPID数值都是0呀 - 老鸟反刍/吐槽,新手乐园,毕业设计 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题16:如题,我给变量 table=40,但是打印出来的结果不是40,这是怎么回事,我设置等于FF,00没事,不能是其他数值,其他数值打印是乱七八糟的,求教!
回复:你也可以这么写,这个是数据对齐的问题。
printf("值为 %d\n",(int)table);
链接:关于打印数据问题,求教 - C语言,汇编语言,Proteus MCU软件仿真 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题17:AI8051U追频后,使用TFPU做一个特定的浮点会复位,
不追频,没有问题,
不做浮点计算,也没有问题
不用TFPU,也没有问题
回复:测试了一下40Mhz,感觉没问题啊?
后面发现是追频频率设置的过高,单片机内核工作异常了,应该<42MHz
链接:一个奇怪的问题:AI8051U使用追频后,做一个特定的浮点会... - 综合讨论 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题18:请教串口DMA发送问题,想知道的是,如何把TX3_485_DATA内部的内容放进缓冲区。
回复:DMA_UR3T_TXAH = (u8)((u16)&TX3_485_DATA >> 8);
DMA_UR3T_TXAL = (u8)((u16)&TX3_485_DATA);
链接:请教串口DMA发送问题 - 第2页 - 串行口,DMA支持的4组串口,RS232,RS485,Modbus, CRC16 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题19:STC8作为I2C Slave的时候,掉电唤醒可以由主机的I2C信号触发吗?
考虑到I2C有外部上拉电阻,在掉电时,需要特别注意控制引脚的静态电流吗?
回复:1.可以的,例程里面有写
2.掉电前将IO口设置为高阻模式,就可以抵消外部上拉电阻的影响了。
链接:STC8作为I2C Slave的时候,掉电唤醒可以由主机的I2C信号触发吗? - 老鸟反刍/吐槽,新手乐园,毕业设计 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题20:引脚不够用了,所以想借用下载串口的RX作普通GPIO使用。期待:
1. 下载过程,因为我的程序还没有运行,所以RX可以正常下载程序。
2. 运行阶段RX被设置为普通gpio,但TX仍然作为串口的TX,向控制台发送日志。
这可以做到吗?需要注意些什么?
回复:应该可以做到,UART的接收不需要操作IO口,所以不构成操作冲突。
给REN关掉应该就可以了。这样不会受到串口接收中断的干扰
链接:借用下载串口的RX作普通GPIO使用 - 老鸟反刍/吐槽,新手乐园,毕业设计 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题21: 怎么把printf放在code里面啊。一下就满了
回复: 首先,printf是个函数,调用后占用的是code空间,中间过程中使用的变量你也无法修改。
其次,其他的变量可以通过使用 u8 xdata list;类似的形式定义到xdata区域,这样就不会占用data导致溢出了
或者还有更加一劳永逸的方式,进入target里面调整存储模式,全存到xdata里面就没这个问题了
链接:怎么把printf放在code里面啊。一下就满了(已解决) - 综合讨论 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题22: Ai8H8K64U的ADC无法采集到数据
回复: 程序上的问题,建议先使用例程进行修改验证
成功后再进行移植,出现问题后可以对应到例程一句一句查找问题。
此时如果有问题可以再来论坛咨询
直接贴代码,很多时候可能不一定是代码的原因,这样仅凭一大段代码也不好找问题
链接:Ai8H8K64U的ADC无法采集到数据 - ADC/比较器,DMA支持的12位ADC,轨到轨比较器,DAC 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题23: QSPI可以使用简单的电阻电平转换吗,AI8051使用5V供电,W25Q Flash使用3.3V供电,传统的SPI可以用电阻电平转换,即相关SPI口设为开漏,串330R电阻后再3.3K上拉到3.3V。
使用QSPI试了一下,相关端口需要由QSPI模块自动设置才可以,手定设置固定为开漏失败,这样用电阻来转换电平是不是就比较不保险了。
回复: 你可以直接串一个500Ω左右的电阻
有压差就分压到电阻上,电阻上流过的电流也不会很大。
不过通讯的最大速度会受到一定的影响,如果想要通讯快,建议使用电平转换芯片。
链接:QSPI可以使用简单的电阻电平转换吗 |Ai8051U@3.3V, 如何接其他5V器件而已 - QSPI/3组SPI/I2S/I2C,一线制温湿度传感器 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题24: 串口数据丢失 如何重新同步,多协议的这么解析呢?
回复: 多协议的也是通过包头和校验进行对齐的。
只不过支持更多的包头和标识符来配合不同的协议。
这里就讲了一种最简单的
链接:串口数据丢失 如何重新同步? - 串行口,DMA支持的4组串口,RS232,RS485,Modbus, CRC16 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题25: 老哥们为什么我8h1k08上电默认是高电平?有一个输出的尖峰?
回复: 上电后所有io默认为高阻状态,此时受到外部上下拉影响,没配置io为其他模式前都是依靠外部电阻控制电平
比如看你p16,配置为推挽后出现了高电平,然后你配置为低电平,可以看到有一瞬间的短脉冲。
如果不想要这个短脉冲干扰,可以先将p16给0,再打开推挽模式
链接:老哥们为什么我8h1k08上电默认是高电平 | 被外界拉高了 - 老鸟反刍/吐槽,新手乐园,毕业设计 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题26: 有了示波器了,买了老梁示波器,怎么看呢
回复: 探头夹子一个夹输出,一个夹gnd就行了。
调整一下时间和电压保证波形显示合适,具体可以看老梁示波器开源项目内的说明
链接:8H8K64U的PWM控制l9110s遇到的问题 - 第3页 - BLDC/144MHz-PWM-硬件移相/45路PWM+3路CCP/7组不同周期的PWM/DAC 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题27: 再次测试 ((void (code *) (void)) 0x0000) (); 代码不能抹去30=0;31=0;内存
有没有别的命令 直接像冷起动那样的效果
回复: 软重启可以试一下这个代码
IAP_CONTR=0x60;
链接:8H8K64U, P30 P31 休眠设置问题 - 第2页 - 综合讨论 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题28: 老师们,我想学一下,用ADC采样来实现电流检测,用48V电源,检测电流在100A以下,哪位老师能分享个电路来学习一下
回复: 100a以下是有可能到100a的意思嘛?
那用采样电阻加放大器可能就不合适了,建议使用霍尔电流传感器。比如acs758这种的
链接:哪位老师能分享个48V的电流采样电路学习一下 - ADC/比较器,DMA支持的12位ADC,轨到轨比较器,DAC 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题29: 做一个红外开关,感应就有输出电平
引脚这样设计有没有问题,请大师们指点一下
回复: 应该是没有问题的,不过需要注意p30和p31上连接的引脚不要影响下载电平变化,不然容易引起下载失败
链接:8G1K08A-36I-SOP8 - 老鸟反刍/吐槽,新手乐园,毕业设计 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题30: 报错 how_much_days_in_a_month.c too many arguments to function 'get_days'
死活没看出来get_days函数怎么就多了参数了。
回复: 调用的函数在当前函数下面,所以会往上找声明,声明不对就会报错
链接:菜鸟求问一个很初级的c程序问题 - C语言,汇编语言,Proteus MCU软件仿真 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题31: AI8H1K28单片机做无刷无感高速电机驱动12000转高速电机,我采用了梁工的无刷无感电机方案,现在在梁工电机方案上改进了电机驱动电路。改进后电机转速很慢,速度加不上去,还烧MOS管。
因为梁工方案是采用的分离元器件驱动MOS管的,我加了一个驱动芯片来驱动MOS管,其他电路是一样的,可是电机驱动不起来,是什么原因。还有一个问题,现在无感无刷电机,如果不去检测过零点的话,能不能定速高速运行,不如我要定速到1万转每分钟,不调速。固定一个速度,可以调节换向频率,不检测过零点实现吗。
回复: 电机的最高转速是由本身的kv值决定的。可以使用其他电调测试电机的最高转速
mos发烫可能是没做好pwm死区设置
至于定速方案,一样需要过零点采样,不然没法高速转
我用的eg2134方案,也可以做到2w转驱动无刷电机
链接:AI8H1K28单片机做无刷无感高速电机驱动12000转高速电机 - BLDC/144MHz-PWM-硬件移相/45路PWM+3路CCP/7组不同周期的PWM/DAC 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题32: 硬件一线WS2812接口(1-Wire),DMA直接驱动,已仿真通过-这个是8051U做的?
回复: 这个是用fpga做的,用于功能验证,验证通过以后就可以并入新的芯片成为新的独立功能了
链接:硬件一线WS2812接口(1-Wire),DMA直接驱动,已仿真通过 - QSPI/3组SPI/I2S/I2C,一线制温湿度传感器 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题33: 上电后,设置io口为推挽,结果继电器就动作了。我这边没有输出高电平啊。是什么原因
回复: 上电默认高阻模式,即没有电平输出,可以此时更改电平为0,再更改IO模式
链接:上电后io设置为推挽后,io默认电平是高电平吗 - I/O读写及点灯,外部中断 ,所有I/O都支持的普通I/O中断,按键扫描 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题34: 串口发送字符串时候,有些中文字符就成了乱码了,这个是KEIL没设置好还是怎么回事呢?
回复: 这个是keil的0xfd中文兼容性问题
可以通过使用“/xfd正”替换原来的“正”字,全部的0xfd冲突汉字请参考stc技术手册附录
链接:串口发送相关(编译器0xFD问题) - 仿真/编译器/汇编器/头文件 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题35: 51开源,步进电机驱动 程序, 直接驱动, 或驱动步进电机驱动器 一共8个程序
这个里面的目标频率,运行总脉冲数,与电机旋转角度之间是什么关系,我实在搞不明白
回复: 有伺服控制器的情况下,总脉冲控制旋转的准确角度,频率控制旋转的速度(就是发送脉冲的速度)
链接:请教下,梁工这个STC8中两项细分程序 - BLDC/144MHz-PWM-硬件移相/45路PWM+3路CCP/7组不同周期的PWM/DAC 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题36: 我发现不同的mos管也会造成抖动,不知道原因在哪里
回复: mos管拥有不同的ciss,需要根据大小计算匹配的栅极驱动电阻提供合适的阻尼,不然容易出现直通和震荡。并且如果mos本身的ciss较大,还需要选择更高电流驱动能力的栅极驱动。
虽然说硬件都差不多,但是选型和计算还是有一定学问的
链接:高性能FOC | 32F12K54-FOC Lite V2 开源!经多天测试,稳定无异常==目前最高水平 - 第13页 - 有ICache的AI32F12K54测试版块,FOC 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题37: 我用的不是2808电机,自检需要20伏以上运行只要八九伏,而且电压低了以后转速上不去,转速高了,切换到位置模式的时候等待很长时间。需要修改哪些PID参数呢?但是PID的那三个参数我都改了,没什么效果!
回复: 转速问题是跟电机kv相关,电压低了电机转速就是上不去,与控制无关的。那有可能是你调节的参数组不对?这个程序是拥有好几套pid参数的
链接:高性能FOC | 32F12K54-FOC Lite V2 开源!经多天测试,稳定无异常==目前最高水平 - 第14页 - 有ICache的AI32F12K54测试版块,FOC 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
/****************************分割线****************************/
问题38: 我想问一下,Ai32G中的高级PWM时基单元中的问题。
问题一: [图1]
这个箭头是什么意思,意思是将计数器的上溢/下溢信号传递到重复计数器中吗?
问题二:
[图2]这句话是什么意思,也就是说更新事件和更新中断标志都是由重复计数器产生的?就是这个图中的这个? [图3]
问题三:[图4]还有重复计数器的工作方式是什么?拿边沿对齐模式的向上计数举例,也就是说,重复计数寄存器默认是0,那么重复计数器默认是1,来一次上溢,重复计数器就减一到0,并产生更新事件?
回复: 你的理解大部分都是正确的
不过第二个问题中,更新事件是由计数器溢出产生的,不过会受到重复计数器的数值条件约束。
仅在重复计数器为0时产生更新事件,如果不是零,就对重复计数器减1。
重复计数器是减法计数,每次计数器更新都会减一
追问:老师,按照您的意思,就是说,[图1]中的箭头就是更新事件?
追答:图1箭头是自动重载寄存器进行重载的信号,也就是更新信号。
这个信号是否输出到uev和uif取决于重复寄存器是否为0。
如果重复寄存器为0的情况下,直接管这个叫更新事件也可以
链接:【对应冲哥Ai32G教学视频】有关PWM基础知识的疑问 | 已明白 - 学习打卡区 | 感悟 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
页:
[1]