使用Python和SpiDev输出到NMEA设备

时间:2014-04-15 03:23:08

标签: python spi bytestring

使用spi.xfer2()功能,我想从我的覆盆子pi向NMEA格式的设备发送一个句子,它有一些连接到它的传感器用于划船目的。 以下是我想传达的句子的一般形式:

'$--VHW,,T,,M,5.0,N,10.0,K*hh'

有没有办法将此字符串转换为此函数所需的格式?我应该使用另一个函数将这些数据输出到我们的设备吗?

1 个答案:

答案 0 :(得分:0)

您需要查找传感器的接口说明。对于如何通过SPI线路进行寻址,它们将有一个非常特殊的规范。 频率,时序,极性,名称很少,然后主要是SPI寄存器格式。没有通用的解决方案。

通常,如果要传输一个有效负载字节,则通过SPI传输12或16位,其中附加位包含控制信息。

这是我如何传输到DA转换器(它是读取,而不是写入,但这并不重要):

  self.spi.cshigh=False
  self.spi.max_speed_hz=500000
  self.spi.mode=0
  self.spi.bits_per_word=8

  self.spi.open(0,0)

  for i in range(len(values)):
    xferWord = [0x01,0x80,0x00]#single ended, channel 0
    self.spi.xfer(xferWord)
    values[i]  = (0x03 & xferWord[1])<<8
    values[i] |= (0xff & xferWord[2])
    time.sleep(0.01)
  self.spi.close()