Ejemplo n.º 1
0
static rt_err_t wm_hostspi_init(struct rt_spi_configuration *cfg)
{

    spi_clear_fifo();
    spi_set_endian(1);
    if (cfg->data_width == 8)
    {
        tls_spi_trans_type(SPI_BYTE_TRANSFER);
    }
    if (cfg->data_width == 16)
    {
        tls_spi_trans_type(SPI_WORD_TRANSFER);
    }
    spi_set_mode(cfg->mode);
    spi_set_chipselect_mode(SPI_CS_INACTIVE_MODE);
    spi_force_cs_out(1);
    if(cfg->max_hz > BSP_SPI_MAX_HZ)
    {
        cfg->max_hz = BSP_SPI_MAX_HZ;
    }
    spi_set_sclk(cfg->max_hz);

    spi_set_tx_trigger_level(0);
    spi_set_rx_trigger_level(7);

    spi_set_rx_channel(1);
    spi_set_tx_channel(1);

    return RT_EOK;
}
Ejemplo n.º 2
0
int spi_demo(char *buf)
{
//	int time;
	
	tls_spi_slave_sel(SPI_SLAVE_CARD);
		
	tls_spi_trans_type(2);
	tls_spi_setup(TLS_SPI_MODE_0, TLS_SPI_CS_LOW, 100000);
#if 	CS_CTRL_SOFT
	tls_reg_write32(HR_IOCTL_GP_SPI, 2);	//cs 作为gpio18使用
	tls_gpio_cfg(18, TLS_GPIO_DIR_OUTPUT, TLS_GPIO_ATTR_PULLLOW);
#endif
	TestSPIReceiveData();	
#if 1	
	//	while(1)
		{
	TestSPITransferCMD();
	TestSPIReceiveData();
	OSTimeDly(10);
		}
#endif		
#if 0
	time = OSTimeGet();
	printf("\ntime1 = %d\n",time);
	for(i = 0;i < 1000;i ++)
#endif		
		{
	//TestSPITransferData();
		}
#if 0
	time = OSTimeGet();
	printf("\ntime1 = %d\n",time);
#endif	

	return WM_SUCCESS;
}