達成と虚脱

プログラミング→なかなか取れないバグに遭遇→あの手この手でデバグ→やっと解決→堰を切ったように作業が進む→達成感→そして虚脱感→一度寝たけどヤル気が回復しない[いまココです]。

Avago Smart Display

6 thoughts on “達成と虚脱”

  1. あとでメールしますw > arms22

  2. おほほ。これはAvagoのスマートディスプレイシリーズのひとつで、HCMS-2819という型番です。高さ1cmの小型マトリクスLEDですな。1モジュールあたり8桁なんですが、それを2つカスケード接続しています。
    http://www.avagotech.co.jp/pages/en/led_displays/smart_alphanumeric_displays/serial_interface/hcms-2819/
    青は入手しにくいかもしれませんが、他の色はRSに在庫があるようです(Avago HCMSで検索してみてください)。シリアルタイプとパラレルタイプがあり、今回はシリアルを使ってます(パラレルタイプは鈴商で見かけたこともあります)。

    Arduino用のコードを貼っておきます。サンプルコードが全然見つからなかったので、データシートから想像して書いたものです。なので、変なことをしているかも。フォントの部分は、ArduinoのGLCDライブラリから一部引用しています。
    http://www.arduino.cc/playground/Code/GLCDks0108

    // Avago HCMS-2819 blue display 8+8 (cascaded)
    
    uint8_t font[] = {
      // font data (5 * 42 = 210bytes)
      0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
      0x00, 0x42, 0x7F, 0x40, 0x00,// 1
      0x42, 0x61, 0x51, 0x49, 0x46,// 2
      0x21, 0x41, 0x45, 0x4B, 0x31,// 3
      0x18, 0x14, 0x12, 0x7F, 0x10,// 4
      0x27, 0x45, 0x45, 0x45, 0x39,// 5
      0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
      0x01, 0x71, 0x09, 0x05, 0x03,// 7
      0x36, 0x49, 0x49, 0x49, 0x36,// 8
      0x06, 0x49, 0x49, 0x29, 0x1E,// 9
      0x00, 0x00, 0x00, 0x00, 0x00,// (space)
      0x08, 0x08, 0x08, 0x08, 0x08,// -
      0x00, 0x50, 0x30, 0x00, 0x00,// ,
      0x00, 0x60, 0x60, 0x00, 0x00,// .
      0x04, 0x02, 0x3f, 0x02, 0x04,// (arrow)
      0x32, 0x49, 0x79, 0x41, 0x3E,// @
      0x7E, 0x11, 0x11, 0x11, 0x7E,// A
      0x7F, 0x49, 0x49, 0x49, 0x36,// B
      0x3E, 0x41, 0x41, 0x41, 0x22,// C
      0x7F, 0x41, 0x41, 0x22, 0x1C,// D
      0x7F, 0x49, 0x49, 0x49, 0x41,// E
      0x7F, 0x09, 0x09, 0x01, 0x01,// F
      0x3E, 0x41, 0x41, 0x51, 0x32,// G
      0x7F, 0x08, 0x08, 0x08, 0x7F,// H
      0x00, 0x41, 0x7F, 0x41, 0x00,// I
      0x20, 0x40, 0x41, 0x3F, 0x01,// J
      0x7F, 0x08, 0x14, 0x22, 0x41,// K
      0x7F, 0x40, 0x40, 0x40, 0x40,// L
      0x7F, 0x02, 0x04, 0x02, 0x7F,// M
      0x7F, 0x04, 0x08, 0x10, 0x7F,// N
      0x3E, 0x41, 0x41, 0x41, 0x3E,// O
      0x7F, 0x09, 0x09, 0x09, 0x06,// P
      0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
      0x7F, 0x09, 0x19, 0x29, 0x46,// R
      0x46, 0x49, 0x49, 0x49, 0x31,// S
      0x01, 0x01, 0x7F, 0x01, 0x01,// T
      0x3F, 0x40, 0x40, 0x40, 0x3F,// U
      0x1F, 0x20, 0x40, 0x20, 0x1F,// V
      0x7F, 0x20, 0x18, 0x20, 0x7F,// W
      0x63, 0x14, 0x08, 0x14, 0x63,// X
      0x03, 0x04, 0x78, 0x04, 0x03,// Y
      0x61, 0x51, 0x49, 0x45, 0x43 // Z
    };
    
    #define DAT 4
    #define CLK 5
    #define CE 6
    #define RS 7
    #define RESET 8
    
    void setup() {
      pinMode(DAT, OUTPUT);
      pinMode(CLK, OUTPUT);
      pinMode(CE, OUTPUT);
      pinMode(RS, OUTPUT);
      pinMode(RESET, OUTPUT);
      digitalWrite(DAT, LOW);
      digitalWrite(CLK, LOW);
      digitalWrite(CE, HIGH);
      digitalWrite(RS, LOW);
    
      // reset first
      digitalWrite(RESET, LOW);
      delay(1);
      digitalWrite(RESET, HIGH);
    
      // initialize control registers
      delay(10);
      digitalWrite(RS, HIGH);
      digitalWrite(CE, LOW);
      shiftOut(DAT, CLK, MSBFIRST, 0b01001101); // Word_0: wakeup, 7% duty
      shiftOut(DAT, CLK, MSBFIRST, 0b01001101); // Word_0: wakeup, 7% duty
      digitalWrite(CE, HIGH);
      digitalWrite(CE, LOW);
      shiftOut(DAT, CLK, MSBFIRST, 0b10000001); // Word_1: simultaneous mode
      shiftOut(DAT, CLK, MSBFIRST, 0b10000001); // Word_1: simultaneous mode
      digitalWrite(CE, HIGH);
      digitalWrite(RS, LOW); // back to data mode
      delay(10);
    }
    
    void loop() {
    
      // test with dot register
      digitalWrite(CE, LOW);
      for(char i=0; i<16; i++) {
        for(char j=0; j<5; j++) {
          shiftOut(DAT, CLK, MSBFIRST, font[i*5+j]);
        }  
      }
      digitalWrite(CE, HIGH);
    
      delay(500);
      digitalWrite(CE, LOW);
      for(char i=10; i<26; i++) {
        for(char j=0; j<5; j++) {
          shiftOut(DAT, CLK, MSBFIRST, font[i*5+j]);
        }  
      }
      digitalWrite(CE, HIGH);
      delay(500);
    }
    
  3. しまった。
    秋葉原にいくまに見ておけば良かった。。
    共立電子で扱ってくんないかな。。

  4. どうもありがとうございます!
    私はFPGA派なので シリアル パラレルは悩みどころだなぁ…
    あと、青はやっぱりカッコいいなぁ…

コメントは停止中です。