##// END OF EJS Templates
sync
jeandet@pc-de-jeandet3.LAB-LPP.LOCAL -
r33:565d4ea31641 dev_alexis
parent child
Show More
@@ -162,7 +162,7 void bsp_FSMC_init()
162
162
163 FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);
163 FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);
164
164
165 /* Enable FSMC NOR/SRAM Bank3 */
165 /* Enable FSMC NOR/SRAM Bank1 */
166 FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);
166 FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);
167 lcdIF0.writereg=&bsp_lcd0_write_reg;
167 lcdIF0.writereg=&bsp_lcd0_write_reg;
168 lcd0.interface=&lcdIF0;
168 lcd0.interface=&lcdIF0;
@@ -219,6 +219,10 void bsp_lcd0_write_reg(uint32_t reg,uin
219 {
219 {
220 *lcd0_CMD=(uint16_t)reg;
220 *lcd0_CMD=(uint16_t)reg;
221 *lcd0_DATA=(uint16_t)data;
221 *lcd0_DATA=(uint16_t)data;
222 printf("Write to 0x%x 0x%x\n\r",reg,data);
223 *lcd0_CMD=(uint16_t)reg;
224 data = *lcd0_DATA;
225 printf("Readback to 0x%x 0x%x\n\r",reg,data);
222 }
226 }
223
227
224
228
@@ -22,16 +22,35 int main()
22 *regtest=(int16_t)0;
22 *regtest=(int16_t)0;
23 printf("LCD ID=%x\n\r",0xFFFF&(*regtest2));
23 printf("LCD ID=%x\n\r",0xFFFF&(*regtest2));
24 *regtest=(int16_t)ILI9328_REGISTER_ENTRYMODE;
24 *regtest=(int16_t)ILI9328_REGISTER_ENTRYMODE;
25 printf("ILI9328_REGISTER_ENTRYMODE=%x\n\r",0xFFFF&(*regtest2));
25 *regtest2=(int16_t)0x1008;
26 *regtest=(int16_t)0x20;
26 *regtest=(int16_t)0x20;
27 *regtest2=(int16_t)0x0;
27 *regtest2=(int16_t)0x0;
28 *regtest=(int16_t)0x21;
28 *regtest=(int16_t)0x21;
29 *regtest2=(int16_t)0x0;
29 *regtest2=(int16_t)0x0;
30 *regtest=(int16_t)0x22;
30 *regtest=(int16_t)0x22;
31 for(volatile int i=0;i<1024*64;i++)
31 for(volatile int i=0;i<32;i++)
32 {
32 {
33 *regtest=(int16_t)0x20;
33 *regtest2=(int16_t)i;
34 *regtest2=(int16_t)i;
35 *regtest=(int16_t)0x21;
36 *regtest2=(int16_t)0x0;
37 *regtest=(int16_t)0x22;
38 *regtest2=(int16_t)-i;
34 }
39 }
40 *regtest=(int16_t)ILI9328_REGISTER_ENTRYMODE;
41 *regtest2=(int16_t)0x1018;
42
43 for(volatile int i=0;i<32;i++)
44 {
45 *regtest=(int16_t)0x20;
46 *regtest2=(int16_t)i;
47 *regtest=(int16_t)0x21;
48 *regtest2=(int16_t)0x0;
49 *regtest=(int16_t)0x22;
50 int16_t test=*regtest2;
51 printf("DATA@%d=%x\n\r",i,0xFFFF&(*regtest2));
52 }
53
35 if(-1==ina226open(&ina33VSens,i2c2,INA226_MODE_SHUNT_VOLTAGE_CONTINUOUS|INA226_AVERAGES_16|INA226_BUS_CONV_8244us|INA226_SHUNT_CONV_8244us,0,1,15,1000000))
54 if(-1==ina226open(&ina33VSens,i2c2,INA226_MODE_SHUNT_VOLTAGE_CONTINUOUS|INA226_AVERAGES_16|INA226_BUS_CONV_8244us|INA226_SHUNT_CONV_8244us,0,1,15,1000000))
36 {
55 {
37 printf("Can't open 3.3V monitor\n\r");
56 printf("Can't open 3.3V monitor\n\r");
@@ -24,60 +24,61
24
24
25 #include <uhandle.h>
25 #include <uhandle.h>
26 #include <genericLCD_Controler.h>
26 #include <genericLCD_Controler.h>
27 #include <stdint.h>
27
28
28 extern int ili9328init(struct LCD_t* LCD);
29 extern int ili9328init(struct LCD_t* LCD);
29 extern void ili9328paint_t(LCD_t* LCD,void* buffer,uint16_t Xpos,uint16_t Ypos,uint16_t Width,uint16_t Height);
30 extern void ili9328paint_t(LCD_t* LCD,void* buffer,uint16_t Xpos,uint16_t Ypos,uint16_t Width,uint16_t Height);
30
31
31 #define ILI9328_REGISTER_DRIVERCODEREAD ((uint16_t) 0x0000 )
32 #define ILI9328_REGISTER_DRIVERCODEREAD ((uint32_t) 0x0000 )
32 #define ILI9328_REGISTER_DRIVEROUTPUTCONTROL1 ((uint16_t) 0x0001 )
33 #define ILI9328_REGISTER_DRIVEROUTPUTCONTROL1 ((uint32_t) 0x0001 )
33 #define ILI9328_REGISTER_LCDDRIVINGCONTROL ((uint16_t) 0x0002 )
34 #define ILI9328_REGISTER_LCDDRIVINGCONTROL ((uint32_t) 0x0002 )
34 #define ILI9328_REGISTER_ENTRYMODE ((uint16_t) 0x0003 )
35 #define ILI9328_REGISTER_ENTRYMODE ((uint32_t) 0x0003 )
35 #define ILI9328_REGISTER_RESIZECONTROL ((uint16_t) 0x0004 )
36 #define ILI9328_REGISTER_RESIZECONTROL ((uint32_t) 0x0004 )
36 #define ILI9328_REGISTER_DISPLAYCONTROL1 ((uint16_t) 0x0007 )
37 #define ILI9328_REGISTER_DISPLAYCONTROL1 ((uint32_t) 0x0007 )
37 #define ILI9328_REGISTER_DISPLAYCONTROL2 ((uint16_t) 0x0008 )
38 #define ILI9328_REGISTER_DISPLAYCONTROL2 ((uint32_t) 0x0008 )
38 #define ILI9328_REGISTER_DISPLAYCONTROL3 ((uint16_t) 0x0009 )
39 #define ILI9328_REGISTER_DISPLAYCONTROL3 ((uint32_t) 0x0009 )
39 #define ILI9328_REGISTER_DISPLAYCONTROL4 ((uint16_t) 0x000A )
40 #define ILI9328_REGISTER_DISPLAYCONTROL4 ((uint32_t) 0x000A )
40 #define ILI9328_REGISTER_RGBDISPLAYINTERFACECONTROL1 ((uint16_t) 0x000C )
41 #define ILI9328_REGISTER_RGBDISPLAYINTERFACECONTROL1 ((uint32_t) 0x000C )
41 #define ILI9328_REGISTER_FRAMEMAKERPOSITION ((uint16_t) 0x000D )
42 #define ILI9328_REGISTER_FRAMEMAKERPOSITION ((uint32_t) 0x000D )
42 #define ILI9328_REGISTER_RGBDISPLAYINTERFACECONTROL2 ((uint16_t) 0x000F )
43 #define ILI9328_REGISTER_RGBDISPLAYINTERFACECONTROL2 ((uint32_t) 0x000F )
43 #define ILI9328_REGISTER_POWERCONTROL1 ((uint16_t) 0x0010 )
44 #define ILI9328_REGISTER_POWERCONTROL1 ((uint32_t) 0x0010 )
44 #define ILI9328_REGISTER_POWERCONTROL2 ((uint16_t) 0x0011 )
45 #define ILI9328_REGISTER_POWERCONTROL2 ((uint32_t) 0x0011 )
45 #define ILI9328_REGISTER_POWERCONTROL3 ((uint16_t) 0x0012 )
46 #define ILI9328_REGISTER_POWERCONTROL3 ((uint32_t) 0x0012 )
46 #define ILI9328_REGISTER_POWERCONTROL4 ((uint16_t) 0x0013 )
47 #define ILI9328_REGISTER_POWERCONTROL4 ((uint32_t) 0x0013 )
47 #define ILI9328_REGISTER_HORIZONTALGRAMADDRESSSET ((uint16_t) 0x0020 )
48 #define ILI9328_REGISTER_HORIZONTALGRAMADDRESSSET ((uint32_t) 0x0020 )
48 #define ILI9328_REGISTER_VERTICALGRAMADDRESSSET ((uint16_t) 0x0021 )
49 #define ILI9328_REGISTER_VERTICALGRAMADDRESSSET ((uint32_t) 0x0021 )
49 #define ILI9328_REGISTER_WRITEDATATOGRAM ((uint16_t) 0x0022 )
50 #define ILI9328_REGISTER_WRITEDATATOGRAM ((uint32_t) 0x0022 )
50 #define ILI9328_REGISTER_POWERCONTROL7 ((uint16_t) 0x0029 )
51 #define ILI9328_REGISTER_POWERCONTROL7 ((uint32_t) 0x0029 )
51 #define ILI9328_REGISTER_FRAMERATEANDCOLORCONTROL ((uint16_t) 0x002B )
52 #define ILI9328_REGISTER_FRAMERATEANDCOLORCONTROL ((uint32_t) 0x002B )
52 #define ILI9328_REGISTER_GAMMACONTROL1 ((uint16_t) 0x0030 )
53 #define ILI9328_REGISTER_GAMMACONTROL1 ((uint32_t) 0x0030 )
53 #define ILI9328_REGISTER_GAMMACONTROL2 ((uint16_t) 0x0031 )
54 #define ILI9328_REGISTER_GAMMACONTROL2 ((uint32_t) 0x0031 )
54 #define ILI9328_REGISTER_GAMMACONTROL3 ((uint16_t) 0x0032 )
55 #define ILI9328_REGISTER_GAMMACONTROL3 ((uint32_t) 0x0032 )
55 #define ILI9328_REGISTER_GAMMACONTROL4 ((uint16_t) 0x0035 )
56 #define ILI9328_REGISTER_GAMMACONTROL4 ((uint32_t) 0x0035 )
56 #define ILI9328_REGISTER_GAMMACONTROL5 ((uint16_t) 0x0036 )
57 #define ILI9328_REGISTER_GAMMACONTROL5 ((uint32_t) 0x0036 )
57 #define ILI9328_REGISTER_GAMMACONTROL6 ((uint16_t) 0x0037 )
58 #define ILI9328_REGISTER_GAMMACONTROL6 ((uint32_t) 0x0037 )
58 #define ILI9328_REGISTER_GAMMACONTROL7 ((uint16_t) 0x0038 )
59 #define ILI9328_REGISTER_GAMMACONTROL7 ((uint32_t) 0x0038 )
59 #define ILI9328_REGISTER_GAMMACONTROL8 ((uint16_t) 0x0039 )
60 #define ILI9328_REGISTER_GAMMACONTROL8 ((uint32_t) 0x0039 )
60 #define ILI9328_REGISTER_GAMMACONTROL9 ((uint16_t) 0x003C )
61 #define ILI9328_REGISTER_GAMMACONTROL9 ((uint32_t) 0x003C )
61 #define ILI9328_REGISTER_GAMMACONTROL10 ((uint16_t) 0x003D )
62 #define ILI9328_REGISTER_GAMMACONTROL10 ((uint32_t) 0x003D )
62 #define ILI9328_REGISTER_HORIZONTALADDRESSSTARTPOSITION ((uint16_t) 0x0050 )
63 #define ILI9328_REGISTER_HORIZONTALADDRESSSTARTPOSITION ((uint32_t) 0x0050 )
63 #define ILI9328_REGISTER_HORIZONTALADDRESSENDPOSITION ((uint16_t) 0x0051 )
64 #define ILI9328_REGISTER_HORIZONTALADDRESSENDPOSITION ((uint32_t) 0x0051 )
64 #define ILI9328_REGISTER_VERTICALADDRESSSTARTPOSITION ((uint16_t) 0x0052 )
65 #define ILI9328_REGISTER_VERTICALADDRESSSTARTPOSITION ((uint32_t) 0x0052 )
65 #define ILI9328_REGISTER_VERTICALADDRESSENDPOSITION ((uint16_t) 0x0053 )
66 #define ILI9328_REGISTER_VERTICALADDRESSENDPOSITION ((uint32_t) 0x0053 )
66 #define ILI9328_REGISTER_DRIVEROUTPUTCONTROL2 ((uint16_t) 0x0060 )
67 #define ILI9328_REGISTER_DRIVEROUTPUTCONTROL2 ((uint32_t) 0x0060 )
67 #define ILI9328_REGISTER_BASEIMAGEDISPLAYCONTROL ((uint16_t) 0x0061 )
68 #define ILI9328_REGISTER_BASEIMAGEDISPLAYCONTROL ((uint32_t) 0x0061 )
68 #define ILI9328_REGISTER_VERTICALSCROLLCONTROL ((uint16_t) 0x006A )
69 #define ILI9328_REGISTER_VERTICALSCROLLCONTROL ((uint32_t) 0x006A )
69 #define ILI9328_REGISTER_PARTIALIMAGE1DISPLAYPOSITION ((uint16_t) 0x0080 )
70 #define ILI9328_REGISTER_PARTIALIMAGE1DISPLAYPOSITION ((uint32_t) 0x0080 )
70 #define ILI9328_REGISTER_PARTIALIMAGE1AREASTARTLINE ((uint16_t) 0x0081 )
71 #define ILI9328_REGISTER_PARTIALIMAGE1AREASTARTLINE ((uint32_t) 0x0081 )
71 #define ILI9328_REGISTER_PARTIALIMAGE1AREAENDLINE ((uint16_t) 0x0082 )
72 #define ILI9328_REGISTER_PARTIALIMAGE1AREAENDLINE ((uint32_t) 0x0082 )
72 #define ILI9328_REGISTER_PARTIALIMAGE2DISPLAYPOSITION ((uint16_t) 0x0083 )
73 #define ILI9328_REGISTER_PARTIALIMAGE2DISPLAYPOSITION ((uint32_t) 0x0083 )
73 #define ILI9328_REGISTER_PARTIALIMAGE2AREASTARTLINE ((uint16_t) 0x0084 )
74 #define ILI9328_REGISTER_PARTIALIMAGE2AREASTARTLINE ((uint32_t) 0x0084 )
74 #define ILI9328_REGISTER_PARTIALIMAGE2AREAENDLINE ((uint16_t) 0x0085 )
75 #define ILI9328_REGISTER_PARTIALIMAGE2AREAENDLINE ((uint32_t) 0x0085 )
75 #define ILI9328_REGISTER_PANELINTERFACECONTROL1 ((uint16_t) 0x0090 )
76 #define ILI9328_REGISTER_PANELINTERFACECONTROL1 ((uint32_t) 0x0090 )
76 #define ILI9328_REGISTER_PANELINTERFACECONTROL2 ((uint16_t) 0x0092 )
77 #define ILI9328_REGISTER_PANELINTERFACECONTROL2 ((uint32_t) 0x0092 )
77 #define ILI9328_REGISTER_PANELINTERFACECONTROL4 ((uint16_t) 0x0095 )
78 #define ILI9328_REGISTER_PANELINTERFACECONTROL4 ((uint32_t) 0x0095 )
78 #define ILI9328_REGISTER_OTPVCMPROGRAMMINGCONTROL ((uint16_t) 0x00A1 )
79 #define ILI9328_REGISTER_OTPVCMPROGRAMMINGCONTROL ((uint32_t) 0x00A1 )
79 #define ILI9328_REGISTER_OTPVCMSTATUSANDENABLE ((uint16_t) 0x00A2 )
80 #define ILI9328_REGISTER_OTPVCMSTATUSANDENABLE ((uint32_t) 0x00A2 )
80 #define ILI9328_REGISTER_OTPPROGRAMMINGIDKEY ((uint16_t) 0x00A5 )
81 #define ILI9328_REGISTER_OTPPROGRAMMINGIDKEY ((uint32_t) 0x00A5 )
81
82
82
83
83 #endif
84 #endif
@@ -51,15 +51,15 int ili9328init(struct LCD_t* LCD)
51 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL2, 0x0007); // Power Control 2 (R11h)
51 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL2, 0x0007); // Power Control 2 (R11h)
52 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL3, 0x0000); // Power Control 3 (R12h)
52 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL3, 0x0000); // Power Control 3 (R12h)
53 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL4, 0x0000); // Power Control 4 (R13h)
53 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL4, 0x0000); // Power Control 4 (R13h)
54 _delay_(10000000);
54 _delay_(1000000);
55 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL1, 0x14B0); // Power Control 1 (R10h)
55 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL1, 0x14B0); // Power Control 1 (R10h)
56 _delay_(5000000);
56 _delay_(500000);
57 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL2, 0x0007); // Power Control 2 (R11h)
57 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL2, 0x0007); // Power Control 2 (R11h)
58 _delay_(5000000);
58 _delay_(500000);
59 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL3, 0x008E); // Power Control 3 (R12h)
59 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL3, 0x008E); // Power Control 3 (R12h)
60 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL4, 0x0C00); // Power Control 4 (R13h)
60 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL4, 0x0C00); // Power Control 4 (R13h)
61 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL7, 0x0015); // NVM read data 2 (R29h)
61 LCD->interface->writereg(ILI9328_REGISTER_POWERCONTROL7, 0x0015); // NVM read data 2 (R29h)
62 _delay_(5000000);
62 _delay_(500000);
63 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL1, 0x0000); // Gamma Control 1
63 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL1, 0x0000); // Gamma Control 1
64 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL2, 0x0107); // Gamma Control 2
64 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL2, 0x0107); // Gamma Control 2
65 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL3, 0x0000); // Gamma Control 3
65 LCD->interface->writereg(ILI9328_REGISTER_GAMMACONTROL3, 0x0000); // Gamma Control 3
@@ -79,7 +79,7 int ili9328init(struct LCD_t* LCD)
79 LCD->interface->writereg(ILI9328_REGISTER_PANELINTERFACECONTROL1, 0X0010); // Panel Interface Control 1 (R90h)
79 LCD->interface->writereg(ILI9328_REGISTER_PANELINTERFACECONTROL1, 0X0010); // Panel Interface Control 1 (R90h)
80 // Display On
80 // Display On
81 LCD->interface->writereg(ILI9328_REGISTER_DISPLAYCONTROL1, 0x0133); // Display Control (R07h)
81 LCD->interface->writereg(ILI9328_REGISTER_DISPLAYCONTROL1, 0x0133); // Display Control (R07h)
82 _delay_(5000000);
82 _delay_(500000);
83 LCD->interface->writereg(ILI9328_REGISTER_ENTRYMODE, 0x1030);
83 LCD->interface->writereg(ILI9328_REGISTER_ENTRYMODE, 0x1030);
84 LCD->interface->writereg(ILI9328_REGISTER_DRIVEROUTPUTCONTROL1, 0x0100);
84 LCD->interface->writereg(ILI9328_REGISTER_DRIVEROUTPUTCONTROL1, 0x0100);
85 //ili9328WriteCmd(ILI9328_REGISTER_WRITEDATATOGRAM);
85 //ili9328WriteCmd(ILI9328_REGISTER_WRITEDATATOGRAM);
General Comments 0
You need to be logged in to leave comments. Login now