maijinzhi 发表于 2024-10-8 21:24:24

32F12K54 48Mhz频率点灯失败

本帖最后由 DebugLab 于 2024-10-8 22:25 编辑

使用32F12K54 内部IRC 32Mhz以上的频率点灯失败,IO口无法实现高低电平交替

目前已知30MHZ以下能正常工作,32以上灯不闪烁。

不知道是什么原因导致的!
程序如下:


void GPIO_config(void)
{
                P0M0 = 0xff; P0M1 = 0x00;
                P1M0 = 0xff; P1M1 = 0x00;
                P2M0 = 0xff; P2M1 = 0x00;
                P3M0 = 0xff; P3M1 = 0x00;
                P4M0 = 0xff; P4M1 = 0x00;
                P5M0 = 0xff; P5M1 = 0x00;
      
}
void Delay100ms(void)      //@48MHz
{
      unsigned long edata i;

      _nop_();
      _nop_();
      i = 1199998UL;
      while (i) i--;
}
##第一集
##第二集
##第三集

void main(void)
{
      WTST = 0;                //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
      EAXSFR();                //扩展SFR(XFR)访问使能
      CKCON = 0;      //提高访问XRAM速度

      GPIO_config();
      Delay100ms();
      while(1)
      {
               
                P2=0xff;
                //P0=P1=P2=P3=P4=P5=0xff;
                Delay100ms();Delay100ms();Delay100ms();
      //      P0=P1=P2=P3=P4=P5=0x00;
                P2=0x00;
                Delay100ms();Delay100ms();Delay100ms();
      }
}

晓飛飛 发表于 2024-10-8 21:42:46

本帖最后由 晓飛飛 于 2024-10-8 21:45 编辑

手头没有STC32F12K54的开发板,只有STC32G12K128-BETA核心的实验箱V9.4,实测你的程序在35MHz下驱动P6闪烁正常。
你尝试WTST使用默认值1看看可否正常运行。

soma 发表于 2024-10-8 21:46:02

stc32f12k54不是最高主频64M吗?不应该48M就出问题吧

晓飛飛 发表于 2024-10-8 22:46:24

soma 发表于 2024-10-8 21:46
stc32f12k54不是最高主频64M吗?不应该48M就出问题吧

我怀疑是WTST = 0 这条代码作祟,没有按照手册中“特别注意”中描述的要求来配置,时钟那么高支持不了“零等待”。官方建议17MHz以上等待值就需要设置为1了,实测到30MHz以上才出问题,这已经超速太多了。

神农鼎 发表于 2024-10-8 23:08:33

建议 使用 Ai8051U做新设计,32F12K54 还在完善设计中

大叶子 发表于 2024-10-9 06:57:15

尝试WTST使用默认值1看看可否正常运行?结果怎么样?我也蛮关心结果的

cyxy 发表于 2024-10-9 07:19:22

频率高时,若设置WTST = 0;会出问题,将这条指令去掉即可。

maijinzhi 发表于 2024-10-10 22:31:19

大叶子 发表于 2024-10-9 06:57
尝试WTST使用默认值1看看可否正常运行?结果怎么样?我也蛮关心结果的

设置1可以

maijinzhi 发表于 2024-10-10 22:31:54

maijinzhi 发表于 2024-10-10 22:31
设置1可以

去掉默认WTST为2

maijinzhi 发表于 2024-10-10 22:35:11

晓飛飛 发表于 2024-10-8 21:42
手头没有STC32F12K54的开发板,只有STC32G12K128-BETA核心的实验箱V9.4,实测你的程序在35MHz下驱动P6闪烁 ...

我也是从32G移植程序时候发现这个问题
页: [1] 2
查看完整版本: 32F12K54 48Mhz频率点灯失败