Esempio n. 1
0
void cs5463spi::spiInit() {

  //Set generic spi parameters
    spi::setSpiMaxSpeed(m_spiParams.MAX_FREQ);
    spi::setSpiWrMode(m_spiParams.MODE_0);
    spi::setSpiRdMode(m_spiParams.MODE_0);
	spi::setBitOrder(m_spiParams.BIT_ORDER);  //sets the bit order for CS5463
	spi::setSpiBPW(m_spiParams.BPW);
	//spi::spiInitBitOrder();
	spi::spiInit();

	//Set CS5463 running parameters (Init Serial Port)

	SerialPortInit();

}
Esempio n. 2
0
void UartConfig() {
	SerialPortInit(&serialPort3, 3);
	serialPort_t *s;
	s = serialPort3;
	serialPort3->thisUsart = USARTx;

	USARTx_TX_GPIO_CLK_EN;
	USARTx_RX_GPIO_CLK_EN;
	USARTx_DMAx_CLK_EN;
	USARTx_CLK_EN;
	USARTx_DMAx_CLK_EN;

	USARTx_TX_AFConfig;
	USARTx_RX_AFConfig;

	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
	GPIO_InitStructure.GPIO_Pin = USARTx_TX_PIN;
	GPIO_Init(USARTx_TX_GPIO_PORT, &GPIO_InitStructure);

	GPIO_InitStructure.GPIO_Pin = USARTx_RX_PIN;
	GPIO_Init(USARTx_RX_GPIO_PORT, &GPIO_InitStructure);

	USART_InitStructure.USART_BaudRate = BAUD;
	USART_InitStructure.USART_WordLength = USART_WordLength_8b;
	USART_InitStructure.USART_StopBits = USART_StopBits_1;
	USART_InitStructure.USART_Parity = USART_Parity_No;
	USART_InitStructure.USART_HardwareFlowControl =
			USART_HardwareFlowControl_None;
	USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
	USART_Init(USARTx, &USART_InitStructure);

	DMA_DeInit(USARTx_TX_DMA_STREAM);
	DMA_InitStructure.DMA_Channel = USARTx_TX_DMA_CHANNEL;
	DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral;
	DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)(&(USARTx->DR));
	DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t) serialPort3->txBuf;
	DMA_InitStructure.DMA_BufferSize = SERIAL_BUFSIZE;
	DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
	DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
	DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
	DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
	DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
	DMA_InitStructure.DMA_Priority = DMA_Priority_High;
	DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Enable;
	DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full;
	DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;
	DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;
	DMA_Init(USARTx_TX_DMA_STREAM, &DMA_InitStructure);
	DMA_SetCurrDataCounter(USARTx_TX_DMA_STREAM, 0);
	DMA_ITConfig(USARTx_TX_DMA_STREAM, DMA_IT_TC | DMA_IT_FE | DMA_IT_TE,
			ENABLE);
	USART_DMACmd(USARTx, USART_DMAReq_Tx, DISABLE);
	DMA_Cmd(USARTx_TX_DMA_STREAM, DISABLE);

	DMA_DeInit(USARTx_RX_DMA_STREAM);
	DMA_InitStructure.DMA_Channel = USARTx_RX_DMA_CHANNEL;
	DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t) & USARTx->DR;
	DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t) s->rxBuf;
	DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory;
	DMA_InitStructure.DMA_BufferSize = SERIAL_BUFSIZE;
	DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
	DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
	DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
	DMA_InitStructure.DMA_MemoryDataSize = DMA_PeripheralDataSize_Byte;
	DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
	DMA_InitStructure.DMA_Priority = DMA_Priority_High;
	DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable;
	DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;
	DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;
	DMA_Init(USARTx_RX_DMA_STREAM, &DMA_InitStructure);
	DMA_ClearFlag(USARTx_RX_DMA_STREAM,
			USARTx_RX_DMA_FLAG_TCIF | USARTx_RX_DMA_FLAG_HTIF
					| USARTx_RX_DMA_FLAG_TEIF);
	DMA_Cmd(USARTx_RX_DMA_STREAM, ENABLE);
	USART_DMACmd(USARTx, USART_DMAReq_Rx, ENABLE);

	NVIC_InitStructure.NVIC_IRQChannel = USARTx_DMA_TX_IRQn;
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
	NVIC_Init(&NVIC_InitStructure);

	/* Enable USART */
	USART_Cmd(USARTx, ENABLE);

}