DAC functional
git-svn-id: https://svn.vbchaos.nl/svn/hsb/trunk@241 05563f52-14a8-4384-a975-3d1654cca0fa
This commit is contained in:
@@ -44,7 +44,7 @@
|
|||||||
#define MAX5715_SPI_Direction (SPI_Direction_1Line_Tx)
|
#define MAX5715_SPI_Direction (SPI_Direction_1Line_Tx)
|
||||||
#define MAX5715_SPI_Mode (SPI_Mode_Master)
|
#define MAX5715_SPI_Mode (SPI_Mode_Master)
|
||||||
#define MAX5715_SPI_DataSize (SPI_DataSize_8b)
|
#define MAX5715_SPI_DataSize (SPI_DataSize_8b)
|
||||||
#define MAX5715_SPI_CPOL (SPI_CPOL_Low)
|
#define MAX5715_SPI_CPOL (SPI_CPOL_High)
|
||||||
#define MAX5715_SPI_CPHA (SPI_CPHA_1Edge)
|
#define MAX5715_SPI_CPHA (SPI_CPHA_1Edge)
|
||||||
#define MAX5715_SPI_NSS (SPI_NSS_Soft)
|
#define MAX5715_SPI_NSS (SPI_NSS_Soft)
|
||||||
#define MAX5715_SPI_NSS_INTERNAL (SPI_NSSInternalSoft_Reset)
|
#define MAX5715_SPI_NSS_INTERNAL (SPI_NSSInternalSoft_Reset)
|
||||||
@@ -83,30 +83,30 @@
|
|||||||
#define MAX5715_CMD_CODE_ALL_LOAD_ALL (0x82)
|
#define MAX5715_CMD_CODE_ALL_LOAD_ALL (0x82)
|
||||||
|
|
||||||
|
|
||||||
#define MAX5715_writeCODEn(self, DAC, DATA) (MAX5715_sendCommand(self, (MAX5715_CMD_CODEn | (0x0F & DAC)), DATA))
|
#define MAX5715_writeCODEn(self, DAC, DATA) (MAX5715_sendCommand(self, (MAX5715_CMD_CODEn | (0x0F & (DAC))), DATA))
|
||||||
#define MAX5715_writeLOADn(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_LOADn | (0x0F & DAC)), 0x0000))
|
#define MAX5715_writeLOADn(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_LOADn | (0x0F & (DAC))), 0x0000))
|
||||||
#define MAX5715_writeCODEnLOADALL(self, DAC, DATA) (MAX5715_sendCommand(self, (MAX5715_CMD_CODEn_LOAD_ALL | (0x0F & DAC)), DATA))
|
#define MAX5715_writeCODEnLOADALL(self, DAC, DATA) (MAX5715_sendCommand(self, (MAX5715_CMD_CODEn_LOAD_ALL | (0x0F & (DAC))), DATA))
|
||||||
#define MAX5715_writeCODEnLOADn(self, DAC, DATA) (MAX5715_sendCommand(self, (MAX5715_CMD_CODEn_LOADn | (0x0F & DAC)), DATA))
|
#define MAX5715_writeCODEnLOADn(self, DAC, DATA) (MAX5715_sendCommand(self, (MAX5715_CMD_CODEn_LOADn | (0x0F & (DAC))), DATA))
|
||||||
|
|
||||||
#define MAX5715_writePOWER_NORMAL(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_POWER_NORMAL), (0x00FF & (DAC << 4))))
|
#define MAX5715_writePOWER_NORMAL(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_POWER_NORMAL), (0x00FF & ((DAC) << 4))))
|
||||||
#define MAX5715_writePOWER_PD1K(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_POWER_PD1K), (0x00FF & (DAC << 4))))
|
#define MAX5715_writePOWER_PD1K(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_POWER_PD1K), (0x00FF & ((DAC) << 4))))
|
||||||
#define MAX5715_writePOWER_PD100K(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_POWER_PD100K), (0x00FF & (DAC << 4))))
|
#define MAX5715_writePOWER_PD100K(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_POWER_PD100K), (0x00FF & ((DAC) << 4))))
|
||||||
#define MAX5715_writePOWER_HIGHZ(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_POWER_HIGHZ), (0x00FF & (DAC << 4))))
|
#define MAX5715_writePOWER_HIGHZ(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_POWER_HIGHZ), (0x00FF & ((DAC) << 4))))
|
||||||
|
|
||||||
#define MAX5715_writeSW_CLEAR(self) (MAX5715_sendCommand(self, (MAX5715_CMD_SW_CLEAR), 0x0000))
|
#define MAX5715_writeSW_CLEAR(self) (MAX5715_sendCommand(self, (MAX5715_CMD_SW_CLEAR), 0x0000))
|
||||||
#define MAX5715_writeSW_RESET(self) (MAX5715_sendCommand(self, (MAX5715_CMD_SW_RESET), 0x0000))
|
#define MAX5715_writeSW_RESET(self) (MAX5715_sendCommand(self, (MAX5715_CMD_SW_RESET), 0x0000))
|
||||||
|
|
||||||
#define MAX5715_writeCONFIG_LATCH_ON(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_CONFIG_LATCH_ON), (0x00FF & (DAC << 4))))
|
#define MAX5715_writeCONFIG_LATCH_ON(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_CONFIG_LATCH_ON), (0x00FF & ((DAC) << 4))))
|
||||||
#define MAX5715_writeCONFIG_LATCH_OFF(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_CONFIG_LATCH_OFF), (0x00FF & (DAC << 4))))
|
#define MAX5715_writeCONFIG_LATCH_OFF(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_CONFIG_LATCH_OFF), (0x00FF & ((DAC) << 4))))
|
||||||
|
|
||||||
#define MAX5715_writeREF_DAC_EXT(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_REF_DAC_EXT), (0x00FF & (DAC << 4))))
|
#define MAX5715_writeREF_DAC_EXT(self) (MAX5715_sendCommand(self, (MAX5715_CMD_REF_DAC_EXT), 0x0000))
|
||||||
#define MAX5715_writeREF_DAC_2V5(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_REF_DAC_2V5), (0x00FF & (DAC << 4))))
|
#define MAX5715_writeREF_DAC_2V5(self) (MAX5715_sendCommand(self, (MAX5715_CMD_REF_DAC_2V5), 0x0000))
|
||||||
#define MAX5715_writeREF_DAC_2V0(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_REF_DAC_2V0), (0x00FF & (DAC << 4))))
|
#define MAX5715_writeREF_DAC_2V0(self) (MAX5715_sendCommand(self, (MAX5715_CMD_REF_DAC_2V0), 0x0000))
|
||||||
#define MAX5715_writeREF_DAC_4V0(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_REF_DAC_4V0), (0x00FF & (DAC << 4))))
|
#define MAX5715_writeREF_DAC_4V0(self) (MAX5715_sendCommand(self, (MAX5715_CMD_REF_DAC_4V0), 0x0000))
|
||||||
#define MAX5715_writeREF_ON_EXT(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_REF_ON_EXT), (0x00FF & (DAC << 4))))
|
#define MAX5715_writeREF_ON_EXT(self) (MAX5715_sendCommand(self, (MAX5715_CMD_REF_ON_EXT), 0x0000))
|
||||||
#define MAX5715_writeREF_ON_2V5(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_REF_ON_2V5), (0x00FF & (DAC << 4))))
|
#define MAX5715_writeREF_ON_2V5(self) (MAX5715_sendCommand(self, (MAX5715_CMD_REF_ON_2V5), 0x0000))
|
||||||
#define MAX5715_writeREF_ON_2V0(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_REF_ON_2V0), (0x00FF & (DAC << 4))))
|
#define MAX5715_writeREF_ON_2V0(self) (MAX5715_sendCommand(self, (MAX5715_CMD_REF_ON_2V0), 0x0000))
|
||||||
#define MAX5715_writeREF_ON_4V0(self, DAC) (MAX5715_sendCommand(self, (MAX5715_CMD_REF_ON_4V0), (0x00FF & (DAC << 4))))
|
#define MAX5715_writeREF_ON_4V0(self) (MAX5715_sendCommand(self, (MAX5715_CMD_REF_ON_4V0), 0x0000))
|
||||||
|
|
||||||
#define MAX5715_writeCODE_ALL(self, DATA) (MAX5715_sendCommand(self, (MAX5715_CMD_CODE_ALL), DATA))
|
#define MAX5715_writeCODE_ALL(self, DATA) (MAX5715_sendCommand(self, (MAX5715_CMD_CODE_ALL), DATA))
|
||||||
#define MAX5715_writeLOAD_ALL(self, DATA) (MAX5715_sendCommand(self, (MAX5715_CMD_LOAD_ALL), 0x0000))
|
#define MAX5715_writeLOAD_ALL(self, DATA) (MAX5715_sendCommand(self, (MAX5715_CMD_LOAD_ALL), 0x0000))
|
||||||
|
|||||||
@@ -187,10 +187,10 @@ ErrorStatus MAX5715Channel_setValue(struct MAX5715_DAC* self, uint16_t value)
|
|||||||
ErrorStatus returnValue = SUCCESS;
|
ErrorStatus returnValue = SUCCESS;
|
||||||
|
|
||||||
// Send data to CODEn register
|
// Send data to CODEn register
|
||||||
MAX5715_writeCODEn(self->parent, MAX5715_SEL_DACB, value);
|
MAX5715_writeCODEn(self->parent, self->id, value);
|
||||||
|
|
||||||
// Load CODEn register to DAC output
|
// Load CODEn register to DAC output
|
||||||
MAX5715_writeLOADn(self->parent, MAX5715_SEL_DACB);
|
MAX5715_writeLOADn(self->parent, self->id);
|
||||||
|
|
||||||
return returnValue;
|
return returnValue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -285,9 +285,9 @@ ErrorStatus initPlatform(void)
|
|||||||
uart3->USART_TypeDef = USART3;
|
uart3->USART_TypeDef = USART3;
|
||||||
Uart_getDefaultParameters(uartTerminalParam);
|
Uart_getDefaultParameters(uartTerminalParam);
|
||||||
// Adjust to higher baudrate for intensive logging
|
// Adjust to higher baudrate for intensive logging
|
||||||
uartLoggerParam->baudrate = UART_TER_BAUDRATE;
|
uartTerminalParam->baudrate = UART_TER_BAUDRATE;
|
||||||
// Adjust the TX queue size for intensive logging
|
// Adjust the TX queue size for intensive logging
|
||||||
uartLoggerParam->txQueueSize = UART_TER_TX_QUEUE;
|
uartTerminalParam->txQueueSize = UART_TER_TX_QUEUE;
|
||||||
returnValue = Uart_construct(uart3, uartTerminalParam);
|
returnValue = Uart_construct(uart3, uartTerminalParam);
|
||||||
|
|
||||||
/* --------------------------------------------------------------------*/
|
/* --------------------------------------------------------------------*/
|
||||||
@@ -504,6 +504,9 @@ static ErrorStatus initIO (void)
|
|||||||
GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);
|
GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);
|
||||||
|
|
||||||
/* USART3 initialisation -------------------------------------------------*/
|
/* USART3 initialisation -------------------------------------------------*/
|
||||||
|
// For PCBA 0 (Cathode/MCP) and 2 (Anode), use the common USART3 IO
|
||||||
|
if ((PCBA_getInstance()->pcba == Anode) || (PCBA_getInstance()->pcba == CathodeMCP))
|
||||||
|
{
|
||||||
// Init TX line
|
// Init TX line
|
||||||
gpio.GPIO_Typedef = GPIOB;
|
gpio.GPIO_Typedef = GPIOB;
|
||||||
gpio.GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
|
gpio.GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
|
||||||
@@ -520,8 +523,29 @@ static ErrorStatus initIO (void)
|
|||||||
uart1->USART_RX = gpio;
|
uart1->USART_RX = gpio;
|
||||||
GPIO_Init(gpio.GPIO_Typedef, &gpio.GPIO_InitStruct);
|
GPIO_Init(gpio.GPIO_Typedef, &gpio.GPIO_InitStruct);
|
||||||
GPIO_Init(uart3->USART_RX.GPIO_Typedef, &uart3->USART_RX.GPIO_InitStruct);
|
GPIO_Init(uart3->USART_RX.GPIO_Typedef, &uart3->USART_RX.GPIO_InitStruct);
|
||||||
|
}
|
||||||
|
else if (PCBA_getInstance()->pcba == Tesla)
|
||||||
|
{
|
||||||
|
// Init TX line
|
||||||
|
gpio.GPIO_Typedef = GPIOD;
|
||||||
|
gpio.GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
|
||||||
|
gpio.GPIO_InitStruct.GPIO_Pin = GPIO_Pin_8;
|
||||||
|
gpio.GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
|
||||||
|
uart1->USART_TX = gpio;
|
||||||
|
GPIO_Init(gpio.GPIO_Typedef, &gpio.GPIO_InitStruct);
|
||||||
|
|
||||||
|
|
||||||
|
// Init RX line
|
||||||
|
gpio.GPIO_Typedef = GPIOD;
|
||||||
|
gpio.GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
|
||||||
|
gpio.GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9;
|
||||||
|
uart1->USART_RX = gpio;
|
||||||
|
GPIO_Init(gpio.GPIO_Typedef, &gpio.GPIO_InitStruct);
|
||||||
|
GPIO_Init(uart3->USART_RX.GPIO_Typedef, &uart3->USART_RX.GPIO_InitStruct);
|
||||||
|
|
||||||
|
GPIO_PinRemapConfig(GPIO_FullRemap_USART3, ENABLE);
|
||||||
|
}
|
||||||
|
|
||||||
/* SPI initialisation ----------------------------------------------------*/
|
/* SPI initialisation ----------------------------------------------------*/
|
||||||
// SPI1 CLK
|
// SPI1 CLK
|
||||||
_spi1.SPI_CLK.GPIO_Typedef = GPIOA;
|
_spi1.SPI_CLK.GPIO_Typedef = GPIOA;
|
||||||
@@ -531,9 +555,8 @@ static ErrorStatus initIO (void)
|
|||||||
GPIO_Init(_spi1.SPI_CLK.GPIO_Typedef, &_spi1.SPI_CLK.GPIO_InitStruct);
|
GPIO_Init(_spi1.SPI_CLK.GPIO_Typedef, &_spi1.SPI_CLK.GPIO_InitStruct);
|
||||||
// SPI1 MISO
|
// SPI1 MISO
|
||||||
_spi1.SPI_MISO.GPIO_Typedef = GPIOA;
|
_spi1.SPI_MISO.GPIO_Typedef = GPIOA;
|
||||||
_spi1.SPI_MISO.GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
|
_spi1.SPI_MISO.GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;
|
||||||
_spi1.SPI_MISO.GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6;
|
_spi1.SPI_MISO.GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6;
|
||||||
_spi1.SPI_MISO.GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
|
|
||||||
GPIO_Init(_spi1.SPI_MISO.GPIO_Typedef, &_spi1.SPI_MISO.GPIO_InitStruct);
|
GPIO_Init(_spi1.SPI_MISO.GPIO_Typedef, &_spi1.SPI_MISO.GPIO_InitStruct);
|
||||||
// SPI1 MOSI
|
// SPI1 MOSI
|
||||||
_spi1.SPI_MOSI.GPIO_Typedef = GPIOA;
|
_spi1.SPI_MOSI.GPIO_Typedef = GPIOA;
|
||||||
|
|||||||
@@ -226,9 +226,19 @@ static void initTask(void* parameters)
|
|||||||
|
|
||||||
MAX5715_construct(&max5715, &spiDAC->device);
|
MAX5715_construct(&max5715, &spiDAC->device);
|
||||||
|
|
||||||
MAX5715_writeREF_ON_2V5(&max5715, MAX5715_SEL_DACA | MAX5715_SEL_DACB | MAX5715_SEL_DACC);
|
MAX5715_writeREF_ON_2V5(&max5715);
|
||||||
|
|
||||||
|
MAX5715_writePOWER_NORMAL(&max5715, MAX5715_SEL_DACA | MAX5715_SEL_DACB | MAX5715_SEL_DACC);
|
||||||
|
|
||||||
|
MAX5715_writeCONFIG_LATCH_OFF(&max5715, MAX5715_SEL_DACA | MAX5715_SEL_DACB | MAX5715_SEL_DACC);
|
||||||
|
|
||||||
MAX5715Channel_construct(&max5715.dac[0], &max5715, 0);
|
MAX5715Channel_construct(&max5715.dac[0], &max5715, 0);
|
||||||
|
MAX5715Channel_construct(&max5715.dac[1], &max5715, 1);
|
||||||
|
MAX5715Channel_construct(&max5715.dac[2], &max5715, 2);
|
||||||
|
|
||||||
|
MAX5715Channel_setValue(&max5715.dac[0], 0x200);
|
||||||
|
MAX5715Channel_setValue(&max5715.dac[1], 0x800);
|
||||||
|
MAX5715Channel_setValue(&max5715.dac[2], 0xD00);
|
||||||
|
|
||||||
|
|
||||||
repairProcess_construct(rp, 3, 1024);
|
repairProcess_construct(rp, 3, 1024);
|
||||||
|
|||||||
Reference in New Issue
Block a user