Rev 2764 Rev 2765
1 #include <main.h> 1 #include <main.h>
2   2  
-   3 /*
-   4 MPL115A1 SDN - +5V (always power on)
-   5 MPL115A1 CSN - PIN_C2
-   6 MPL115A1 SDO - PIN_C4 (twisted?)
-   7 MPL115A1 SDI - PIN_C5 (twisted?)
-   8 MPL115A1 SCK - PIN_C3
-   9 MPL115A1 GND - GND
-   10 MPL115A1 VDD - +5V
-   11 */
-   12  
3 #define CSN_SPI PIN_C2 13 #define CSN_SPI PIN_C2
4 int8 address, uiTadc, data ; 14 int8 address, uiTadc, data ;
5   15  
6   16  
7 // SPI mode definitions. 17 // SPI mode definitions.
8 #define SPI_MODE_0 (SPI_L_TO_H | SPI_XMIT_L_TO_H) 18 #define SPI_MODE_0 (SPI_L_TO_H | SPI_XMIT_L_TO_H)
9 #define SPI_MODE_1 (SPI_L_TO_H) 19 #define SPI_MODE_1 (SPI_L_TO_H)
10 #define SPI_MODE_2 (SPI_H_TO_L) 20 #define SPI_MODE_2 (SPI_H_TO_L)
11 #define SPI_MODE_3 (SPI_H_TO_L | SPI_XMIT_L_TO_H) 21 #define SPI_MODE_3 (SPI_H_TO_L | SPI_XMIT_L_TO_H)
12   22  
13   23  
14 void main() 24 void main()
15 { 25 {
16 printf("Start\n\r"); 26 printf("Start\n\r");
17   27  
18 setup_spi(SPI_MASTER | SPI_MODE_0 | SPI_CLK_DIV_64); 28 setup_spi(SPI_MASTER | SPI_MODE_0 | SPI_CLK_DIV_64);
19   29  
20 output_high(CSN_SPI); 30 output_high(CSN_SPI);
21   31  
22 delay_ms(100); 32 delay_ms(100);
23   33  
24 while(true) 34 while(true)
25 { 35 {
26 data = 5; //just to be sure that the value is updated 36 data = 5; //just to be sure that the value is updated
27   37  
28 //Start temperature and pressure conversion 38 //Start temperature and pressure conversion
29 address = 0x24; 39 address = 0x24;
30 address &= 0x7F; 40 address &= 0x7F;
31 41
32 output_low(CSN_SPI); 42 output_low(CSN_SPI);
33 delay_ms(1); 43 delay_ms(1);
34 spi_write(address); 44 spi_write(address);
35 delay_ms(1); 45 delay_ms(1);
36 spi_write(0x00); 46 spi_write(0x00);
37 delay_ms(1); 47 delay_ms(1);
38 output_high(CSN_SPI); 48 output_high(CSN_SPI);
39 delay_ms(2); 49 delay_ms(2);
40 50
41 51
42 // get MSB for Pressure 52 // get MSB for Pressure
43 address = 0x00; 53 address = 0x00;
44 address |= 0x80; 54 address |= 0x80;
45 55
46 output_low(CSN_SPI); 56 output_low(CSN_SPI);
47 delay_ms(1); 57 delay_ms(1);
48 spi_write(address); 58 spi_write(address);
49 delay_ms(1); 59 delay_ms(1);
50 data = spi_read(0x00); 60 data = spi_read(0x00);
51 delay_ms(1); 61 delay_ms(1);
52 output_high(CSN_SPI); 62 output_high(CSN_SPI);
53   63  
54 printf("%u\n\r", data); 64 printf("%u\n\r", data);
55   65  
56 //uiTadc = (unsigned int) data << 8; 66 //uiTadc = (unsigned int) data << 8;
57 //printf("%u\n\r", uiTadc); 67 //printf("%u\n\r", uiTadc);
58 68
59 69
60 delay_ms(100); 70 delay_ms(100);
61 } 71 }
62   72  
63 } 73 }