|
|
|
@ -16,6 +16,7 @@ void spiInitMaster(
|
|
|
|
|
pinNo_t MISOPin,
|
|
|
|
|
uint16_t altFuncMISOPin)
|
|
|
|
|
{
|
|
|
|
|
// GPIO setup
|
|
|
|
|
pinInit(clkPin);
|
|
|
|
|
pinInit(MOSIPin);
|
|
|
|
|
pinInit(MISOPin);
|
|
|
|
@ -26,31 +27,18 @@ void spiInitMaster(
|
|
|
|
|
pinSetAlternate(MOSIPin, altFuncMOSIPin);
|
|
|
|
|
pinSetAlternate(MISOPin, altFuncMISOPin);
|
|
|
|
|
|
|
|
|
|
// TODO: step by step implementation
|
|
|
|
|
// SPI setup
|
|
|
|
|
spiEnableBus(spi_hw_ch);
|
|
|
|
|
spiSetPolarity(spi_hw_ch,clockPolarity);
|
|
|
|
|
spiSetPhase(spi_hw_ch,phase);
|
|
|
|
|
spiSetMode(spi_hw_ch, SPI_MASTER);
|
|
|
|
|
spiSetClockPrescaler(spi_hw_ch, prescaler);
|
|
|
|
|
spiSetFrameFormat(spi_hw_ch,frameFormat);
|
|
|
|
|
|
|
|
|
|
// TODO: find out what settings shouldbe made for theSlave Management
|
|
|
|
|
//SPI1->CR1 |= (1<<8) | (1<<9); // SSM=1, SSi=1 -> Software Slave Management
|
|
|
|
|
//SPI_BASE->CR1 |= (1 << 8) | (1 << 9);
|
|
|
|
|
spiSetSoftwareSlaveManagement(spi_hw_ch,1);
|
|
|
|
|
spiSetInternalSlaveSelect(spi_hw_ch,0);
|
|
|
|
|
|
|
|
|
|
//SPI1->CR1 &= ~(1<<10); // RXONLY = 0, full-duplex
|
|
|
|
|
//SPI_BASE->CR1 &= ~(1<<10);
|
|
|
|
|
spiSetComMode(spi_hw_ch, comMode);
|
|
|
|
|
|
|
|
|
|
spiSetClockPrescaler(spi_hw_ch, prescaler);
|
|
|
|
|
|
|
|
|
|
spiSetBitFrameLength(spi_hw_ch, SPI_FRAME_LENGTH_8BIT);
|
|
|
|
|
|
|
|
|
|
// TODO: find out what SSOE does
|
|
|
|
|
// TODO: find out what FRXTH does
|
|
|
|
|
//SPI_BASE->CR2 |= SPI_CR2_SSOE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void spiSetupCH(spi_ch_t *ch, spiCH_t spi_hw_ch, pinNo_t chipselectPin)
|
|
|
|
|