Documentation ¶
Overview ¶
Package bitbang implements conn by banging on the bits (GPIO pins).
This is not efficient but works around broken or missing drivers.
Index ¶
- Constants
- type I2C
- type SPI
- func (s *SPI) CLK() gpio.PinOut
- func (s *SPI) CS() gpio.PinOut
- func (s *SPI) Close() error
- func (s *SPI) Connect(f physic.Frequency, mode spi.Mode, bits int) (spi.Conn, error)
- func (s *SPI) LimitSpeed(f physic.Frequency) error
- func (s *SPI) MISO() gpio.PinIn
- func (s *SPI) MOSI() gpio.PinOut
- func (s *SPI) String() string
- Bugs
Constants ¶
const SkipAddr uint16 = 0xFFFF
SkipAddr can be used to skip the address from being sent.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type I2C ¶
type I2C struct {
// contains filtered or unexported fields
}
I2C represents an I²C master implemented as bit-banging on 2 GPIO pins.
func New ¶
New returns an object that communicates I²C over two pins.
BUG(maruel): It is close to working but not yet, the signal is incorrect during ACK.
It has two special features:
- Special address SkipAddr can be used to skip the address from being communicated
- An arbitrary speed can be used
type SPI ¶
type SPI struct {
// contains filtered or unexported fields
}
SPI represents a SPI master port implemented as bit-banging on 3 or 4 GPIO pins.
func NewSPI ¶
NewSPI returns an spi.PortCloser that communicates SPI over 3 or 4 pins.
BUG(maruel): Completely untested.
cs can be nil.
func (*SPI) LimitSpeed ¶
LimitSpeed implements spi.PortCloser.
Notes ¶
Bugs ¶
It is close to working but not yet, the signal is incorrect during ACK.
It has two special features:
- Special address SkipAddr can be used to skip the address from being communicated
- An arbitrary speed can be used
Completely untested.
cs can be nil.
Implement mode (HalfDuplex and LSBFirst remain to be done).
Implement bits.
Test if read works.