一次性搞清楚C8051的交叉开关

        此文章可以帮助初次使用C8051的读者对交叉开关有一个明确的认识。

        C8051系列的交叉开关对于没用过这种单片机的用户来说不是很友好,但是对于实际开发好处挺多的。 新用户容易迷糊,确定不下来也不敢乱做板子,怕板子做出来后,软件对引脚配置失败,所以这篇文章可以让你对于一部分引脚配置有一个清晰的认识。(挂图太麻烦,无图,需要一字字的看,如何一步步通过改变交叉开关和引脚配置使FLASH正常通讯)  有点绕,但看懂了,可以免除初学者自己亲自再测试。

        初始配置:不外接晶振,使用片内振荡器。

        使用串口功能,P0.4--TXD,P0.5--RXD

        W25Q64使用硬件SPI,接线为  P0.0--SCK,P0.1--MISO,P0.2--MOSI,P0.3--NSS

1、在初始引脚配置下,不要打开片外晶振,使用片内振荡;打开串口功能,XBR0中串口引脚连接上,SPI的4线引脚设置为数字模式,除MISO设置为开漏外,其他设置为推挽。测试读写FLASH可以成功。

2、在1测试成功的前提下,将P0.2设置跳过,即P0SKIP |= 1<<2;然后测试,无法正常读取FLASH。

3、在2失败的基础上,将P0.2不接,改为 P0.3--MOSI,P0.6--NSS,测试能够读写FLASH成功。(不使用P0.4、P0.5是因为串口已经占用了)

4、在1成功的基础上,将P0.2、P0.3都设置跳过,即P0SKIP |= 1<<2;P0SKIP |= 1<<3;然后测试,肯定不能正常通讯,只有将P0.6--MOSI,P0.7--NSS按如此连接,并设置相应引脚为推挽,才能继续正常读写FLASH。

5、在4已经成功的基础上,关闭UART功能,即XBR0的bit0设置为0,而接线依旧按P0.6--MOSI,P0.7--NSS如此连接,则无法正常读写FLASH。

6、在5的基础上,只有将接线改为P0.4--MOSI,P0.5--NSS,并设置相应引脚为推挽,才能继续正常读写FLASH。

7、如果在6已经改线完成并且测试读写成功的前提下,又手贱将P0.4故意进行了交叉开关跳过,即P0SKIP |= 1<<4,则此连接也不能再正常通信了,需要更改连接为P0.5--MOSI,P0.6--NSS,并设置相应的推挽方式,才能继续进行正常读写FLASH。

8、在1测试正常的基础上(即最初始的硬件状态),将外部晶振和电容都焊接上,并且软件中使用外部晶振,则P0.0--SCK,P0.1--MISO,P0.2--MOSI,P0.3--NSS的接线方式无法让FLASH正常通讯,因为P0.2、P0.3已经被外部晶振占用了。

9、经过测试,8的情况,即便焊上了外部晶振和电容,如果关闭外部晶振,只使用内部振荡,SPI依旧能让FLASH正常通讯。(只是测试,实际使用时肯定不能这样用)

10、8中的不能正常通讯的情况,只有将引脚设置为P0.6--MOSI,P0.7--NSS,并设置相应引脚为推挽,才能继续正常读写FLASH。

所以,经过以上多次测试,不要被数据手册中的紫色斜坡未覆盖的位置所吓到,测试发现可以使用未被紫色覆盖的位置,只要前面交叉开关的设置逻辑条理清晰即可。

        

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值