牛卧堂MCU技术交流

标题: 请问M467系列的MCU,使用EBI总线,只有3个nCS,如何使用 [打印本页]

作者: 匿名    时间: 2025-4-2 19:44
标题: 请问M467系列的MCU,使用EBI总线,只有3个nCS,如何使用
请问M467系列的MCU,使用EBI总线,只有3个nCS,如何使用,例如连接4片AD7606的片选,这样该如何操作?是否可以讲解一下?

作者: chrishu    时间: 2025-4-3 11:09
本帖最后由 chrishu 于 2025-4-3 11:11 编辑

EBI是有3个bank,分别对应三个nCS.可以直接接三个设备。也可以实现几个设备平分bank0(或bank1、bank2)的空间
将高3位地址作为三八译码器的输入,CS0作为三八译码器的片选,将38译码器的输出作为实际设备的片选信号


作者: 匿名    时间: 2025-4-3 11:40
谢谢!这里可以详细的指点一下吗?
例如,我之前做的设计,接了3片AD7606,读取的数据是这样的:

            for(int i = 0; i < 8; i++)
            {
                ADdat0[i] = EBI0_READ_DATA16(0);
            }

            for(int i = 0; i < 8; i++)
            {
                ADdat1[i] = EBI1_READ_DATA16(0);
            }

            for(int i = 0; i < 8; i++)
            {
                ADdat2[i] = EBI2_READ_DATA16(0);
            }

正好是对应了3个EBI0,1,2;现在我想获取更多的通道的话,您说的译码器,是将3个CS做成3-8译码器,做成8个片选吗?
那这样的话,读取数据应该怎么做呢?
谢谢!


作者: chrishu    时间: 2025-4-7 13:33
本帖最后由 chrishu 于 2025-4-7 13:36 编辑
游客 36.143.218.x 发表于 2025-4-3 11:40
谢谢!这里可以详细的指点一下吗?
例如,我之前做的设计,接了3片AD7606,读取的数据是这样的:

EBI有3个BANK,每个bank对应1M的地址空间,每个bank有一个片选信号。
如果设备超过3个。可以用一个bank接几个设备,以bank0为例
1、可以把地址线高三位最为三八译码器的输入,CS0作为三八译码器的片选信号
2、当片选信号选中CS0时,三根地址线A19/A18/117输入的数据从0~7分别对应译码器输出线Y0~7分别为0(假如低电平有效)。这个输出信号可以作为设备的片选信号。
3、这个时候操作bank0的对应地址,就能操作对应的设备。
    比如操作地址0x01,实际就是对应三八译码器Y0选中的设备的0x01地址
    操作地址0x40001,实际就是操作三八译码器Y1选中的设备的0x01地址






欢迎光临 牛卧堂MCU技术交流 (http://www.nuvoton-mcu.com/) Powered by Discuz! X3.2