@@ -318,13 +318,14 @@ static void _spi_init_direct(spi_t *obj, const spi_pinmap_t *pinmap)
318
318
319
319
// Configure the SPI pins
320
320
pin_function (pinmap -> mosi_pin , pinmap -> mosi_function );
321
- pin_mode (pinmap -> mosi_pin , PullNone );
321
+ pin_mode (pinmap -> mosi_pin , PullDown ); // Pull Down is set for output line
322
322
323
323
pin_function (pinmap -> miso_pin , pinmap -> miso_function );
324
324
pin_mode (pinmap -> miso_pin , PullNone );
325
325
326
326
pin_function (pinmap -> sclk_pin , pinmap -> sclk_function );
327
327
pin_mode (pinmap -> sclk_pin , PullNone );
328
+
328
329
spiobj -> pin_miso = pinmap -> miso_pin ;
329
330
spiobj -> pin_mosi = pinmap -> mosi_pin ;
330
331
spiobj -> pin_sclk = pinmap -> sclk_pin ;
@@ -667,16 +668,21 @@ void spi_format(spi_t *obj, int bits, int mode, int slave)
667
668
handle -> Init .NSS = (slave ) ? SPI_NSS_HARD_INPUT : SPI_NSS_HARD_OUTPUT ;
668
669
}
669
670
670
- handle -> Init .Mode = (slave ) ? SPI_MODE_SLAVE : SPI_MODE_MASTER ;
671
+ if (slave ) {
672
+ handle -> Init .Mode = SPI_MODE_SLAVE ;
671
673
672
- if (slave && (handle -> Init .Direction == SPI_DIRECTION_1LINE )) {
673
- /* SPI slave implemtation in MBED does not support the 3 wires SPI.
674
- * (e.g. when MISO is not connected). So we're forcing slave in
675
- * 2LINES mode. As MISO is not connected, slave will only read
676
- * from master, and cannot write to it. Inform user.
677
- */
678
- debug ("3 wires SPI slave not supported - slave will only read\r\n" );
679
- handle -> Init .Direction = SPI_DIRECTION_2LINES ;
674
+ if (handle -> Init .Direction == SPI_DIRECTION_1LINE ) {
675
+ /* SPI slave implemtation in MBED does not support the 3 wires SPI.
676
+ * (e.g. when MISO is not connected). So we're forcing slave in
677
+ * 2LINES mode. As MISO is not connected, slave will only read
678
+ * from master, and cannot write to it. Inform user.
679
+ */
680
+ debug ("3 wires SPI slave not supported - slave will only read\r\n" );
681
+ handle -> Init .Direction = SPI_DIRECTION_2LINES ;
682
+ }
683
+
684
+ pin_mode (spiobj -> pin_mosi , PullNone );
685
+ pin_mode (spiobj -> pin_miso , PullDown ); // Pull Down is set for output line
680
686
}
681
687
682
688
/*
0 commit comments