Functions
SPI Functions
SPI

Functions

CSL_Status SPI_init (void)
CSL_Status SPI_deInit (void)
CSL_SpiHandle SPI_open (SPI_HwMode csNum, SPI_OperMode opMode)
CSL_Status SPI_close (CSL_SpiHandle hSpi)
CSL_Status SPI_config (CSL_SpiHandle hSpi, SPI_Config *spiHwConfig)
CSL_Status SPI_read (CSL_SpiHandle hSpi, Uint16 *readBuffer, Uint16 bufLen)
CSL_Status SPI_write (CSL_SpiHandle hSpi, Uint16 *writeBuffer, Uint16 bufLen)
CSL_Status SPI_dataTransaction (CSL_SpiHandle hSpi, Uint16 *rwBuffer, Uint16 rwBufLen, SPI_Command readOrWrite)

Function Documentation

CSL_Status SPI_close ( CSL_SpiHandle  hSpi)

===========================================================================
SPI_close

Description
This function closes the specified handle to SPI.

Arguments

            spiHandle          Handle to the spi
     

Return Value CSL_Status

  • CSL_SOK - Close successful
  • CSL_ESYS_BADHANDLE - Invalid handle

Pre Condition
SPI_open() function has to call before call this function.

Post Condition
There should not be any function call after this function call.

Modifies
None

Example

            CSL_SpiHandle   hSpi;
            CSL_status   status;

            status = SPI_close(hSpi);
     

===========================================================================

References CSL_SpiObj::configured.

CSL_Status SPI_config ( CSL_SpiHandle  hSpi,
SPI_Config spiHwConfig 
)

===========================================================================
SPI_config

Description
It configures the SPI Controller registers of particular handle as per the values passed in the SPI config structure.

Arguments

            spiHandle       Handle to the spi.
            spiHwConfig     Pointer to spi Config structure.

     

Return Value CSL_Status

  • CSL_SOK - Hardware setup successful
  • CSL_ESYS_BADHANDLE - Invalid handle
  • CSL_ESYS_INVPARAMS - Congig Parameter is invalid.

Pre Condition
SPI_open function should call before call this function.

Post Condition
SPI_close function can call after this function call.

Modifies
1. SPI registers will be updated as per config parameter
2. CSL_SpiObj Object will be updated to store some info as passed config parameter.

Example

            CSL_SpiHandle   hSpi;
            SPI_Config      spiHwConfig;
            Int16           status;

            status = SPI_config(hSpi, &spiHwConfig);
            ...

     

===========================================================================

References SPI_Config::clkPh, SPI_Config::clkPol, CSL_SpiObj::configured, SPI_Config::csNum, SPI_Config::csPol, SPI_Config::dataDelay, SPI_Config::fcEnable, SPI_Config::frLen, SPI_Config::spiClkDiv, SPI_Config::wcEnable, and SPI_Config::wLen.

CSL_Status SPI_dataTransaction ( CSL_SpiHandle  hSpi,
Uint16 *  rwBuffer,
Uint16  rwBufLen,
SPI_Command  readOrWrite 
)

===========================================================================
SPI_dataTransaction

Description
This function read or Write data to specified device.

Arguments

            spiHandle         Handle to the spi
			writeBuff         Pointer to the write buffer.
			buffLen           Maximum read buffer size.
			readOrWrite		  Read or write command.
     

Return Value CSL_Status

  • CSL_SOK - transation success
  • CSL_ESYS_BADHANDLE - Invalid handle

Pre Condition This function can after SPI_open function.

Post Condition
SPI_deInit can be call after this function call.

Modifies

Example

            CSL_SpiHandle   hSpi;
			Uint16          writeBuff[size];
            Uint16          buffLen;
			SPI_Command	 readOrWrite
            CSL_status   status;
            ...
			...
            status = SPI_dataTransaction(hSpi, &rwBuffer,
            					           rwBufLen, readOrWrite);
     

===========================================================================

