我使用5V的sst单片机和3.3V的某型号芯片通讯(spi串行),软件使用厂家的驱动程序,但传输数据不稳定
5V转3.3V是使用74lvc244ad的,但实际调试发现平均5次操作才有一次是正确的读写,在芯片的输入端我加了上拉电阻了。而且有多次的读操作发现读取的数据后移了一位,即...
5V转3.3V是使用74lvc244ad的,但实际调试发现平均5次操作才有一次是正确的读写,在芯片的输入端我加了上拉电阻了。而且有多次的读操作发现读取的数据后移了一位,即前面一位丢失了。这种问题该如何解决,使数据传输更稳定?因为在做项目,所以比较急,请高人指点指点。
展开
4个回答
展开全部
而且有多次的读操作发现读取的数据后移了一位,即前面一位丢失了。
从你这句很可能是你的格式不对! 调试时先用底速,不要有中断干扰! 其实3.3V的MCU的IO可以与5V的IC直连! 我是这样做的, 没什么问题, 只要没足高电平的最小触发电压就可以了! 只要你的MCU IO支持5V的就行了! 如NXP STM STC AVR的都有支持的! 如果要转换,用三极管是就简单而实用的方法了. 你这用5V的74LS244 就好了,参数表写只要2V输入就有高电平输出了, 但实际上有1V输入都有高电平输出了! 如果用74lvc244ad-3.3V电源,你要看5V的元件的输入要求了!
从你这句很可能是你的格式不对! 调试时先用底速,不要有中断干扰! 其实3.3V的MCU的IO可以与5V的IC直连! 我是这样做的, 没什么问题, 只要没足高电平的最小触发电压就可以了! 只要你的MCU IO支持5V的就行了! 如NXP STM STC AVR的都有支持的! 如果要转换,用三极管是就简单而实用的方法了. 你这用5V的74LS244 就好了,参数表写只要2V输入就有高电平输出了, 但实际上有1V输入都有高电平输出了! 如果用74lvc244ad-3.3V电源,你要看5V的元件的输入要求了!
展开全部
像SPI这种总线操作,它的读写时基不一样吧,分有上升沿与下降沿。还有就是读取操作时你要读回或写入数据的移位操作一般都在时钟跳变中移位。我猜你大概数据没有移位8次,少了一次吧。你只要严格按照spi操作时序写程序即可。。。。希望对你有启发
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我做的项目也存在电平转换的问题,是关于SPI串口时钟电平的问题。从3.3V转换成5V,我利用两个三极管解决了,程序运行正常。不知道你的是不是和我的一致。 你的单片机没有SPI接口吗?难道还要模拟时序实现? 没有明白你的问题,可以找我聊下。
追问
我的单片机也有SPI接口,不过对应的IO口已经有其他用途了,只好用其他IO口来模拟SPI串口通信。我遇到的问题也是电平转换问题吧,请问你从3.3V转换为5V的那个电路是怎么接的?请不吝指教,谢谢!
追答
两个三极管S8050,在时钟大概为1M左右时,我的输出波形还不错。很简单的电路,你试试看。VA = +5V
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
您好,这样的情况建议您可以升级到最新版本试一下,或是联系一下官网客服比较好。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询