我在Linux的板子(CPU是大端模式)上通过SPI接口连接CC3100,目前在调SPI接口时遇到以下问题:
CC3100在上电后产生一个初始化完成中断,然后读取到0008 (SL_OPCODE_DEVICE_INITCOMPLETE)正常,尝试其它操作设备都没有响应,没有产生中断,读操作读到的都是无效数据。每个spi write / read操作事务都做CS拉低和释放。
请帮忙看下以下操作是否有问题,如有问题请帮忙指出,为避免大小端歧义,请在描述SPI消息时使用字节流
spi write: 56 78 87 65
spi read: ab cd dc bc 00 08 00 08 00 00 00 00 11 11 11 11 <—-这是模块上电后,初始化完毕中断 产生后读出来的数据,这个正常读取到
spi write : 12 34 43 21 84 70 00 00 <—-这个指令发出后(大小端组合都试过了,其它指令也试过了),设备没有再产生过中断,也读不到数据 (#define SL_OPCODE_DEVICE_VERSIONREADCOMMAND 0x8470)
spi write: 56 78 87 65
spi read: ff ff ff ff
spi read: ff ff ff ff
spi read: 00 00 00 00
spi read: 00 00 00 00
spi read: 00 00 00 00
spi read: 00 00 00 00
spi read: 00 00 00 00
spi read: 00 00 00 00
spi read: 00 00 00 00
xue xue1:
经验证,发现是H2N_SYNC_PATTERN和H2N_CNYS_PATTERN的配置问题
主机的CPU是大端模式,请要要怎么配置CC3100以支持大端模式,看手册里描述是支持的,但没有写要怎么配置,改了H2N_SYNC_PATTERN和H2N_CNYS_PATTERN的字节顺序没能试成功
xue xue1:
Broadcom类似的芯片有给出详细的同步字对16bit big/little endian, 32bit big/little endian的说明
CC3100能否给出同步字的详细说明
SZ1:
回复 xue xue1:
Hi Xue,
您好!对于CC3100, Host SPI MSB/LSB无需配置。它会自动检测host的大小端模式和数据格式。谢谢!