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