E-Paper Device (EPD) based MiniNote module, powered by mbed on LPC1114FBD48. Shared in public domain with enclosure in 3D step format, hardware interface compatible with microBUS interface. Anyone can contribute on this project.

Dependencies:   mbed _24LCXXX

E-Badge MiniNote Project on mbed/NXP LPC1114 platform

Committer:
allankliu
Date:
Mon Jun 09 11:01:38 2014 +0000
Revision:
2:bb9f154ea2f4
Parent:
0:33994cfad0c2
Child:
3:1fa000d4da94
Fixed software SPI, reduce memory usage with 1K5 framebuffer and lightweight I2C NVMEM _24LCXXX lib.The code can be fited into LPC1114/2xx devices.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
allankliu 0:33994cfad0c2 1 #include "mbed.h"
allankliu 0:33994cfad0c2 2 #include "ssd1606.h"
allankliu 2:bb9f154ea2f4 3 //#include "Ebadge.h"
allankliu 2:bb9f154ea2f4 4 #include "_24LCXXX.h"
allankliu 2:bb9f154ea2f4 5 #include "rom_image.h"
allankliu 0:33994cfad0c2 6
allankliu 0:33994cfad0c2 7 #define STX 0x02
allankliu 0:33994cfad0c2 8 #define ETX 0x03
allankliu 0:33994cfad0c2 9 #define DISPWIDTH 172
allankliu 0:33994cfad0c2 10 #define DISPHEIGHT 72
allankliu 0:33994cfad0c2 11 #define DISPBPP 2
allankliu 0:33994cfad0c2 12 #define DISPBUFSIZE DISPWIDTH * DISPHEIGHT * DISPBPP / 8
allankliu 0:33994cfad0c2 13
allankliu 0:33994cfad0c2 14 // naked LPC1114 on breadboard, install LED pin28, pasive piezo-buzzer pin1
allankliu 0:33994cfad0c2 15 DigitalOut myled(dp28); // LED ... P0_7 (pin 28)
allankliu 0:33994cfad0c2 16 Serial uart(dp16, dp15); // UART .. P1_7: TX (pin 16), P1_6: RX (pin 15)
allankliu 2:bb9f154ea2f4 17 //PwmOut pwm(dp1); // PWM ... P0_8: CT16B0_MAT0 (pin1); sorry, blocking SPI!
allankliu 0:33994cfad0c2 18
allankliu 0:33994cfad0c2 19
allankliu 0:33994cfad0c2 20 uint16_t xmtptr;
allankliu 0:33994cfad0c2 21 uint16_t xmtsize;
allankliu 0:33994cfad0c2 22
allankliu 0:33994cfad0c2 23 //SSD1306 display(dp2,dp4,dp5,dp6,dp10);
allankliu 0:33994cfad0c2 24 // SSD1606(cs, rst, dc, clk, busy, data);
allankliu 2:bb9f154ea2f4 25 SSD1606 epd(P0_6,P0_3,P2_0,P1_9,P1_10,P1_11);
allankliu 2:bb9f154ea2f4 26
allankliu 2:bb9f154ea2f4 27 I2C i2c(P0_5, P0_4);
allankliu 2:bb9f154ea2f4 28 _24LCXXX nvmem(&i2c, 0x50);
allankliu 0:33994cfad0c2 29
allankliu 2:bb9f154ea2f4 30 //enum EEPROM::TypeEeprom T24C256;
allankliu 2:bb9f154ea2f4 31 //EEPROM fram2(P0_5,P0_4,0xA0,T24C256);
allankliu 2:bb9f154ea2f4 32
allankliu 2:bb9f154ea2f4 33 char c = '0';
allankliu 2:bb9f154ea2f4 34 unsigned char sbuf[128];
allankliu 0:33994cfad0c2 35
allankliu 0:33994cfad0c2 36 void setup() {
allankliu 2:bb9f154ea2f4 37 //pwm.period(0.001); // PWM period 1ms (1kHz)
allankliu 2:bb9f154ea2f4 38 uart.baud(115200); // Baud rate
allankliu 2:bb9f154ea2f4 39 //uart.puts("E-Badge MiniNote LPC1114 Demo Start.\n\r");
allankliu 2:bb9f154ea2f4 40 //nvmem.write(0x10,0x55);
allankliu 2:bb9f154ea2f4 41 epd.initialize();
allankliu 2:bb9f154ea2f4 42 epd.clear();
allankliu 2:bb9f154ea2f4 43 epd.update();
allankliu 2:bb9f154ea2f4 44 epd.rom_image(gImage_one);
allankliu 2:bb9f154ea2f4 45
allankliu 2:bb9f154ea2f4 46 /*
allankliu 2:bb9f154ea2f4 47 epd.test_image(TEST_BLK);
allankliu 2:bb9f154ea2f4 48 wait(3);
allankliu 2:bb9f154ea2f4 49 epd.test_image(TEST_GREY2);
allankliu 2:bb9f154ea2f4 50 wait(3);
allankliu 2:bb9f154ea2f4 51 epd.test_image(TEST_GREY1);
allankliu 2:bb9f154ea2f4 52 wait(3);
allankliu 2:bb9f154ea2f4 53 epd.test_image(TEST_WHT);
allankliu 2:bb9f154ea2f4 54 wait(3);
allankliu 2:bb9f154ea2f4 55 */
allankliu 2:bb9f154ea2f4 56 nvmem.byte_write(0,1);
allankliu 2:bb9f154ea2f4 57 nvmem.byte_write(1,2);
allankliu 2:bb9f154ea2f4 58 nvmem.byte_write(2,3);
allankliu 2:bb9f154ea2f4 59 nvmem.byte_write(3,4);
allankliu 0:33994cfad0c2 60 }
allankliu 0:33994cfad0c2 61
allankliu 0:33994cfad0c2 62 void loop() {
allankliu 0:33994cfad0c2 63 if (uart.readable()) {
allankliu 0:33994cfad0c2 64 c = uart.getc();
allankliu 0:33994cfad0c2 65 uart.putc(c);
allankliu 0:33994cfad0c2 66 }
allankliu 0:33994cfad0c2 67 }
allankliu 0:33994cfad0c2 68
allankliu 0:33994cfad0c2 69 int main() {
allankliu 0:33994cfad0c2 70 setup();
allankliu 0:33994cfad0c2 71
allankliu 0:33994cfad0c2 72 while(1) { // repeat (period 1sec)
allankliu 0:33994cfad0c2 73 loop();
allankliu 0:33994cfad0c2 74 }
allankliu 0:33994cfad0c2 75 }