all: changeover to eliminate all direct use of master/slave terminology

Signed-off-by: deadprogram <ron@hybridgroup.com>
This commit is contained in:
deadprogram
2020-07-15 20:48:41 +02:00
committed by Ron Evans
parent de27fae9a2
commit 74c9ff4c76
17 changed files with 115 additions and 115 deletions
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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()
}
+2 -2
View File
@@ -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 -3
View File
@@ -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,
),
+2 -2
View File
@@ -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,
})
}
+2 -2
View File
@@ -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,
})
}
+2 -2
View File
@@ -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,
})
+2 -2
View File
@@ -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,
})
+2 -2
View File
@@ -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()
+2 -2
View File
@@ -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,
})
+2 -2
View File
@@ -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()
+2 -2
View File
@@ -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
View File
@@ -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,
+5 -5
View File
@@ -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
View File
@@ -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()
}