1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 一次性搞清楚C8051的交叉开关

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

时间:2022-03-09 11:46:40

相关推荐

一次性搞清楚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。

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。