本帖最后由 lvben5d 于 2020-5-31 21:16 编辑
最近的项目用到常规的国产433芯片,CMT2300A,其实各大厂家做的基本都这个样子。
大家看图
基本上有的433芯片提供的是SDIO口,有两种主要操作模式,直连和包模式,前者我理解收1个字节就 INT你一下,然后你得去接收1个字节,我所展示的这颗国产CMT2300A,在直连模式下,你得具备发送和接收分开的方式,引脚数占用较多。大家可以体会下
个人认为 大家使用包模式,会更符合实际,包模式不定长会多占3个字节,访问433芯片寄存器或FIFO,在相关CS后,先通过SDIO发送1个8bit的字节,然后SCLK继续给,SDIO会输出8bit的1个字节给你。 那么问题来了,如果我MOSI接这个SDIO,那我接收的MISO咋办,
如果我只MISO接SDIO读,那么前面先发送的第1个字节莫非要先IO模拟,然后再设置SPI主模式,打开MISO接收功能?
小弟,想出这么个方式,大家看看
为了让SCLK 自动发出时钟,发送MOSI读SDIO口线字节的时候,发0xff, 也就是上拉,这个时候器件要是输出高电平bit,那么SDIO总线也是高电平,MISO读取也是高,如果器件在时钟CLK推送下,输出低电平,就会拉低SDIO总线电平,由于电阻R2存在,不会让MOSI高电平直接到GND 烧毁。这样操作的好处是,降低模拟IO口,改为SPI 塞发送寄存器 查标志位和读接收寄存器一体操作。
各位觉得如何,下月出板卡再实测给大家。
|