ch375单片机系统设计求助

想这样设计一块pcb:两块51单片机共用一组数据总线和地址总线(就是两片单片机的 D0-D7 A0-A15重合),分别连接两片ch375,靠译码器选通不同的ch375芯片,功能是从一个usb口德设备读出数据传送到另一个usb口,比如两个u盘之间数据传送,软件上就是一个usb的设备数据写到扩展的外部ram,然后等待,另一片单片机控制的usb设备将ram的数据读出。 这样的设计思路可不可以?求指点

两片单片机操作同一块外部ram


pcb已经画好了,就是想过来问问这样设计会不会有什么问题


为什么用两个单片机呢?一片就完全可以完成了


1、是想实现2个USB设备间的数据转存么?若是,没必要使用2个单片机,一个单片机可以同时控制2片CH375 2、按现在硬件设计,2个单片机不可以同时访问总线,需要进行同步,软件上会复杂许多 另,操作2个设备,可以采用一片CH374G/U就够了


是这样的 我还要扩展其他设备 键盘什么的 io口可能不够用 所以干脆想用两片单片机

第二片的任务很简单:就是第一片读出数据到ram之后等待第二片单片机的信号,第二片单片机控制读取ram数据到另一设备,这样应该不会同时访问总线吧?


ch374不熟悉,一直用的ch375,若果这样可行的话我就不想再改了,两片单片机除地址总线数据总线之外还有WR和RD信号线复用,另外p1的两个口线作为两片的握手信号,第二片单片机只用于读写外部ram与所控制的usb设备,期间第一片单片机处于等待状态


如果一片单片机来设计的话,因为我用的是下载的程序库,不知道两片ch375该怎么切换,程序库里地址是开始就设定好的: #define CH375_CMD_PORT_ADDR 0x9FF1 /* CH375命令端口的I/O地址 */ #define CH375_DAT_PORT_ADDR 0x9DF0 /* CH375数据端口的I/O地址 */


IO不够用那就用一片只做普通的IO来用,如果按照你这样设计的话恐怕总线会出现竞争情况。不稳定。 这个不是等待不等待的问题,两个MCU的总线直接连接恐怕会出现干扰。


要不这样我加个开关 打开就两片分别控制两个ch375 关闭就一片控制两片ch375


关键是一片单片机控制两片ch375,软件上该怎么切换呢,我用的子程序库,里面的子程序看不到。。。


这个略微复杂一些,先看看这个例程,用于磁盘拷贝UploadImages/20101281625017.rar


谢谢ls,看过例程了,是不是再找一个地址线和中断查询线就可以了,一片单片机操作两片375,这样我加一开关,到时候两种方法都可以调试,这样行不行?


是的,当然可以,但是不推荐这种方法来控制。具体现象需要你实验验证,如果两片控制,软件方面处理非常麻烦。而且不稳定。


嗯,我就留出接口好了,到时候不往上插第二片单片机就是了,问一下例程中包含CH375HFC.H这个库,我用CH375HF6.H代替可不可以?


不可以,LIB6是总线方式,接口程序在库里面,对2片375无法作切换,这种应用,只能用LIBC或LIB5,接口程序由应用程序提供


只有登录才能回复,可以选择微信账号登录