My hardware only has one spi slave and one spi master. So can I just set the spi slave miso pin as output in spis_init function? If can not, can I set the pull down resistor on the slave miso pin on spis_init?
My hardware only has one spi slave and one spi master. So can I just set the spi slave miso pin as output in spis_init function? If can not, can I set the pull down resistor on the slave miso pin on spis_init?
I don't understand what you are trying to achieve by setting the SPIS miso pin as an output.
So do you mean I can set the intenal pull resistor on spis miso pin?
I just want to give the miso pin on slave side an const value
But SPI requires a constant drive - either high or low - anyhow.
SPI is not open-drain.
Oh, right, the miso is already an output, you just need to set the pull configuration.
Use nrf_gpio_cfg:
dir = NRF_GPIO_PIN_DIR_OUTPUT
input = NRF_GPIO_PIN_INPUT_DISCONNECT
pull = NRF_GPIO_PIN_PULLDOWN
drive = NRF_GPIO_PIN_S0S1
sense = NRF_GPIO_PIN_NOSENSE
the miso is already an output
So, surely, it will always be driving - either high or low ?
Therefore a pull up/down is pointless - it will just waste power and serve no useful purpose at all?
nordic sdk set this miso pin as input&no pull when spis is initialized, and when it is selected(cs down), this pin function as miso, otherwise it is set as high impedence, just like other spi device, this is useful when there has more than one spi device on the bus. But in my system, there is only one spi device, So I want to set it as output.
@haakonsh do you mean set as input and enable pull down?
@haakonsh do you mean set as input and enable pull down?
I agree with awneil, you do not need a pull resistor on an SPI line unless something is seriously wrong.
I do not know how I can be any more clear than:
dir = NRF_GPIO_PIN_DIR_OUTPUT
input = NRF_GPIO_PIN_INPUT_DISCONNECT
I do not know how I can be any more clear
Indeed.
cgha: again, look at the SPI Slave example in the SDK - it will show you how to correctly configure the nRF as an SPI Slave.