打印
[技术问答]

N76E003的P1.1管脚输出8Mh不是应该输出16MHz吗?

[复制链接]
1559|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhcj66|  楼主 | 2018-6-22 16:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zhcj66 于 2018-6-22 16:05 编辑

如题:N76E003的P1.1管脚输出8Mh不是应该输出16MHz吗?
为了确定内部时钟是否是16MHz,用逻辑分析仪查看是8MHz的,是不是代表CPU运行在8MHz下?

使用的内部16MHz的内部时钟; CKSWT 读出来的数值是0x30

CKDIV 分频读出来的数值是0


沙发
IoTCatcher| | 2018-6-22 17:19 | 只看该作者
结合寄存器数值分析, 结果应该是16M才对.
刚刚用官方样例代码测试了下, 测出频率是接近16M的, MARK一下!

使用特权

评论回复
板凳
jekey| | 2018-6-22 20:39 | 只看该作者
在16MHz,操作spi,字符间隔2us左右。
遇到过标定频率到16.6MHz后,SPI无法操作的问题,有人帮助验证下这个问题吗?


void MODIFY_HIRC_16600(void)
{
        unsigned char hircmap0,hircmap1;
        unsigned int        trimvalue16bit;

        set_IAPEN;
        IAPAL = 0x30;
        IAPAH = 0x00;
        IAPCN = READ_UID;
        set_IAPGO;
        hircmap0 = IAPFD;
        IAPAL = 0x31;
        IAPAH = 0x00;
        set_IAPGO;
        hircmap1 = IAPFD;
        clr_IAPEN;
        hircmap1 = hircmap1 & 0x01;
        trimvalue16bit = ((hircmap0 << 1) + (hircmap1 & 0x01));
        trimvalue16bit = trimvalue16bit - 15;
        //trimvalue16bit = trimvalue16bit - 13;
        hircmap1 = trimvalue16bit & 0x01;
        hircmap0 = trimvalue16bit >> 1;
        set_SFRPAGE;
        TA = 0XAA;
        TA = 0X55;
        RCTRIM0 = hircmap0;
        TA = 0XAA;
        TA = 0X55;
        RCTRIM1 = hircmap1;
}

使用特权

评论回复
地板
dongliushui| | 2018-6-22 21:28 | 只看该作者
楼上的无法操作是什么概念

使用特权

评论回复
5
jekey| | 2018-6-22 21:46 | 只看该作者
dongliushui 发表于 2018-6-22 21:28
楼上的无法操作是什么概念

SPI就死掉了,发不出数据。

使用特权

评论回复
6
zhcj66|  楼主 | 2018-6-23 09:11 | 只看该作者
IoTCatcher 发表于 2018-6-22 17:19
结合寄存器数值分析, 结果应该是16M才对.
刚刚用官方样例代码测试了下, 测出频率是接近16M的, MARK一下! ...

发现串口一次接收10个数据,中间连续发送,会出现接收不到的情况,115200的波特率,应该是处理不过来的原因吧

使用特权

评论回复
7
捉虫天师| | 2018-6-23 14:53 | 只看该作者
一般51单片机都是用9600的波特率,你这也太高了。

使用特权

评论回复
8
xujunyi3611| | 2018-6-24 11:55 | 只看该作者
zhcj66 发表于 2018-6-23 09:11
发现串口一次接收10个数据,中间连续发送,会出现接收不到的情况,115200的波特率,应该是处理不过来的原因吧
...

相邻两次之间必须要加延时的,不然就会发不出去了。

使用特权

评论回复
9
mintspring| | 2018-6-24 18:13 | 只看该作者
你说的管脚问题就是你的不对了,内部时钟是内部时钟,怎么可以完整的反应到IO呢,这个IO要受到这个时钟的驱动,不可能1个时钟就驱动完成了吧。

使用特权

评论回复
10
598330983| | 2018-6-24 19:58 | 只看该作者
你算数据通信还这么考虑速度就错了,那经过多个操作实现的,本身就耗费好几个周期了。

使用特权

评论回复
11
zhcj66|  楼主 | 2018-6-27 14:30 | 只看该作者
598330983 发表于 2018-6-24 19:58
你算数据通信还这么考虑速度就错了,那经过多个操作实现的,本身就耗费好几个周期了。 ...

我还以为是直连呢

使用特权

评论回复
12
xiaoqizi| | 2018-6-27 14:55 | 只看该作者
说明还是寄存器操作的问题啊

使用特权

评论回复
13
zhcj66|  楼主 | 2018-7-23 21:28 | 只看该作者
xujunyi3611 发表于 2018-6-24 11:55
相邻两次之间必须要加延时的,不然就会发不出去了。

看来这个芯片还不够强大啊

使用特权

评论回复
14
wangshujun| | 2018-7-25 13:11 | 只看该作者
jekey 发表于 2018-6-22 20:39
在16MHz,操作spi,字符间隔2us左右。
遇到过标定频率到16.6MHz后,SPI无法操作的问题,有人帮助验证下这个 ...

问题出在这一句set_SFRPAGE
切换了寄存器页,没有切回来,在其他坛子上回复过了。
这里没有合理的收尾

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

104

帖子

1

粉丝