Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2014
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. void ConfigureSPIFlash()
  2. {
  3. MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
  4. MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI1);
  5.  
  6. // Enable pin PD2 for SSI1 SSI1RX
  7. MAP_GPIOPinConfigure(GPIO_PD2_SSI1RX);
  8. MAP_GPIOPinTypeSSI(GPIO_PORTD_BASE, GPIO_PIN_2);
  9.  
  10. // Enable pin PD0 for SSI1 SSI1CLK
  11. MAP_GPIOPinConfigure(GPIO_PD0_SSI1CLK);
  12. MAP_GPIOPinTypeSSI(GPIO_PORTD_BASE, GPIO_PIN_0);
  13.  
  14. // Enable pin PD1 for Chip Enable
  15. MAP_GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE, GPIO_PIN_1);
  16. MAP_GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_1, GPIO_PIN_1);
  17.  
  18. // Enable pin PD3 for SSI1 SSI1TX
  19. MAP_GPIOPinConfigure(GPIO_PD3_SSI1TX);
  20. MAP_GPIOPinTypeSSI(GPIO_PORTD_BASE, GPIO_PIN_3);
  21.  
  22. MAP_SSIConfigSetExpClk(SSI1_BASE, MAP_SysCtlClockGet(), SSI_FRF_MOTO_MODE_0, SSI_MODE_MASTER, 125000, 8);
  23.  
  24. MAP_SSIEnable(SSI1_BASE);
  25.  
  26. uint32_t r;
  27. while(SSIDataGetNonBlocking(SSI1_BASE, &r)){}
  28. }
  29.  
  30.  
  31. unsigned char SPI_transmit(unsigned char data)
  32. {
  33. SSIDataPut(SSI1_BASE, data);
  34. uint32_t r;
  35. SSIDataGet(SSI1_BASE, &r);
  36.  
  37. return (unsigned char)r;
  38. }
  39.  
  40. void main(void)
  41. {
  42. ROM_FPUEnable();
  43. ROM_FPULazyStackingEnable();
  44.  
  45. SysCtlClockSet(SYSCTL_SYSDIV_4| SYSCTL_USE_PLL | SYSCTL_XTAL_16MHZ |SYSCTL_OSC_MAIN);
  46.  
  47. ConfigureUART();
  48.  
  49. ConfigureSPIFlash();
  50. UARTprintf("spi flash readyn");
  51.  
  52. uint8_t res;
  53.  
  54. // send Read-ID command
  55. GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_1, ~GPIO_PIN_1); // CE low
  56. SPI_transmit(0x90);
  57. SPI_transmit(0x00);
  58. SPI_transmit(0x00);
  59. SPI_transmit(0x01);
  60.  
  61. // get response
  62. res = SPI_transmit(0xff);
  63. UARTprintf("received: 0x%xn", res);
  64.  
  65. GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_1, GPIO_PIN_1); // CE high
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement