mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-07-26 10:38:41 +00:00
all: changeover to eliminate all direct use of master/slave terminology
Signed-off-by: deadprogram <ron@hybridgroup.com>
This commit is contained in:
+1
-1
@@ -20,7 +20,7 @@ Please first open a Github issue. We want to help, and also make sure that there
|
||||
|
||||
## How to use our Github repository
|
||||
|
||||
The `master` branch of this repo will always have the latest released version of the TinyGo drivers. All of the active development work for the next release will take place in the `dev` branch. The TinyGo drivers will use semantic versioning and will create a tag/release for each release.
|
||||
The `release` branch of this repo will always have the latest released version of the TinyGo drivers. All of the active development work for the next release will take place in the `dev` branch. The TinyGo drivers will use semantic versioning and will create a tag/release for each release.
|
||||
|
||||
Here is how to contribute back some code or documentation:
|
||||
|
||||
|
||||
+2
-2
@@ -42,8 +42,8 @@ func New(b SPI) Device {
|
||||
|
||||
// NewSoftwareSPI returns a new APA102 driver that will use a software based
|
||||
// implementation of the SPI protocol.
|
||||
func NewSoftwareSPI(sckPin, mosiPin machine.Pin, delay uint32) Device {
|
||||
return New(&bbSPI{SCK: sckPin, MOSI: mosiPin, Delay: delay})
|
||||
func NewSoftwareSPI(sckPin, sdoPin machine.Pin, delay uint32) Device {
|
||||
return New(&bbSPI{SCK: sckPin, SDO: sdoPin, Delay: delay})
|
||||
}
|
||||
|
||||
// WriteColors writes the given RGBA color slice out using the APA102 protocol.
|
||||
|
||||
+8
-8
@@ -9,16 +9,16 @@ import "machine"
|
||||
// this more generic and include it in the TinyGo "machine" package instead.
|
||||
type bbSPI struct {
|
||||
SCK machine.Pin
|
||||
MOSI machine.Pin
|
||||
SDO machine.Pin
|
||||
Delay uint32
|
||||
}
|
||||
|
||||
// Configure sets up the SCK and MOSI pins as outputs and sets them low
|
||||
// Configure sets up the SCK and SDO pins as outputs and sets them low
|
||||
func (s *bbSPI) Configure() {
|
||||
s.SCK.Configure(machine.PinConfig{Mode: machine.PinOutput})
|
||||
s.MOSI.Configure(machine.PinConfig{Mode: machine.PinOutput})
|
||||
s.SDO.Configure(machine.PinConfig{Mode: machine.PinOutput})
|
||||
s.SCK.Low()
|
||||
s.MOSI.Low()
|
||||
s.SDO.Low()
|
||||
if s.Delay == 0 {
|
||||
s.Delay = 1
|
||||
}
|
||||
@@ -50,11 +50,11 @@ func (s *bbSPI) Transfer(b byte) (byte, error) {
|
||||
s.SCK.High()
|
||||
s.delay()
|
||||
|
||||
// write the value to MOSI (MSB first)
|
||||
// write the value to SDO (MSB first)
|
||||
if b&(1<<(7-i)) == 0 {
|
||||
s.MOSI.Low()
|
||||
s.SDO.Low()
|
||||
} else {
|
||||
s.MOSI.High()
|
||||
s.SDO.High()
|
||||
}
|
||||
s.delay()
|
||||
|
||||
@@ -62,7 +62,7 @@ func (s *bbSPI) Transfer(b byte) (byte, error) {
|
||||
s.SCK.Low()
|
||||
s.delay()
|
||||
|
||||
// for actual SPI would try to read the MISO value here
|
||||
// for actual SPI would try to read the SDI value here
|
||||
s.delay()
|
||||
}
|
||||
|
||||
|
||||
@@ -13,8 +13,8 @@ func main() {
|
||||
|
||||
machine.SPI1.Configure(machine.SPIConfig{
|
||||
SCK: machine.SPI1_SCK_PIN,
|
||||
MOSI: machine.SPI1_MOSI_PIN,
|
||||
MISO: machine.SPI1_MISO_PIN,
|
||||
SDO: machine.SPI1_SDO_PIN,
|
||||
SDI: machine.SPI1_SDI_PIN,
|
||||
Frequency: 8000000,
|
||||
})
|
||||
machine.I2C0.Configure(machine.I2CConfig{SCL: machine.SCL_PIN, SDA: machine.SDA_PIN})
|
||||
|
||||
@@ -3,7 +3,7 @@ package main
|
||||
import (
|
||||
"machine"
|
||||
|
||||
"tinygo.org/x/drivers/examples/flash/console"
|
||||
console_example "tinygo.org/x/drivers/examples/flash/console"
|
||||
"tinygo.org/x/drivers/flash"
|
||||
)
|
||||
|
||||
@@ -11,8 +11,8 @@ func main() {
|
||||
console_example.RunFor(
|
||||
flash.NewSPI(
|
||||
&machine.SPI1,
|
||||
machine.SPI1_MOSI_PIN,
|
||||
machine.SPI1_MISO_PIN,
|
||||
machine.SPI1_SDO_PIN,
|
||||
machine.SPI1_SDI_PIN,
|
||||
machine.SPI1_SCK_PIN,
|
||||
machine.SPI1_CS_PIN,
|
||||
),
|
||||
|
||||
@@ -22,8 +22,8 @@ var (
|
||||
func init() {
|
||||
machine.SPI3.Configure(machine.SPIConfig{
|
||||
SCK: machine.LCD_SCK_PIN,
|
||||
MOSI: machine.LCD_MOSI_PIN,
|
||||
MISO: machine.LCD_MISO_PIN,
|
||||
SDO: machine.LCD_SDO_PIN,
|
||||
SDI: machine.LCD_SDI_PIN,
|
||||
Frequency: 40000000,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -22,8 +22,8 @@ var (
|
||||
func init() {
|
||||
machine.SPI3.Configure(machine.SPIConfig{
|
||||
SCK: machine.LCD_SCK_PIN,
|
||||
MOSI: machine.LCD_MOSI_PIN,
|
||||
MISO: machine.LCD_MISO_PIN,
|
||||
SDO: machine.LCD_SDO_PIN,
|
||||
SDI: machine.LCD_SDI_PIN,
|
||||
Frequency: 40000000,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -22,8 +22,8 @@ var (
|
||||
func init() {
|
||||
machine.SPI3.Configure(machine.SPIConfig{
|
||||
SCK: machine.LCD_SCK_PIN,
|
||||
MOSI: machine.LCD_MOSI_PIN,
|
||||
MISO: machine.LCD_MISO_PIN,
|
||||
SDO: machine.LCD_SDO_PIN,
|
||||
SDI: machine.LCD_SDI_PIN,
|
||||
Frequency: 40000000,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -62,8 +62,8 @@ func main() {
|
||||
// Configure SPI for 8Mhz, Mode 0, MSB First
|
||||
spi.Configure(machine.SPIConfig{
|
||||
Frequency: 8 * 1e6,
|
||||
MOSI: machine.NINA_MOSI,
|
||||
MISO: machine.NINA_MISO,
|
||||
SDO: machine.NINA_SDO,
|
||||
SDI: machine.NINA_SDI,
|
||||
SCK: machine.NINA_SCK,
|
||||
})
|
||||
|
||||
|
||||
@@ -69,8 +69,8 @@ func main() {
|
||||
// Configure SPI for 8Mhz, Mode 0, MSB First
|
||||
spi.Configure(machine.SPIConfig{
|
||||
Frequency: 8 * 1e6,
|
||||
MOSI: machine.NINA_MOSI,
|
||||
MISO: machine.NINA_MISO,
|
||||
SDO: machine.NINA_SDO,
|
||||
SDI: machine.NINA_SDI,
|
||||
SCK: machine.NINA_SCK,
|
||||
})
|
||||
|
||||
|
||||
@@ -46,8 +46,8 @@ func main() {
|
||||
// Configure SPI for 8Mhz, Mode 0, MSB First
|
||||
machine.NINA_SPI.Configure(machine.SPIConfig{
|
||||
Frequency: 8 * 1e6,
|
||||
MOSI: machine.NINA_MOSI,
|
||||
MISO: machine.NINA_MISO,
|
||||
SDO: machine.NINA_SDO,
|
||||
SDI: machine.NINA_SDI,
|
||||
SCK: machine.NINA_SCK,
|
||||
})
|
||||
adaptor.Configure()
|
||||
|
||||
@@ -55,8 +55,8 @@ func main() {
|
||||
// Configure SPI for 8Mhz, Mode 0, MSB First
|
||||
spi.Configure(machine.SPIConfig{
|
||||
Frequency: 8 * 1e6,
|
||||
MOSI: machine.NINA_MOSI,
|
||||
MISO: machine.NINA_MISO,
|
||||
SDO: machine.NINA_SDO,
|
||||
SDI: machine.NINA_SDI,
|
||||
SCK: machine.NINA_SCK,
|
||||
})
|
||||
|
||||
|
||||
@@ -43,8 +43,8 @@ func main() {
|
||||
// Configure SPI for 8Mhz, Mode 0, MSB First
|
||||
machine.NINA_SPI.Configure(machine.SPIConfig{
|
||||
Frequency: 8 * 1e6,
|
||||
MOSI: machine.NINA_MOSI,
|
||||
MISO: machine.NINA_MISO,
|
||||
SDO: machine.NINA_SDO,
|
||||
SDI: machine.NINA_SDI,
|
||||
SCK: machine.NINA_SCK,
|
||||
})
|
||||
adaptor.Configure()
|
||||
|
||||
@@ -56,8 +56,8 @@ func main() {
|
||||
// Configure SPI for 8Mhz, Mode 0, MSB First
|
||||
spi.Configure(machine.SPIConfig{
|
||||
Frequency: 8 * 1e6,
|
||||
MOSI: machine.NINA_MOSI,
|
||||
MISO: machine.NINA_MISO,
|
||||
SDO: machine.NINA_SDO,
|
||||
SDI: machine.NINA_SDI,
|
||||
SCK: machine.NINA_SCK,
|
||||
})
|
||||
|
||||
|
||||
+13
-13
@@ -16,24 +16,24 @@ type transport interface {
|
||||
|
||||
// NewSPI returns a pointer to a flash device that uses a SPI peripheral to
|
||||
// communicate with a serial memory chip.
|
||||
func NewSPI(spi *machine.SPI, mosi, miso, sck, cs machine.Pin) *Device {
|
||||
func NewSPI(spi *machine.SPI, sdo, sdi, sck, cs machine.Pin) *Device {
|
||||
return &Device{
|
||||
trans: &spiTransport{
|
||||
spi: spi,
|
||||
mosi: mosi,
|
||||
miso: miso,
|
||||
sck: sck,
|
||||
ss: cs,
|
||||
spi: spi,
|
||||
sdo: sdo,
|
||||
sdi: sdi,
|
||||
sck: sck,
|
||||
ss: cs,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
type spiTransport struct {
|
||||
spi *machine.SPI
|
||||
mosi machine.Pin
|
||||
miso machine.Pin
|
||||
sck machine.Pin
|
||||
ss machine.Pin
|
||||
spi *machine.SPI
|
||||
sdo machine.Pin
|
||||
sdi machine.Pin
|
||||
sck machine.Pin
|
||||
ss machine.Pin
|
||||
}
|
||||
|
||||
func (tr *spiTransport) configure(config *DeviceConfig) {
|
||||
@@ -53,8 +53,8 @@ func (tr *spiTransport) setClockSpeed(hz uint32) error {
|
||||
}
|
||||
tr.spi.Configure(machine.SPIConfig{
|
||||
Frequency: hz,
|
||||
MISO: tr.miso,
|
||||
MOSI: tr.mosi,
|
||||
SDI: tr.sdi,
|
||||
SDO: tr.sdo,
|
||||
SCK: tr.sck,
|
||||
LSBFirst: false,
|
||||
Mode: 0,
|
||||
|
||||
@@ -91,11 +91,11 @@ const (
|
||||
EXT_SENS_DATA_22 = 0x5F
|
||||
EXT_SENS_DATA_23 = 0x60
|
||||
|
||||
// I2C slave data out
|
||||
I2C_SLV0_DO = 0x63
|
||||
I2C_SLV1_DO = 0x64
|
||||
I2C_SLV2_DO = 0x65
|
||||
I2C_SLV3_DO = 0x66
|
||||
// I2C peripheral data out
|
||||
I2C_PER0_DO = 0x63
|
||||
I2C_PER1_DO = 0x64
|
||||
I2C_PER2_DO = 0x65
|
||||
I2C_PER3_DO = 0x66
|
||||
I2C_MST_DELAY_CT = 0x67
|
||||
|
||||
SIGNAL_PATH_RES = 0x68 // Signal path reset
|
||||
|
||||
+63
-63
@@ -134,23 +134,23 @@ const (
|
||||
CmdSetDigitalWrite = 0x51
|
||||
CmdSetAnalogWrite = 0x52
|
||||
|
||||
ErrTimeoutSlaveReady Error = 0x01
|
||||
ErrTimeoutSlaveSelect Error = 0x02
|
||||
ErrCheckStartCmd Error = 0x03
|
||||
ErrWaitRsp Error = 0x04
|
||||
ErrUnexpectedLength Error = 0xE0
|
||||
ErrNoParamsReturned Error = 0xE1
|
||||
ErrIncorrectSentinel Error = 0xE2
|
||||
ErrCmdErrorReceived Error = 0xEF
|
||||
ErrNotImplemented Error = 0xF0
|
||||
ErrUnknownHost Error = 0xF1
|
||||
ErrSocketAlreadySet Error = 0xF2
|
||||
ErrConnectionTimeout Error = 0xF3
|
||||
ErrNoData Error = 0xF4
|
||||
ErrDataNotWritten Error = 0xF5
|
||||
ErrCheckDataError Error = 0xF6
|
||||
ErrBufferTooSmall Error = 0xF7
|
||||
ErrNoSocketAvail Error = 0xFF
|
||||
ErrTimeoutChipReady Error = 0x01
|
||||
ErrTimeoutChipSelect Error = 0x02
|
||||
ErrCheckStartCmd Error = 0x03
|
||||
ErrWaitRsp Error = 0x04
|
||||
ErrUnexpectedLength Error = 0xE0
|
||||
ErrNoParamsReturned Error = 0xE1
|
||||
ErrIncorrectSentinel Error = 0xE2
|
||||
ErrCmdErrorReceived Error = 0xEF
|
||||
ErrNotImplemented Error = 0xF0
|
||||
ErrUnknownHost Error = 0xF1
|
||||
ErrSocketAlreadySet Error = 0xF2
|
||||
ErrConnectionTimeout Error = 0xF3
|
||||
ErrNoData Error = 0xF4
|
||||
ErrDataNotWritten Error = 0xF5
|
||||
ErrCheckDataError Error = 0xF6
|
||||
ErrBufferTooSmall Error = 0xF7
|
||||
ErrNoSocketAvail Error = 0xFF
|
||||
|
||||
NoSocketAvail uint8 = 0xFF
|
||||
)
|
||||
@@ -296,8 +296,8 @@ func (d *Device) StartClient(addr uint32, port uint16, sock uint8, mode uint8) e
|
||||
println("[StartClient] called StartClient()\r")
|
||||
fmt.Printf("[StartClient] addr: % 02X, port: %d, sock: %d\r\n", addr, port, sock)
|
||||
}
|
||||
if err := d.waitForSlaveSelect(); err != nil {
|
||||
d.spiSlaveDeselect()
|
||||
if err := d.waitForChipSelect(); err != nil {
|
||||
d.spiChipDeselect()
|
||||
return err
|
||||
}
|
||||
l := d.sendCmd(CmdStartClientTCP, 4)
|
||||
@@ -306,7 +306,7 @@ func (d *Device) StartClient(addr uint32, port uint16, sock uint8, mode uint8) e
|
||||
l += d.sendParam8(sock, false)
|
||||
l += d.sendParam8(mode, true)
|
||||
d.addPadding(l)
|
||||
d.spiSlaveDeselect()
|
||||
d.spiChipDeselect()
|
||||
_, err := d.waitRspCmd1(CmdStartClientTCP)
|
||||
return err
|
||||
}
|
||||
@@ -320,15 +320,15 @@ func (d *Device) GetClientState(sock uint8) (uint8, error) {
|
||||
}
|
||||
|
||||
func (d *Device) SendData(buf []byte, sock uint8) (uint16, error) {
|
||||
if err := d.waitForSlaveSelect(); err != nil {
|
||||
d.spiSlaveDeselect()
|
||||
if err := d.waitForChipSelect(); err != nil {
|
||||
d.spiChipDeselect()
|
||||
return 0, err
|
||||
}
|
||||
l := d.sendCmd(CmdSendDataTCP, 2)
|
||||
l += d.sendParamBuf([]byte{sock}, false)
|
||||
l += d.sendParamBuf(buf, true)
|
||||
d.addPadding(l)
|
||||
d.spiSlaveDeselect()
|
||||
d.spiChipDeselect()
|
||||
return d.getUint16(d.waitRspCmd1(CmdSendDataTCP))
|
||||
}
|
||||
|
||||
@@ -348,8 +348,8 @@ func (d *Device) CheckDataSent(sock uint8) (bool, error) {
|
||||
}
|
||||
|
||||
func (d *Device) GetDataBuf(sock uint8, buf []byte) (int, error) {
|
||||
if err := d.waitForSlaveSelect(); err != nil {
|
||||
d.spiSlaveDeselect()
|
||||
if err := d.waitForChipSelect(); err != nil {
|
||||
d.spiChipDeselect()
|
||||
return 0, err
|
||||
}
|
||||
p := uint16(len(buf))
|
||||
@@ -357,13 +357,13 @@ func (d *Device) GetDataBuf(sock uint8, buf []byte) (int, error) {
|
||||
l += d.sendParamBuf([]byte{sock}, false)
|
||||
l += d.sendParamBuf([]byte{uint8(p & 0x00FF), uint8((p) >> 8)}, true)
|
||||
d.addPadding(l)
|
||||
d.spiSlaveDeselect()
|
||||
if err := d.waitForSlaveSelect(); err != nil {
|
||||
d.spiSlaveDeselect()
|
||||
d.spiChipDeselect()
|
||||
if err := d.waitForChipSelect(); err != nil {
|
||||
d.spiChipDeselect()
|
||||
return 0, err
|
||||
}
|
||||
n, err := d.waitRspBuf16(CmdGetDatabufTCP, buf)
|
||||
d.spiSlaveDeselect()
|
||||
d.spiChipDeselect()
|
||||
return int(n), err
|
||||
}
|
||||
|
||||
@@ -376,8 +376,8 @@ func (d *Device) StopClient(sock uint8) error {
|
||||
}
|
||||
|
||||
func (d *Device) StartServer(port uint16, sock uint8, mode uint8) error {
|
||||
if err := d.waitForSlaveSelect(); err != nil {
|
||||
d.spiSlaveDeselect()
|
||||
if err := d.waitForChipSelect(); err != nil {
|
||||
d.spiChipDeselect()
|
||||
return err
|
||||
}
|
||||
l := d.sendCmd(CmdStartServerTCP, 3)
|
||||
@@ -385,36 +385,36 @@ func (d *Device) StartServer(port uint16, sock uint8, mode uint8) error {
|
||||
l += d.sendParam8(sock, false)
|
||||
l += d.sendParam8(mode, true)
|
||||
d.addPadding(l)
|
||||
d.spiSlaveDeselect()
|
||||
d.spiChipDeselect()
|
||||
_, err := d.waitRspCmd1(CmdStartClientTCP)
|
||||
return err
|
||||
}
|
||||
|
||||
// InsertDataBuf adds data to the buffer used for sending UDP data
|
||||
func (d *Device) InsertDataBuf(buf []byte, sock uint8) (bool, error) {
|
||||
if err := d.waitForSlaveSelect(); err != nil {
|
||||
d.spiSlaveDeselect()
|
||||
if err := d.waitForChipSelect(); err != nil {
|
||||
d.spiChipDeselect()
|
||||
return false, err
|
||||
}
|
||||
l := d.sendCmd(CmdInsertDataBuf, 2)
|
||||
l += d.sendParamBuf([]byte{sock}, false)
|
||||
l += d.sendParamBuf(buf, true)
|
||||
d.addPadding(l)
|
||||
d.spiSlaveDeselect()
|
||||
d.spiChipDeselect()
|
||||
n, err := d.getUint8(d.waitRspCmd1(CmdInsertDataBuf))
|
||||
return n == 1, err
|
||||
}
|
||||
|
||||
// SendUDPData sends the data previously added to the UDP buffer
|
||||
func (d *Device) SendUDPData(sock uint8) (bool, error) {
|
||||
if err := d.waitForSlaveSelect(); err != nil {
|
||||
d.spiSlaveDeselect()
|
||||
if err := d.waitForChipSelect(); err != nil {
|
||||
d.spiChipDeselect()
|
||||
return false, err
|
||||
}
|
||||
l := d.sendCmd(CmdSendDataUDP, 1)
|
||||
l += d.sendParam8(sock, true)
|
||||
d.addPadding(l)
|
||||
d.spiSlaveDeselect()
|
||||
d.spiChipDeselect()
|
||||
n, err := d.getUint8(d.waitRspCmd1(CmdSendDataUDP))
|
||||
return n == 1, err
|
||||
}
|
||||
@@ -710,8 +710,8 @@ func (d *Device) reqRspStr0(cmd uint8, sl []string) (l uint8, err error) {
|
||||
if err := d.sendCmd0(cmd); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
defer d.spiSlaveDeselect()
|
||||
if err = d.waitForSlaveSelect(); err != nil {
|
||||
defer d.spiChipDeselect()
|
||||
if err = d.waitForChipSelect(); err != nil {
|
||||
return
|
||||
}
|
||||
return d.waitRspStr(cmd, sl)
|
||||
@@ -722,16 +722,16 @@ func (d *Device) reqRspStr1(cmd uint8, data uint8, sl []string) (uint8, error) {
|
||||
if err := d.sendCmdPadded1(cmd, data); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
defer d.spiSlaveDeselect()
|
||||
if err := d.waitForSlaveSelect(); err != nil {
|
||||
defer d.spiChipDeselect()
|
||||
if err := d.waitForChipSelect(); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
return d.waitRspStr(cmd, sl)
|
||||
}
|
||||
|
||||
func (d *Device) sendCmd0(cmd uint8) error {
|
||||
defer d.spiSlaveDeselect()
|
||||
if err := d.waitForSlaveSelect(); err != nil {
|
||||
defer d.spiChipDeselect()
|
||||
if err := d.waitForChipSelect(); err != nil {
|
||||
return err
|
||||
}
|
||||
d.sendCmd(cmd, 0)
|
||||
@@ -739,8 +739,8 @@ func (d *Device) sendCmd0(cmd uint8) error {
|
||||
}
|
||||
|
||||
func (d *Device) sendCmdPadded1(cmd uint8, data uint8) error {
|
||||
defer d.spiSlaveDeselect()
|
||||
if err := d.waitForSlaveSelect(); err != nil {
|
||||
defer d.spiChipDeselect()
|
||||
if err := d.waitForChipSelect(); err != nil {
|
||||
return err
|
||||
}
|
||||
d.sendCmd(cmd, 1)
|
||||
@@ -751,8 +751,8 @@ func (d *Device) sendCmdPadded1(cmd uint8, data uint8) error {
|
||||
}
|
||||
|
||||
func (d *Device) sendCmdStr(cmd uint8, p1 string) (err error) {
|
||||
defer d.spiSlaveDeselect()
|
||||
if err := d.waitForSlaveSelect(); err != nil {
|
||||
defer d.spiChipDeselect()
|
||||
if err := d.waitForChipSelect(); err != nil {
|
||||
return err
|
||||
}
|
||||
l := d.sendCmd(cmd, 1)
|
||||
@@ -762,8 +762,8 @@ func (d *Device) sendCmdStr(cmd uint8, p1 string) (err error) {
|
||||
}
|
||||
|
||||
func (d *Device) sendCmdStr2(cmd uint8, p1 string, p2 string) (err error) {
|
||||
defer d.spiSlaveDeselect()
|
||||
if err := d.waitForSlaveSelect(); err != nil {
|
||||
defer d.spiChipDeselect()
|
||||
if err := d.waitForChipSelect(); err != nil {
|
||||
return err
|
||||
}
|
||||
l := d.sendCmd(cmd, 2)
|
||||
@@ -774,8 +774,8 @@ func (d *Device) sendCmdStr2(cmd uint8, p1 string, p2 string) (err error) {
|
||||
}
|
||||
|
||||
func (d *Device) waitRspCmd1(cmd uint8) (l uint8, err error) {
|
||||
defer d.spiSlaveDeselect()
|
||||
if err = d.waitForSlaveSelect(); err != nil {
|
||||
defer d.spiChipDeselect()
|
||||
if err = d.waitForChipSelect(); err != nil {
|
||||
return
|
||||
}
|
||||
return d.waitRspCmd(cmd, 1)
|
||||
@@ -900,29 +900,29 @@ func (d *Device) checkStartCmd() (bool, error) {
|
||||
return true, nil
|
||||
}
|
||||
|
||||
func (d *Device) waitForSlaveSelect() (err error) {
|
||||
err = d.waitForSlaveReady()
|
||||
func (d *Device) waitForChipSelect() (err error) {
|
||||
err = d.waitForChipReady()
|
||||
if err == nil {
|
||||
err = d.spiSlaveSelect()
|
||||
err = d.spiChipSelect()
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (d *Device) waitForSlaveReady() error {
|
||||
func (d *Device) waitForChipReady() error {
|
||||
if _debug {
|
||||
println("waitForSlaveReady()\r")
|
||||
println("waitForChipReady()\r")
|
||||
}
|
||||
for t := newTimer(10 * time.Second); !(d.ACK.Get() == false); {
|
||||
if t.Expired() {
|
||||
return ErrTimeoutSlaveReady
|
||||
return ErrTimeoutChipReady
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (d *Device) spiSlaveSelect() error {
|
||||
func (d *Device) spiChipSelect() error {
|
||||
if _debug {
|
||||
println("spiSlaveSelect()\r")
|
||||
println("spiChipSelect()\r")
|
||||
}
|
||||
d.CS.Low()
|
||||
for t := newTimer(5 * time.Millisecond); !t.Expired(); {
|
||||
@@ -930,12 +930,12 @@ func (d *Device) spiSlaveSelect() error {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
return ErrTimeoutSlaveSelect
|
||||
return ErrTimeoutChipSelect
|
||||
}
|
||||
|
||||
func (d *Device) spiSlaveDeselect() {
|
||||
func (d *Device) spiChipDeselect() {
|
||||
if _debug {
|
||||
println("spiSlaveDeselect\r")
|
||||
println("spiChipDeselect\r")
|
||||
}
|
||||
d.CS.High()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user