¿Que es?

Es una librería que te permite hacer de forma rápida y fácil las funciones de escritura y lectura mediante el protocolo SPI.

¿Requerimientos?
  • Xc32 V2.30 o superior.
  • MplabX V5.25 o superior.
  • Framework Harmony V2.06 o superior.
  • Microcontrolador de 32 bits (PIC32MX o PIC32MZ).
¿Como lo "instalo"?

Prototipos:

void spi_write(SPI_MODULE_ID index, uint8_t data);
void spi_fast_read(SPI_MODULE_ID index, uint8_t *write_buffer, size_t write_num, uint8_t *read_buffer, uint32_t read_num);
void spi_write_read(SPI_MODULE_ID index, uint8_t *write_buffer, size_t write_num, uint8_t *read_buffer, uint32_t read_num);

¿Como se usa?

Escribiendo y leyendo datos de memoria flash externa:

/*Escribiendo datos*/
static const uint8_t datos[] = { PP, 0x00,0x00,0x00, 0xDA,0xED,0xAE,0xEA,WRDI };
spi_write_read(SPI_ID_1,datos,sizeof(datos),NULL,0);
/*Leyendo datos*/
static const uint8_t leer[] = { NORD,0x00,0x00,0x00 };
static uint8_t rx_buffer[4];
spi_write_read(SPI_ID_1,leer,sizeof(leer),rx_buffer,sizeof(rx_buffer));

Leyendo datos de memoria flash externa a 25Mhz:

/*Cuando se usa fast_read, el programador debe controlar la linea CS*/
PLIB_PORTS_PinClear(PORTS_ID_0,PORT_CHANNEL_D, PORTS_BIT_POS_9);
spi_fast_read(SPI_ID_1,dato,sizeof(dato),rx_buffer, sizeof(rx_buffer));
PLIB_PORTS_PinSet(PORTS_ID_0,PORT_CHANNEL_D, PORTS_BIT_POS_9);

Enviando datos leídos de memoria microSD:

/*El programador debe proporcionar el sistema de archivos*/
FS_mount(fs);
FS_open(fs,"file.txt");
//Guardando datos en un arreglo
FS_read(fs,rx_buffer,sizeof(rxbuffer));
for(k=0;k!=sizeof(rx_buffer);k++){
spi_write(SPI_ID_1, rx_buffer[k]); } //Enviando datos a pantalla

¿Cuanto cuesta?

La versión no optimizada es completamente gratuita.

¿Que diferencia hay entre la versión optimizada y la gratuita?

Virtualmente ninguna, ambas contienen exactamente las mismas funciones, la diferencia es que como su nombre lo indica, la versión optimizada ocupa mucho menos espacio en flash (lo que se traduce en mas espacio para tu aplicación) y aparte contiene códigos de ejemplo para su utilización.

Descargar:

Versión gratuita

Compra la versión optimizada: