From 6aa264ef83c6683ad59f91a93965fe7015ebc21c Mon Sep 17 00:00:00 2001 From: deadprogram Date: Wed, 15 Jul 2020 20:48:41 +0200 Subject: [PATCH] all: changeover to eliminate all direct use of master/slave terminology Signed-off-by: deadprogram --- CONTRIBUTING.md | 2 +- apa102/apa102.go | 4 +- apa102/softspi.go | 16 +-- examples/amg88xx/main.go | 4 +- examples/flash/console/spi/main.go | 6 +- examples/ili9341/basic/wioterminal.go | 4 +- .../ili9341/pyportal_boing/wioterminal.go | 4 +- examples/ili9341/scroll/wioterminal.go | 4 +- examples/wifinina/mqttclient/main.go | 4 +- examples/wifinina/mqttsub/main.go | 4 +- examples/wifinina/ntpclient/main.go | 4 +- examples/wifinina/tcpclient/main.go | 4 +- examples/wifinina/udpstation/main.go | 4 +- examples/wifinina/webclient/main.go | 4 +- flash/transport_spi.go | 26 ++-- mpu6050/registers.go | 10 +- wifinina/wifinina.go | 126 +++++++++--------- 17 files changed, 115 insertions(+), 115 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ce04abc3e..6d776486c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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: diff --git a/apa102/apa102.go b/apa102/apa102.go index 7a86fd4e3..cc3bcdafb 100644 --- a/apa102/apa102.go +++ b/apa102/apa102.go @@ -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. diff --git a/apa102/softspi.go b/apa102/softspi.go index 0a8f4add0..89e8a8587 100644 --- a/apa102/softspi.go +++ b/apa102/softspi.go @@ -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() } diff --git a/examples/amg88xx/main.go b/examples/amg88xx/main.go index 0b2f3d3e8..65f715822 100644 --- a/examples/amg88xx/main.go +++ b/examples/amg88xx/main.go @@ -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}) diff --git a/examples/flash/console/spi/main.go b/examples/flash/console/spi/main.go index b2e0bb1cd..21e088d64 100644 --- a/examples/flash/console/spi/main.go +++ b/examples/flash/console/spi/main.go @@ -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, ), diff --git a/examples/ili9341/basic/wioterminal.go b/examples/ili9341/basic/wioterminal.go index a7cd96b64..4c33b87b1 100644 --- a/examples/ili9341/basic/wioterminal.go +++ b/examples/ili9341/basic/wioterminal.go @@ -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, }) } diff --git a/examples/ili9341/pyportal_boing/wioterminal.go b/examples/ili9341/pyportal_boing/wioterminal.go index a7cd96b64..4c33b87b1 100644 --- a/examples/ili9341/pyportal_boing/wioterminal.go +++ b/examples/ili9341/pyportal_boing/wioterminal.go @@ -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, }) } diff --git a/examples/ili9341/scroll/wioterminal.go b/examples/ili9341/scroll/wioterminal.go index a7cd96b64..4c33b87b1 100644 --- a/examples/ili9341/scroll/wioterminal.go +++ b/examples/ili9341/scroll/wioterminal.go @@ -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, }) } diff --git a/examples/wifinina/mqttclient/main.go b/examples/wifinina/mqttclient/main.go index f99c60536..025ab4b89 100644 --- a/examples/wifinina/mqttclient/main.go +++ b/examples/wifinina/mqttclient/main.go @@ -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, }) diff --git a/examples/wifinina/mqttsub/main.go b/examples/wifinina/mqttsub/main.go index fc988e026..e3c78cf02 100644 --- a/examples/wifinina/mqttsub/main.go +++ b/examples/wifinina/mqttsub/main.go @@ -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, }) diff --git a/examples/wifinina/ntpclient/main.go b/examples/wifinina/ntpclient/main.go index 37d401b1e..432b69c4f 100644 --- a/examples/wifinina/ntpclient/main.go +++ b/examples/wifinina/ntpclient/main.go @@ -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() diff --git a/examples/wifinina/tcpclient/main.go b/examples/wifinina/tcpclient/main.go index 82db1b437..46188bee3 100644 --- a/examples/wifinina/tcpclient/main.go +++ b/examples/wifinina/tcpclient/main.go @@ -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, }) diff --git a/examples/wifinina/udpstation/main.go b/examples/wifinina/udpstation/main.go index ee7ede52b..4c645f746 100644 --- a/examples/wifinina/udpstation/main.go +++ b/examples/wifinina/udpstation/main.go @@ -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() diff --git a/examples/wifinina/webclient/main.go b/examples/wifinina/webclient/main.go index 051d687a4..afc9b9f95 100644 --- a/examples/wifinina/webclient/main.go +++ b/examples/wifinina/webclient/main.go @@ -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, }) diff --git a/flash/transport_spi.go b/flash/transport_spi.go index 2da3d5550..2055ccf8d 100644 --- a/flash/transport_spi.go +++ b/flash/transport_spi.go @@ -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, diff --git a/mpu6050/registers.go b/mpu6050/registers.go index dd487af5e..1206002e9 100644 --- a/mpu6050/registers.go +++ b/mpu6050/registers.go @@ -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 diff --git a/wifinina/wifinina.go b/wifinina/wifinina.go index b82ac32a9..93d573aee 100644 --- a/wifinina/wifinina.go +++ b/wifinina/wifinina.go @@ -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() }