void SPIClass::begin() { if(init_flag==0); //init(); /* Unlock protected registers */ SYS_UnlockReg(); /* Enable IP clock */ CLK_EnableModuleClock(SPI1_MODULE); /* Select IP clock source and clock divider */ CLK_SetModuleClock(SPI1_MODULE,CLK_CLKSEL1_SPI1_S_HCLK,MODULE_NoMsk); SYS->GPC_MFP |= SYS_GPC_MFP_PC11_SPI1_MOSI0; SYS->GPA_MFP |= SYS_GPA_MFPH_GPA10_MFP_SPI1_MISO0 | SYS_GPA_MFPH_GPA11_MFP_SPI1_CLK; SYS->ALT_MFP |= SYS_ALT_MFP_PC11_SPI1_MOSI0 | SYS_ALT_MFP_PA11_SPI1_CLK | SYS_ALT_MFP_PA10_SPI1_MISO0; /* Lock protected registers */ SYS_LockReg(); /* Configure as a master, clock idle low, falling clock edge Tx, rising edge Rx and 8-bit transaction */ /* Set IP clock divider. SPI clock rate = 12MHz */ SPI_Open(spi, SPI_MASTER, SPI_MODE_0, 8, 6000000); //SPI_EnableFIFO(spi,2,2); //ouki setBitOrder(SS, MSBFIRST); }
SPIDaisyChain::SPIDaisyChain(const int pinCS, const int nDaisyChains) { // default setting _pinCS = (uint8_t)pinCS; _nDaisyChains = (uint8_t)nDaisyChains; _bitOrder = (uint8_t)MSBFIRST; _spiMode = (uint8_t)SPI_MODE3; readBytes = new byte[_nDaisyChains]; // SPI settings pinMode(_pinCS, OUTPUT); digitalWrite(_pinCS, HIGH); SPIClass::begin(); setBitOrder(_bitOrder); setDataMode(_spiMode); // select function for rise/fall CS if (_pinCS > 7) { _pinCS -= 8; fallCS = &SPIDaisyChain::fallCSPORTB; riseCS = &SPIDaisyChain::riseCSPORTB; } else { fallCS = &SPIDaisyChain::fallCSPORTD; riseCS = &SPIDaisyChain::riseCSPORTD; } }
void SPI::beginTransaction(SPISettings settings) { pthread_mutex_lock (&spiMutex); setBitOrder(settings.border); setDataMode(settings.dmode); setClockDivider(settings.clck); }
void SPIClass::begin() { if(init_flag==0) init(); /* Unlock protected registers */ SYS_UnlockReg(); /* Enable IP clock */ CLK_EnableModuleClock(module); /* Select IP clock source and clock divider */ CLK_SetModuleClock(module,clksel,0); /* Lock protected registers */ SYS_LockReg(); /* Configure as a master, clock idle low, falling clock edge Tx, rising edge Rx and 8-bit transaction */ /* Set IP clock divider. SPI clock rate = 4MHz */ SPI_Open(spi, SPI_MASTER, SPI_MODE_0, 8, 4000000); #if defined(__NUC240__) | defined(__NANO100__) | defined(__NUC131__) SPI_EnableFIFO(spi,12,12); #endif setBitOrder(SS, MSBFIRST); #if defined(__M451__) SPI_ClearRxFIFO(spi); SPI_TRIGGER(spi); #endif }
void SPIClass::begin() { init(); // NPCS control is left to the user // Default speed set to 4Mhz setClockDivider(BOARD_SPI_DEFAULT_SS, 21); setDataMode(BOARD_SPI_DEFAULT_SS, SPI_MODE0); setBitOrder(BOARD_SPI_DEFAULT_SS, MSBFIRST); }
SPIClass::SPIClass(USART_TypeDef *_spi, uint32_t _id, CMU_Clock_TypeDef UartClk, const SPIPinSettings *_pinSettings) : spi(_spi), id(_id), pinSettings(_pinSettings), spi_clk(UartClk) { setBitOrder(true); setDataMode(usartClockMode0); //setClockDivider(84); /*SPI_Configure(spi, id, SPI_MR_MSTR | SPI_MR_PS | SPI_MR_MODFDIS); SPI_Enable(spi);*/ }
void SPIClass::begin() { initCb(); SPI_Configure(spi, id, SPI_MR_MSTR | SPI_MR_PS | SPI_MR_MODFDIS); SPI_Enable(spi); // NPCS control is left to the user // Default speed set to 4Mhz setClockDivider(BOARD_SPI_DEFAULT_SS, 21); setDataMode(BOARD_SPI_DEFAULT_SS, SPI_MODE0); setBitOrder(BOARD_SPI_DEFAULT_SS, MSBFIRST); }
SSP1::SSP1() //define constructor { this->port = LPCXSSP1; bitOrder = LSBFIRST; divider = SPI_CLOCK_DIV4; //Arduino's default dataMode = SPI_MODE0; bitlength = 8; setClockDivider(divider); setBitLength(bitlength); setBitOrder(LSBFIRST); begin(); }
void SPIClass::begin(uint8_t _pin) { init(); uint32_t spiPin = BOARD_PIN_TO_SPI_PIN(_pin); PIO_Configure( g_APinDescription[spiPin].pPort, g_APinDescription[spiPin].ulPinType, g_APinDescription[spiPin].ulPin, g_APinDescription[spiPin].ulPinConfiguration); // Default speed set to 4Mhz setClockDivider(_pin, 21); setDataMode(_pin, SPI_MODE0); setBitOrder(_pin, MSBFIRST); }
void SPIClass::begin(uint16_t divider, uint8_t bitOrder, uint8_t dataMode) { setClockDivider(divider); setBitOrder(bitOrder); setDataMode(dataMode); //Set CS pins polarity to low bcm2835_spi_setChipSelectPolarity(BCM2835_SPI_CS0, 0); bcm2835_spi_begin(); //Initialize a timestamp for millis calculation gettimeofday(&RHStartTime, NULL); }
void SPIClass::beginTransaction(uint8_t pin, SPISettings settings) { if(init_flag==0);// init(); /* Configure as a master, clock idle low, falling clock edge Tx, rising edge Rx and 8-bit transaction */ /* Set IP clock divider. SPI clock rate = 4MHz */ SPI_Open(spi, SPI_MASTER, settings.datmode, 8, settings.clock); //SPI_EnableFIFO(spi,12,12); setBitOrder(SS, settings.border); //#if defined(__M451__) | defined(__NANO100__) SPI_ClearRxFIFO(spi); SPI_TRIGGER(spi); //#endif }
void SPIClass::begin() { pinMode(pinSCK, OUTPUT); pinMode(pinMOSI, OUTPUT); pinMode(pinMISO, INPUT); spi->PSELSCK = pinSCK; spi->PSELMOSI = pinMOSI; spi->PSELMISO = pinMISO; // Default speed set to 4Mhz setFrequency(4000); setDataMode(SPI_MODE0); setBitOrder(MSBFIRST); spi->EVENTS_READY = 0; spi->ENABLE = (SPI_ENABLE_ENABLE_Enabled << SPI_ENABLE_ENABLE_Pos); }