2009-06-29 16:42:12 +00:00
-- eLua platform interface - SPI
2009-06-29 16:42:24 +00:00
-- Make a full description for each language
2009-06-29 16:42:12 +00:00
2009-06-29 16:42:24 +00:00
data_en =
{
-- Menu name
menu_name = " SPI " ,
2009-06-29 16:42:12 +00:00
2009-06-29 16:42:24 +00:00
-- Title
title = " eLua platform interface - SPI " ,
2009-06-29 16:42:12 +00:00
2009-06-29 16:42:24 +00:00
-- Overview
overview = " This part of the platform interface groups functions related to the SPI interface(s) of the MCU. " ,
-- Data structures, constants and types
structures =
{
{ text = [ [ // SPI mode
2009-06-29 16:42:12 +00:00
# define PLATFORM_SPI_MASTER 1
# define PLATFORM_SPI_SLAVE 0 ] ] ,
2009-06-29 16:42:24 +00:00
name = " Chip select " ,
desc = " Constants used to select/deselect the SPI SS pin (if applicable). "
} ,
2009-06-29 16:42:12 +00:00
2009-06-29 16:42:24 +00:00
{ text = [ [ // SS values
2009-06-29 16:42:12 +00:00
# define PLATFORM_SPI_SELECT_ON 1
# define PLATFORM_SPI_SELECT_OFF 0 ] ] ,
2009-06-29 16:42:24 +00:00
name = " SPI mode " ,
desc = " Constants used to select/deselect the SPI SS pin (if applicable). "
} ,
2009-06-29 16:42:12 +00:00
2009-06-29 16:42:24 +00:00
{ text = " typedef u32 spi_data_type; " ,
name = " SPI data type " ,
desc = " This is the type of a SPI data word, thus limiting the maximum size of a SPI data work to 32 bits (which should be enough for all practical purposes). "
}
2009-06-29 16:42:12 +00:00
} ,
2009-06-29 16:42:24 +00:00
-- Functions
funcs =
{
{ sig = " int #platform_spi_exists#( unsigned id ); " ,
desc = [ [ Checks if the platform has the hardware SPI specified as argument . Implemented in % src / common.c % , it uses the $ NUM_SPI $ macro that must be defined in the
platform ' s $platform_conf.h$ file (see @arch_overview.html#platforms@here@ for details). For example:</p>
~# define NUM_SPI 1 $ // The platform has 1 SPI interface $ ~</ p > ] ] ,
2009-06-29 16:43:27 +00:00
args = " $id$ - SPI interface ID " ,
2009-06-29 16:42:24 +00:00
ret = " 1 if the SPI interface exists, 0 otherwise "
2009-06-29 16:42:12 +00:00
} ,
2009-06-29 16:42:24 +00:00
{ sig = " u32 #platform_spi_setup#( unsigned id, int mode, u32 clock, unsigned cpol, unsigned cpha, unsigned databits ); " ,
desc = [[This function is used to initialize the parameters of the SPI interface. <br><font color="red">$NOTE$</font>: currently, only master SPI mode is implemented in eLua.]] ,
args =
{
2009-06-29 16:43:27 +00:00
" $id$ - SPI interface ID " ,
" $mode$ - SPI port mode ($PLATFORM_SPI_MASTER$ or $PLATFORM_SPI_SLAVE$, see @#spi_mode@here@. " ,
" $clock$ - clock speed for the SPI interface in master mode. " ,
" $cpol$ - SPI clock polarity " ,
" $cpha$ - SPI clock phase " ,
" $databits$ - length of the SPI data word in bits (usually 8, but configurable on some platforms). "
2009-06-29 16:42:24 +00:00
} ,
ret = " the actual clock set for the SPI interface. Depending on the hardware, this may have a different value than the $clock$ argument. "
} ,
2009-06-29 16:42:12 +00:00
2009-06-29 16:42:24 +00:00
{ sig = " spi_data_type #platform_spi_send_recv#( unsigned id, spi_data_type data ); " ,
desc = " Executes a SPI read/write cycle " ,
args =
{
2009-06-29 16:43:27 +00:00
" $id$ - SPI interface ID " ,
" $data$ - data to be sent to the SPI interface " ,
2009-06-29 16:42:24 +00:00
} ,
ret = " data read from the SPI interface "
2009-06-29 16:42:12 +00:00
} ,
2009-06-29 16:42:24 +00:00
{ sig = " void #platform_spi_select#( unsigned id, int is_select ); " ,
desc = [ [ For platforms that have a dedicates SS ( Slave Select ) pin in master SPI mode that can be controlled manually , this function should enable / disable this pin . If this functionality
does not exist in hardware this function does nothing . ] ] ,
args =
{
2009-06-29 16:43:27 +00:00
" $id$ - SPI interface ID. " ,
" $is_select$ - $PLATFORM_SPI_SELECT_ON$ to select, $PLATFORM_SPI_SELECT_OFF$ to deselect , see @#chip_select@here@. "
2009-06-29 16:42:24 +00:00
} ,
}
2009-06-29 16:42:12 +00:00
}
}