ISD4004的SPI时序

2013年05月12日 23:46    发布者:风溪香士
今天第一次调ISD4004,资料上说它用SPI总线驱动,我用STC89C52模拟SPI时序。但是SPI应该是先传输高位的,而用ISD的SPI时,先传输高位不能驱动,只有先传输低位才能驱动。想问下这是怎么回事。
模拟SPI程序如下:
unsigned char SPI_rw_byte(unsigned char dat)
{
        unsigned char i;
        sclk=0;
        for(i=0;i<8;i++)
        {
//                 dat=dat<<1;
                dat=dat>>1;
                mosi=CY;
                sclk=1;
                sclk=0;
//                 dat=dat|miso;
        }
        return dat;
}
之所以有返回值,是因为之前写这个时是同时读写的,现在不用读数据,无视掉就好了。
现在就是用 dat=dat<<1; ISD4004不能工作,而用 dat=dat>>1; ISD能工作(当然还改了包含地址的指令的传输顺序)。
希望各位指点一下。

网友评论

风溪香士 2013年05月15日
别沉了啊,大家指点一下啊。
asean 2013年05月28日
ISD4004的Datasheet里的SPI时序如附件,Datasheet里描述的MOSI的时序就是从低位开始的。
zhangtaofeng 2013年05月29日
我来支持一下,我也是初学者,等待高手早点出现咯