Example #1
0
void spiInitialize(void)
{
	gpioConfigurePin(SPIx_MISO_GPIO, SPIx_MISO_PIN, SPIx_MISO_CONFIGURATION);
	gpioConfigurePin(SPIx_MOSI_GPIO, SPIx_MOSI_PIN, SPIx_MOSI_CONFIGURATION);
	gpioConfigurePin(SPIx_SCK_GPIO, SPIx_SCK_PIN, SPIx_SCK_CONFIGURATION);
	gpioConfigurePin(SPIx_SSB_GPIO, SPIx_SSB_PIN, SPIx_SSB_CONFIGURATION);

	SPIx_SSB_bb=SPIx_SSB_END;

	RCC_APBxENR_SPIxEN_bb = 1;

	SPIx->CR1 = SPI_CR1_SSM | SPI_CR1_SSI | SPI_CR1_SPE | SPI_CR1_MSTR;	// software slave management, enable SPI, master mode

	spiSetBaudRate(SPIx_BOUDRATE);
}
Example #2
0
U8 uOpioidInit(void)
{
	U8 errorCode = STD_EC_SUCCESS;

	// ====== µC Initialisation ====== //
	// Reset the Port
	LATB = LED_B;								//Everything to 0 except LED_B (active low)
	LATA = LED_R|LED_G;							//Everything to 0 except LED_B and LED_R (active low)

	// -- Set the IO direction -- //
	TRISA = 0xFFFF ^ (LED_R|LED_G);				//Everything in input except LED_R and LED_G
	TRISB = 0xFFFF ^ (LED_B|RAM_MOSI|RAM_SCK|RAM_SS|RAM_HOLD|EXT0_TX|COM0_TX|COM0_MOSI|COM0_SCK);		//Everything in input except LED_B, RAM_MOSI,RAM_SCK,RAM_HOLD,EXT0_TC,COM0_TX,COM0_MOSI and COM0_SCK
	// -------------------------- //

	// -- Attach pins to peripherals -- //
	ppsUnlock();
	ppsAttachOut(U1TX,RPB4);
	ppsAttachIn(U1RX,RPA4);

	ppsAttachOut(U2TX,RPB10);
	ppsAttachIn(U2RX,RPB11);

	ppsAttachOut(SDO1,RPB6);
	ppsAttachIn(SDI1,RPB8);

	ppsAttachOut(SDO2,RPB1);
	ppsAttachIn(SDI2,RPB2);

	ppsAttachIn(INT4,RPB3);
	ppsAttachIn(INT2,RPA2);

	ppsAttachOut(OC1,RPA0);
	ppsAttachOut(OC2,RPA1);
	ppsAttachOut(OC3,RPB0);

	//ppsAttachOut(REFCLKO,RPA2);
	ppsLock();
	// -------------------------------- //
	
	// -- Init the Interrupts -- //
	INTEnableSystemMultiVectoredInt();

	intFastSetPriority(COM0_IRQ0_INT_ID, 4);
	intSetExternalEdge(COM0_IRQ0_INT_IRQ, RISING);			//COM0 IRQ0 is Rising edge by default
	intFastSetPriority(COM0_IRQ1_INT_ID, 4);
	intSetExternalEdge(COM0_IRQ1_INT_IRQ, RISING);			//COM0 IRQ1 is Rising edge by default
	intFastSetPriority(COM0_SPI_INT_ID, 5);
	intFastSetPriority(COM0_UART_INT_ID, 5);

	intFastSetPriority(RAM_SPI_INT_ID, 6);

	intFastSetPriority(EXT0_IRQ_INT_ID, 2);
	intSetExternalEdge(EXT0_IRQ_INT_IRQ, RISING);			//EXT0 IRQ0 is Rising edge by default
	intFastSetPriority(EXT0_UART_INT_ID, 3);
	intFastSetPriority(BTN_INT_ID, 1);
	intSetExternalEdge(BTN_INT_IRQ, FALLING);				//BTN Falling edge trigger
	intFastInit(BTN_INT_ID);

	INTEnableInterrupts();
	// ------------------------- //

	// -- Init the realTime system -- //
	errorCode = realTimeInit(UOPIOID_SYSTICK_VALUE);
	if (errorCode != STD_EC_SUCCESS)
		return errorCode;
	// ------------------------------ //
	// =============================== //


	// ====== External Initialization ====== //
	// -- RAM initialisation -- //
	//Init the RAM SPI
	spiSetConfig(RAM_SPI_ID,SPI_MODE_MASTER|SPI_ENHANCED_BUF|SPI_TX_BUF_INT_BUF_EMPTY|SPI_RX_BUF_INT_BUF_HALF_FULL);
	spiSetBaudRate(RAM_SPI_ID,5000000);
	spiStart(RAM_SPI_ID);

	spiAddSlave(RAM_SPI_ID,&LATB,RAM_SS);
	// ------------------------ //

	// -- COM0 Initialisation -- //
	//Init the COM Uart
	errorCode = uartInit(COM0_UART_ID,UART_TX_INT_TSR_EMPTY|UART_RX_INT_DATA_READY|UART_MODE_8N1);
	if (errorCode != STD_EC_SUCCESS)
		return errorCode;

	//Init the COM SPI
	spiSetConfig(COM0_SPI_ID,SPI_MODE_MASTER|SPI_ENHANCED_BUF|SPI_TX_BUF_INT_BUF_EMPTY|SPI_RX_BUF_INT_BUF_HALF_FULL);
	spiSetBaudRate(COM0_SPI_ID,5000000);
	spiStart(COM0_SPI_ID);

	//Detect presence

	// ------------------------- //


	// -- EXT0 Initialisation -- //
	//Init the EXT Uart

	//Detect presence

	// ------------------------- //
	// ===================================== //
	
	return errorCode;
}