#include #include #include #include #include #define DEV_NUM 4 //default 0 #define CL_POL 1 //default 1 #define CL_PHA 1 //default 0 #define CL_BRATE 3000000 //default 8192000, 2000000? #define CS_UP_UDLY 1 //default 1 #define CS_DW_UDLY 1 //default 1 #define TR_BT_UDLY 1 //default 1 static cyg_spi_at91_device_t spi_eb55_device CYG_SPI_DEVICE_ON_BUS(0) = { .spi_device.spi_bus = &cyg_spi_at91_bus.spi_bus, .dev_num = DEV_NUM, // Device number .cl_pol = CL_POL, // Clock polarity (0 or 1) .cl_pha = CL_PHA, // Clock phase (0 or 1) .cl_brate = CL_BRATE, // Clock baud rate .cs_up_udly = CS_UP_UDLY, // Delay in usec between CS up and transfer start .cs_dw_udly = CS_DW_UDLY, // Delay in usec between transfer end and CS down .tr_bt_udly = TR_BT_UDLY // Delay in usec between two transfers }; cyg_spi_device *cyg_spi_eb55_device = &spi_eb55_device.spi_device; void printAT91_SPI_Configuration(cyg_spi_at91_device_t dev); void setAT91_SPI_Configuration(cyg_spi_at91_device_t *dev); void cyg_user_start(void) { cyg_uint8 tx_data0, tx_data1, tx_data2, tx_data3; cyg_uint8 rx_data; printf("Entering application !\n"); hal_diag_led(0x0); tx_data0=0x0; tx_data1=0x1; tx_data2=0x90; tx_data3=0x15; //setAT91_SPI_Configuration(cyg_spi_dataflash_dev0); cyg_spi_tick(cyg_spi_eb55_device, 0, 10); printf("Sending data...\n"); printf("1\n"); cyg_spi_transaction_begin(cyg_spi_eb55_device); printf("2\n"); cyg_spi_transaction_transfer(cyg_spi_eb55_device, 0, 1, &tx_data0, &rx_data, 0); printf("3\n"); //cyg_spi_transaction_tick(cyg_spi_eb55_device, 0, 1); printf("4\n"); cyg_spi_transaction_end(cyg_spi_eb55_device); printf("5\n"); printf("Datas deceived : %i\n",rx_data); printf("Sending data...\n"); printf("1\n"); cyg_spi_transaction_begin(cyg_spi_eb55_device); printf("2\n"); cyg_spi_transaction_transfer(cyg_spi_eb55_device, 0, 1, &tx_data1, &rx_data, 0); printf("3\n"); //cyg_spi_transaction_tick(cyg_spi_eb55_device, 0, 1); printf("4\n"); cyg_spi_transaction_end(cyg_spi_eb55_device); printf("5\n"); printf("Datas deceived : %i\n",rx_data); printf("Sending data...\n"); printf("1\n"); cyg_spi_transaction_begin(cyg_spi_eb55_device); printf("2\n"); cyg_spi_transaction_transfer(cyg_spi_eb55_device, 0, 1, &tx_data2, &rx_data, 0); printf("3\n"); //cyg_spi_transaction_tick(cyg_spi_eb55_device, 0, 1); printf("4\n"); cyg_spi_transaction_end(cyg_spi_eb55_device); printf("5\n"); printf("Datas deceived : %i\n",rx_data); printf("Sending data...\n"); printf("1\n"); cyg_spi_transaction_begin(cyg_spi_eb55_device); printf("2\n"); cyg_spi_transaction_transfer(cyg_spi_eb55_device, 0, 1, &tx_data3, &rx_data, 0); printf("3\n"); //cyg_spi_transaction_tick(cyg_spi_eb55_device, 0, 1); printf("4\n"); cyg_spi_transaction_end(cyg_spi_eb55_device); printf("5\n"); printf("Datas deceived : %i\n",rx_data); //printAT91_SPI_Configuration(*spi_eb55_device); /*printf("Sending data...\n"); cyg_spi_transfer(cyg_spi_eb55_device, 0, 1, &tx_data0, &rx_data); cyg_spi_tick(cyg_spi_eb55_device, 0, 1); printf("Datas deceived : %i\n",rx_data); cyg_spi_transfer(cyg_spi_eb55_device, 0, 1, &tx_data1, &rx_data); cyg_spi_tick(cyg_spi_eb55_device, 0, 1); printf("Datas deceived : %i\n",rx_data); cyg_spi_transfer(cyg_spi_eb55_device, 0, 1, &tx_data2, &rx_data); //cyg_spi_tick(cyg_spi_eb55_device, 0, 8); printf("Datas deceived : %i\n",rx_data); cyg_spi_transfer(cyg_spi_eb55_device, 0, 1, &tx_data3, &rx_data); //cyg_spi_tick(cyg_spi_eb55_device, 0, 8); printf("Datas deceived : %i\n",rx_data);*/ printf("End of main !\n"); //cyg_thread_exit(); } void setAT91_SPI_Configuration(cyg_spi_at91_device_t *dev) { printAT91_SPI_Configuration(*dev); printf("Setting SPI AT91 devince configuration...\n"); dev->dev_num = DEV_NUM; dev->cl_pol = CL_POL; dev->cl_pha = CL_PHA; dev->cl_brate = CL_BRATE; dev->cs_up_udly = CS_UP_UDLY; dev->cs_dw_udly = CS_DW_UDLY; dev->tr_bt_udly = TR_BT_UDLY; printf("Configuration setted.\n"); printAT91_SPI_Configuration(*dev); } void printAT91_SPI_Configuration(cyg_spi_at91_device_t dev) { printf("Printing SPI AT91 device configuration :\n"); printf("- -------------\n"); printf("- dev_number = %i\n",dev.dev_num); printf("- cl_polarity = %i\n",dev.cl_pol); printf("- cl_phase = %i\n",dev.cl_pha); printf("- cl_baudrate = %i\n",dev.cl_brate); printf("- cs_up_udly = %i\n",dev.cs_up_udly); printf("- cs_dw_udly = %i\n",dev.cs_dw_udly); printf("- tr_br_udly = %i\n",dev.tr_bt_udly); printf("- -------------\n"); }