我无法使用python mmap配置我的BBB for SPI。
我自己一直在使用Adafruit_BBIO.SPI(类似的方法一直在为Adafruit_BBIO.GPIO工作),而不是自己滚动设备树覆盖。这很好用,通过SPIdev,我可以发送数据。但是一旦我使用mmap到SPI_TX0,就会出现总线错误。
我可以通过将时钟域打开到SPI外设来解决总线错误:
ctrl = struct.unpack('<L', CM_PER[CM_PER_SPI0_CLKCTRL:CM_PER_SPI0_CLKCTRL+4])[0]
ctrl &= ~(0b11 << 16 | 0b11)
ctrl |= 2
CM_PER[CM_PER_SPI0_CLKCTRL:CM_PER_SPI0_CLKCTRL+4] = struct.pack('<L', ctrl)
但我不明白为什么这是必要的;不应该Adafruit_BBIO已经开启了时钟域吗?
更重要的是,SPI0 [SPI_TX0:SPI_TX0 + 4] = struct.pack('<
L',数据)是什么都不做。