你的这个时序图上,SDIO_0和SDIO_1数据是位交替存在的,SPORT虽然有两个数据接口,但传输方式并不是这种位交错传输,而是数据字交错传输,不知道你直接用SPORT口传输数据是否可行。
假设可行,因为你的传输字节的宽度不断的变化,8bit到32bit,若采用32bit方式传输8bit的数据,会产生很多冗余时钟,若你的设备不能接受这些冗余时钟,你在发送数据时,必须根据数据的实际宽度,不断的改变SPORT传输数据的宽度。
至于传输的数据是分两组还是放在一组,因为你的指令周期是8位的,所以建议你单独放在一组里面,至于数据,因为宽度不同,你可以在传输数据前判断数据宽度,然后配置相应的SPORT传输宽度,再使能DMA,最好做个变量记录当前DMA传输的地址,或者记录下当前传输的数组的地址,方便下次传输时,重新配置ADDR。
只要时序满足设备要求,到底是把数据放在一起传输还是分成几个部分传输都可以。前提是你的传输时序一定要满足设备要求。