Hallo,
bin gerade dabei ein DOGM128 an eine Launchpad zu testen. Controller ist
ein MSP430G2231. Leider tut sich gar nix am Display.
Hab bis jetzt nur die Init geschrieben. Diese müsste ja zumindest die
Spannungen an den den Kondensatoren "freischalten", leider ohne Erfolg!
Connected habe ich wie folgt:
SI -> P1.6
SCL -> P1.5
A0 -> P1.4
CS1B -> liegt ständig auf Masse
Reset -> P1.3
Code ist folgender:
1 | #include <msp430g2231.h>
|
2 |
|
3 | void spi_init (void){
|
4 | USICTL0 |= USIPE7 + USIPE6 + USIPE5 + USIMST + USIOE; // Port, SPI Master
|
5 | USICTL1 |= USICKPH;
|
6 | USICKCTL = USIDIV_0 + USISSEL_2; // SPI Clk = SMCLK
|
7 | USICTL0 &= ~USISWRST;
|
8 | USICNT = 8; // init-load counter
|
9 | }
|
10 |
|
11 | void spi_send_byte(char spi_data){
|
12 |
|
13 | USISRL = spi_data;
|
14 | USICNT = 8;
|
15 | while (!(USIIFG & USICTL1));
|
16 |
|
17 | }
|
18 |
|
19 |
|
20 | void main(void)
|
21 | {
|
22 |
|
23 | WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
|
24 | unsigned int i;
|
25 | //A0
|
26 | P1DIR |= BIT4;
|
27 | P1OUT |= BIT4;
|
28 | //reset
|
29 | P1DIR |= BIT3;
|
30 | P1OUT |= BIT3;
|
31 | //kurzer Reset
|
32 | P1OUT &= ~BIT3;
|
33 | for(i=0;i<500;i++);
|
34 | P1OUT |= BIT3;
|
35 | //Ende reset
|
36 |
|
37 | //setze A0 für Programmierung LCD
|
38 | P1OUT &= ~BIT4;
|
39 |
|
40 | spi_init();
|
41 |
|
42 | spi_send_byte(0x40);
|
43 | spi_send_byte(0xA1);
|
44 | spi_send_byte(0xC0);
|
45 | spi_send_byte(0xA6);
|
46 | spi_send_byte(0xA2);
|
47 | spi_send_byte(0x2F);
|
48 | spi_send_byte(0xF8);
|
49 | spi_send_byte(0x00);
|
50 | spi_send_byte(0x27);
|
51 | spi_send_byte(0x81);
|
52 | spi_send_byte(0x16);
|
53 | spi_send_byte(0xAC);
|
54 | spi_send_byte(0x00);
|
55 | spi_send_byte(0xAF);
|
56 |
|
57 | //setze A0 wieder auf 1
|
58 | P1OUT |= BIT4;
|
59 |
|
60 |
|
61 | }
|