K rozhraní SPI na FITkitu (Komunikační systém) jsou připojeny 3 zařízení. (Na FITkitu v2.0 přibyl zvukový kodek. Vzhledem k tomu, že nevyužívá rozhraní SPI stejným způsobem jako ostatní zde jmenované komponenty, bude kodek v tomto dokumentu ignorován.) Těmito zařízeními jsou MCU, paměť FLASH a FPGA. Na sběrnice SPI probíhá master-slave přenos. Proto jedno zařízení musí být řídící. Řídící jednotku pro SPI na FITkitu tvoří MCU. Knihovna libfitkit pokrývá rozhraní SPI a nabízí řídicí funkce pro komunikaci s připojenými zařízeními přes sběrnici SPI.
void SPI_Init (void)
Inicializace SPI
void SPI_Close (void)
Deaktivace SPI
void FPGA_Init(void)
Inicializace SPI/FPGA
void FPGA_Close(void)
Deaktivace SPI/FPGA
unsigned char flash_init(char show_info)
Inicializace SPI/FLASH
unsigned char FLASH_ReadStatus(void)
Čtení stavového registru z paměti FLASH
SPI_set_cs_FLASH(bool active)
a SPI_set_cs_FPGA(bool active)
Makra výběru FLASH pameti nebo FPGA, aktivní v 1.
unsigned char SPI_read_write(unsigned char datain)
Výměna bytu přes SPI
int FPGA_SPI_RW_AN_DN(unsigned char rw, unsigned long addr, unsigned char *data, int m, int n)
Výměna bloku dat o délce n bytů s komponentou v FPGA adresovanou pomocí m bytů
int FPGA_SPI_RW_A8_DN(unsigned char rw, unsigned char addr, unsigned char *data, int n)
Výměna bloku dat o délce n*8 bitů s komponentou v FPGA adresovanou pomocí 8-mi bitů
unsigned char FPGA_SPI_RW_A8_D8(unsigned char rw, unsigned char addr, unsigned char data)
Výměna bloku dat o délce 8 bitů s komponentou v FPGA adresovanou pomocí 8-mi bitů
unsigned int FPGA_SPI_RW_A8_D16(unsigned char rw, unsigned char addr, unsigned int data)
Výměna bloku dat o délce 16 bitů s komponentou v FPGA adresovanou pomocí 8-mi bitů
Pro postupný zápis šesti bytů na adresu danou konstantou BASE_ADDR_COMPONENT lze použít:
unsigned char pkt[6]; pkt[1] = 0x01; pkt[0] = 0x00; pkt[3] = 0x03; pkt[2] = 0x02; pkt[5] = 0x05; pkt[4] = 0x04; FPGA_SPI_RW_A8_DN(SPI_FPGA_ENABLE_WRITE, BASE_ADDR_COMPONENT, &(pkt[0]), 6);