2018年7月18日 星期三

DIY - ESP8266:ESP-12F DV305 AD16312 VFD 顯示板程式(一百零六)

DIY - ESP8266:ESP-12F DV305 AD16312 VFD 顯示板程式(一百零六):

DV305 的真空螢光顯示屏(VFD / Vacuum Fluorescent Display)是使用 AD16312 (1/4- to 1/11-duty VFD controller/driver)來驅動,AD16312 驅動的接腳已經連接到連接器,包括 AD16312 DIN(Data In)連接至 GPIO13 (D7)、AD16312 DOUT(Data Out)連接至 GPIO12 (D6)、AD16312 CLK(Clock Input)連接至 GPIO14 (D6)和 AD16312 STB(Chip Select)連接至 GPIO0 (D3)。

ESP-12F DV305 AD16312 VFD 顯示板試驗電路
AD16312 的內部方框圖
AD16312 的信號時序
ESP-12F DV305 AD16312 VFD 顯示板模組 IO 設定:
*****************************************************************************
* Use discrete I/O for interface (No PMP module used)
* Function                   MCU Pins                    VFD pins (DV305 Module)
* ========== ========                    ========
* CHIP SELECT        GPIO0  (D3)                /STB
* CLOCK                    GPIO14 (D5)               CLK
* DOUT                       GPIO12 (D6)               DOUT
* DIN                           GPIO13 (D7)               DIN
******************************************************************************/
// NEC uPD16312 VFD STB GPIO0 Output (D3)
// NEC uPD16312 VFD CS=STB=Chip Select Pin
#define d16312_CS_ACTIVE                         GPIO_OUTPUT_SET(0, 0)
#define d16312_CS_DEACTIVE                    GPIO_OUTPUT_SET(0, 1)
#define d16312_CS_INIT                   PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0); d16312_CS_DEACTIVE

// NEC uPD16312 CLK (Output) GPIO14 Output (D5)
#define d16312_CLK_MUX                           PERIPHS_IO_MUX_MTMS_U
#define d16312_CLK_FUNC                          FUNC_GPIO14
#define d16312_CLK_PIN                              14
#define d16312_CLK_BIT                              BIT14

// NEC uPD16312 Dout (Input) GPIO12 Input (D6)
#define d16312_DOUT_MUX                                    PERIPHS_IO_MUX_MTDI_U
#define d16312_DOUT_FUNC                                   FUNC_GPIO12
#define d16312_DOUT_PIN                           12
#define d16312_DOUT_BIT                           BIT12

// NEC uPD16312 Din (Output) GPIO13 Output (D7)
#define d16312_DIN_MUX                            PERIPHS_IO_MUX_MTCK_U
#define d16312_DIN_FUNC                           FUNC_GPIO13
#define d16312_DIN_PIN                               13
#define d16312_DIN_BIT                               BIT13

ESP-12F DV305 AD16312 VFD 顯示板模組初始化程式:
void ICACHE_FLASH_ATTR vfd_d16312_init(void)
{
    PIN_FUNC_SELECT(d16312_DOUT_MUX, d16312_DOUT_FUNC); // GPIO12 Input (D6)
    PIN_FUNC_SELECT(d16312_DIN_MUX, d16312_DIN_FUNC);  // GPIO13 Output (D7)
    PIN_FUNC_SELECT(d16312_CLK_MUX, d16312_CLK_FUNC);  // GPIO14 Output (D5)

    d16312_CS_DEACTIVE;
    _CLK0;
    _DIN0;
}

void ICACHE_FLASH_ATTR vfd_d16312_reset(void)
{
    vfd_d16312_cmd(0x00); // 4 Grids/Digits x 16 Segments
    vfd_d16312_cmd(0x40); // Normal Display Increments Address After Data has been written
    vfd_d16312_cmd(0xC0); // Address Start from 00H
    vfd_d16312_cmd(0x8F); // Display Control Command - Display On, Max DIM
}

ESP-12F DV305 AD16312 VFD 顯示板試驗電路
ESP-12F DV305 AD16312 VFD 顯示板試驗電路 OLED 顯示
ESP-12F DV305 AD16312 VFD 顯示板試驗電路 VFD 顯示
ESP8266 程式:ESP12F - 042 - VFD - 01 D16312 All Display Scan - 20180529
 
相關網址:
※ DIY - ESP8266:VFD 真空螢光顯示屏(一百零四)
※ DIY - ESP8266:ESP-12F DV305 AD16312 VFD 顯示板試驗電路(一百零五)
※ DIY - ESP8266:Futaba M11BT222A VFD 顯示屏介紹(一百零七)
※ DIY - ESP8266:ESP-12F Futaba M11BT222A VFD 顯示屏拆解(一百零八)
※ DIY - ESP8266:ESP-12F Futaba M11BT222A VFD 顯示屏電路(一百零九)
※ DIY - ESP8266:ESP-12F Futaba M11BT222A VFD 顯示屏程式(一百一十)

2018年 7月 18日 天氣報告
氣溫:27.7@ 19:40
相對濕度:百分之 94%
天氣:微雨

沒有留言:

張貼留言