115 lines
3.8 KiB
C
Executable File
115 lines
3.8 KiB
C
Executable File
/**
|
|
* \file talise_hal.c
|
|
* \brief Contains TALISE API Hardware Abstraction Layer (HAL) functions
|
|
*
|
|
* Talise API version: 3.5.0.2
|
|
*
|
|
* Copyright 2015-2017 Analog Devices Inc.
|
|
* Released under the AD9378-AD9379 API license, for more information see the "LICENSE.txt" file in this zip file.
|
|
*/
|
|
|
|
#include "talise_hal.h"
|
|
|
|
adiHalErr_t talSpiReadByte(void *devHalInfo, uint16_t addr, uint8_t *readdata)
|
|
{
|
|
adiHalErr_t halError = ADIHAL_OK;
|
|
|
|
halError = ADIHAL_spiReadByte(devHalInfo, addr, readdata);
|
|
if (halError == ADIHAL_WAIT_TIMEOUT)
|
|
{
|
|
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT * HAL_TIMEOUT_MULT);
|
|
halError = ADIHAL_spiReadByte(devHalInfo, addr, readdata);
|
|
}
|
|
|
|
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT);
|
|
return halError;
|
|
}
|
|
|
|
adiHalErr_t talSpiWriteByte(void *devHalInfo, uint16_t addr, uint8_t data)
|
|
{
|
|
adiHalErr_t halError = ADIHAL_OK;
|
|
|
|
halError = ADIHAL_spiWriteByte(devHalInfo, addr, data);
|
|
if (halError == ADIHAL_WAIT_TIMEOUT)
|
|
{
|
|
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT * HAL_TIMEOUT_MULT);
|
|
halError = ADIHAL_spiWriteByte(devHalInfo, addr, data);
|
|
}
|
|
|
|
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT);
|
|
return halError;
|
|
}
|
|
|
|
#include "stdio.h"
|
|
adiHalErr_t talSpiWriteBytes(void *devHalInfo, uint16_t *addr, uint8_t *data, uint32_t count)
|
|
{
|
|
adiHalErr_t halError = ADIHAL_OK;
|
|
|
|
//printf("[%s,%d] start. count=%d addr=0x%x\n", __FUNCTION__, __LINE__, count, addr);
|
|
halError = ADIHAL_spiWriteBytes(devHalInfo, addr, data, count);
|
|
if (halError == ADIHAL_WAIT_TIMEOUT)
|
|
{
|
|
//printf("[%s,%d] tout. count=%d addr=0x%x\n", __FUNCTION__, __LINE__, count, addr);
|
|
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT * HAL_TIMEOUT_MULT);
|
|
halError = ADIHAL_spiWriteBytes(devHalInfo, addr, data, count);
|
|
}
|
|
//printf("[%s,%d] end. count=%d addr=0x%x\n", __FUNCTION__, __LINE__, count, addr);
|
|
|
|
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT);
|
|
return halError;
|
|
}
|
|
|
|
adiHalErr_t talSpiReadBytes(void *devHalInfo, uint16_t *addr, uint8_t *readdata, uint32_t count)
|
|
{
|
|
adiHalErr_t halError = ADIHAL_OK;
|
|
|
|
halError = ADIHAL_spiReadBytes(devHalInfo, addr, readdata, count);
|
|
if (halError == ADIHAL_WAIT_TIMEOUT)
|
|
{
|
|
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT * HAL_TIMEOUT_MULT);
|
|
halError = ADIHAL_spiReadBytes(devHalInfo, addr, readdata, count);
|
|
}
|
|
|
|
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT);
|
|
return halError;
|
|
}
|
|
|
|
adiHalErr_t talSpiReadField(void *devHalInfo, uint16_t addr, uint8_t *fieldVal, uint8_t mask, uint8_t startBit)
|
|
{
|
|
adiHalErr_t halError = ADIHAL_OK;
|
|
|
|
halError = ADIHAL_spiReadField(devHalInfo, addr, fieldVal, mask, startBit);
|
|
if (halError == ADIHAL_WAIT_TIMEOUT)
|
|
{
|
|
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT * HAL_TIMEOUT_MULT);
|
|
halError = ADIHAL_spiReadField(devHalInfo, addr, fieldVal, mask, startBit);
|
|
}
|
|
|
|
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT);
|
|
return halError;
|
|
}
|
|
|
|
adiHalErr_t talSpiWriteField(void *devHalInfo, uint16_t addr, uint8_t fieldVal, uint8_t mask, uint8_t startBit)
|
|
{
|
|
adiHalErr_t halError = ADIHAL_OK;
|
|
|
|
halError = ADIHAL_spiWriteField(devHalInfo, addr, fieldVal, mask, startBit);
|
|
if (halError == ADIHAL_WAIT_TIMEOUT)
|
|
{
|
|
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT * HAL_TIMEOUT_MULT);
|
|
halError = ADIHAL_spiWriteField(devHalInfo, addr, fieldVal, mask, startBit);
|
|
}
|
|
|
|
ADIHAL_setTimeout(devHalInfo, HAL_TIMEOUT_DEFAULT);
|
|
return halError;
|
|
}
|
|
|
|
adiHalErr_t talWriteToLog(void *devHalInfo, adiLogLevel_t logLevel, uint32_t errorCode, const char *comment)
|
|
{
|
|
adiHalErr_t halError = ADIHAL_OK;
|
|
|
|
halError = ADIHAL_writeToLog(devHalInfo, logLevel, errorCode, comment);
|
|
|
|
return halError;
|
|
}
|