1 | void spi_fifo_init()
|
2 | {
|
3 | // Initialize SPI FIFO registers
|
4 | SpiaRegs.SPICCR.bit.SPISWRESET=0; // Reset SPI
|
5 |
|
6 | SpiaRegs.SPICCR.all=0x000F; //16-bit character, CLKPOL = 0
|
7 | SpiaRegs.SPICTL.all=0x000A; //Interrupts off, CLKPH = 1, Talk = 1
|
8 | SpiaRegs.SPISTS.all=0x0000;
|
9 | SpiaRegs.SPIBRR=0x0063; // Baud rate UNUSED as SLAVE
|
10 | SpiaRegs.SPIFFTX.all=0xC048; // Enable FIFO's, set TX FIFO level to 8
|
11 | SpiaRegs.SPIFFRX.all=0x4061; // Set RX FIFO level to 1
|
12 | SpiaRegs.SPIFFCT.all=0x00;
|
13 | SpiaRegs.SPIPRI.all=0x0008;
|
14 | SpiaRegs.SPIFFTX.bit.TXFFIENA=0; //TX Interrupt off
|
15 | SpiaRegs.SPICCR.bit.SPISWRESET=1; // Enable SPI
|
16 |
|
17 | SpiaRegs.SPIFFTX.bit.TXFIFO=1;
|
18 | SpiaRegs.SPIFFRX.bit.RXFIFORESET=1;
|
19 | }
|
20 |
|
21 |
|
22 | void InitSpiaGpio()
|
23 | {
|
24 |
|
25 | EALLOW;
|
26 |
|
27 |
|
28 | /* Enable internal pull-up for the selected pins */
|
29 | // Pull-ups can be enabled or disabled by the user.
|
30 | // This will enable the pullups for the specified pins.
|
31 | // Comment out other unwanted lines.
|
32 |
|
33 | // GpioCtrlRegs.GPAPUD.bit.GPIO16 = 0; // Enable pull-up on GPIO16 (SPISIMOA)
|
34 | // GpioCtrlRegs.GPAPUD.bit.GPIO17 = 0; // Enable pull-up on GPIO17 (SPISOMIA)
|
35 | // GpioCtrlRegs.GPAPUD.bit.GPIO18 = 0; // Enable pull-up on GPIO18 (SPICLKA)
|
36 | // GpioCtrlRegs.GPAPUD.bit.GPIO19 = 0; // Enable pull-up on GPIO19 (SPISTEA)
|
37 |
|
38 |
|
39 | GpioCtrlRegs.GPBPUD.bit.GPIO54 = 0; // Enable pull-up on GPIO54 (SPISIMOA)
|
40 | GpioCtrlRegs.GPBPUD.bit.GPIO55 = 0; // Enable pull-up on GPIO55 (SPISOMIA)
|
41 | GpioCtrlRegs.GPBPUD.bit.GPIO56 = 0; // Enable pull-up on GPIO56 (SPICLKA)
|
42 | GpioCtrlRegs.GPBPUD.bit.GPIO57 = 0; // Enable pull-up on GPIO57 (SPISTEA)
|
43 |
|
44 | GpioCtrlRegs.GPAPUD.bit.GPIO29 = 0; //Debug LED pull-up on
|
45 | // GpioCtrlRegs.GPAPUD.bit.GPIO1 = 0; //SPI_Transfer pull-up on
|
46 |
|
47 | /*Direction of used GPIO*/
|
48 | GpioCtrlRegs.GPBDIR.bit.GPIO54 = 0;
|
49 | GpioCtrlRegs.GPBDIR.bit.GPIO55 = 1;
|
50 | GpioCtrlRegs.GPBDIR.bit.GPIO56 = 0;
|
51 | GpioCtrlRegs.GPBDIR.bit.GPIO57 = 0;
|
52 |
|
53 | /* Set qualification for selected pins to asynch only */
|
54 | // This will select asynch (no qualification) for the selected pins.
|
55 | // Comment out other unwanted lines.
|
56 |
|
57 | // GpioCtrlRegs.GPAQSEL2.bit.GPIO16 = 3; // Asynch input GPIO16 (SPISIMOA)
|
58 | // GpioCtrlRegs.GPAQSEL2.bit.GPIO17 = 3; // Asynch input GPIO17 (SPISOMIA)
|
59 | // GpioCtrlRegs.GPAQSEL2.bit.GPIO18 = 3; // Asynch input GPIO18 (SPICLKA)
|
60 | // GpioCtrlRegs.GPAQSEL2.bit.GPIO19 = 3; // Asynch input GPIO19 (SPISTEA)
|
61 |
|
62 | GpioCtrlRegs.GPBQSEL2.bit.GPIO54 = 3; // Asynch input (SPISIMOA)
|
63 | GpioCtrlRegs.GPBQSEL2.bit.GPIO55 = 3; // Asynch input (SPISOMIA)
|
64 | GpioCtrlRegs.GPBQSEL2.bit.GPIO56 = 3; // Asynch input (SPICLKA)
|
65 | GpioCtrlRegs.GPBQSEL2.bit.GPIO57 = 3; // Asynch input (SPISTEA)
|
66 |
|
67 |
|
68 | /* Configure SPI-A pins using GPIO regs*/
|
69 | // This specifies which of the possible GPIO pins will be SPI functional pins.
|
70 | // Comment out other unwanted lines.
|
71 |
|
72 | // GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 1; // Configure GPIO16 as SPISIMOA
|
73 | // GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 1; // Configure GPIO17 as SPISOMIA
|
74 | // GpioCtrlRegs.GPAMUX2.bit.GPIO18 = 1; // Configure GPIO18 as SPICLKA
|
75 | // GpioCtrlRegs.GPAMUX2.bit.GPIO19 = 1; // Configure GPIO19 as SPISTEA
|
76 |
|
77 | GpioCtrlRegs.GPBMUX2.bit.GPIO54 = 1; // Configure GPIO54 as SPISIMOA
|
78 | GpioCtrlRegs.GPBMUX2.bit.GPIO55 = 1; // Configure GPIO55 as SPISOMIA
|
79 | GpioCtrlRegs.GPBMUX2.bit.GPIO56 = 1; // Configure GPIO56 as SPICLKA
|
80 | GpioCtrlRegs.GPBMUX2.bit.GPIO57 = 1; // Configure GPIO57 as SPISTEA
|
81 |
|
82 | GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 0;// Configure GPIO1 as GPIO
|
83 | GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 0;// Configure GPIO29 as GPIO
|
84 |
|
85 | /*Initial State! */
|
86 | GpioDataRegs.GPACLEAR.bit.GPIO1=1;
|
87 |
|
88 | /*Direction of used GPIO*/
|
89 | GpioCtrlRegs.GPADIR.bit.GPIO29 = 1; //GPIO Debug_LED out
|
90 | GpioCtrlRegs.GPADIR.bit.GPIO1 = 1; //GPIO SPI_Transfer out
|
91 |
|
92 |
|
93 | EDIS;
|
94 | }
|