References CSL_SpiObj::configured, SPI_read(), SPI_READ_CMD, SPI_write(), and SPI_WRITE_CMD.

CSL_Status SPI_deInit ( void  )

===========================================================================
SPI_deInit

Description
This function unintialize and activate the SPI module

Arguments

            void	No parameter
     

Return Value CSL_SOK
Return value CSL_SOK for success

Pre Condition
This function call call after SPI_init function.

Post Condition
SPI_close function can be call after this function call.

Modifies
1. Set the register to activate SPI module
2.

Example


            void

            result = SPI_deInit();
            ...
    

===========================================================================

References CSL_SpiObj::configured, and SPI_Instance.

CSL_Status SPI_init ( void  )

===========================================================================
SPI_init

Description
This function intialize and activate the SPI module

Arguments

            None
     

Return Value CSL_SOK
Return value CSL_SOK for success

Pre Condition
This functionality has to call before any function call.

Post Condition
None

Modifies
None

Example


            void

            result = SPI_init();
            ...
    

===========================================================================

CSL_SpiHandle SPI_open ( SPI_HwMode  csNum,
SPI_OperMode  opMode 
)

===========================================================================
SPI_open

Description
This function returns the handle to the SPI instance. This handle is passed to all other CSL APIs.

Arguments

            Mode		chip select mode.

     

Return Value CSL_SpiHandle
Valid SPI handle will be returned if handler value is not equal to NULL.

Pre Condition
SPI_init function has to call before call this function.

Post Condition
1. The status is returned in the status variable. If status returned is

  • NULL - InValid SPI handle is returned
    2.

Modifies
1. CSL_SpiObj SPI object structure
2.

Example


            SPI_HwMode		 csNum;
			SPI_OperMode 	opMode(Polling/Interrupt)
            ...

            hSpi = SPI_open(SPI_HwMode	csNum, SPI_OperMode opMode);
            ...
    

===========================================================================

References CSL_SpiObj::configured, CSL_SpiObj::mode, CSL_SpiObj::opMode, and SPI_Instance.

CSL_Status SPI_read ( CSL_SpiHandle  hSpi,
Uint16 *  readBuffer,
Uint16  bufLen 
)

===========================================================================
SPI_read

Description
This function Read data form specified device.

Arguments

			hSpi			  Pointer to handler
            readBuff          Pointer to the read buffer.
			buffLen           Maximum read buffer size.
     

Return Value CSL_Status

  • CSL_SOK - Read successful
  • CSL_ESYS_BADHANDLE - Invalid handle

Pre Condition
This function can call by SPI_dataTransaction function.

Post Condition
SPI_deInit can be call after this function call.

Modifies

Example

			CSL_SpiHandle 	hSpi
           	Uint16          readBuff[size];
            Uint16          buffLen;
            CSL_status   status;

            status = SPI_read(hSpi,&readBuff, buffLen);
     

===========================================================================

References SPI_MAX_WORD_LEN.

Referenced by SPI_dataTransaction().

CSL_Status SPI_write ( CSL_SpiHandle  hSpi,
Uint16 *  writeBuffer,
Uint16  bufLen 
)

===========================================================================
SPI_write

Description
This function Write data to specified device.

Arguments

 			hSpi			  Pointer to handler
            writeBuff         Pointer to the write buffer.
			buffLen           Maximum read buffer size.
     

Return Value CSL_Status

  • CSL_SOK - Write successful
  • CSL_ESYS_BADHANDLE - Invalid handle

Pre Condition This function can call by SPI_dataTransaction function.

Post Condition
SPI_deInit can be call after this function call.

Modifies

Example

			CSL_SpiHandle 	hSpi
 			Uint16          writeBuff[size];
            Uint16          buffLen;
            CSL_status   	status;

            status = SPI_write(hSpi,&writeBuff, buffLen);
     

===========================================================================

References SPI_MAX_WORD_LEN, and SPI_WRITE_CMD.

Referenced by SPI_dataTransaction().