update for the serialVFD-driver (Stefan Herdler):
- successfully tested with the* *Samsung 20S204DA2* *VFD - Improvements in the support of displays without usercharacters - Update of the documentation.
This commit is contained in:
@@ -82,7 +82,15 @@ The driver should operate most of NEC, Futaba and Noritake 7x5 dot VFDs with
|
|||||||
<entry>No</entry>
|
<entry>No</entry>
|
||||||
<entry> </entry>
|
<entry> </entry>
|
||||||
</row>
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>Samsung 20S204DA2</entry>
|
||||||
|
<entry>?</entry>
|
||||||
|
<entry>Ok</entry>
|
||||||
|
<entry>Ok</entry>
|
||||||
|
<entry>Yes</entry>
|
||||||
|
<entry>The display is FUTABA compatible (hard and software). Set <command>Custom-Characters=0</command>
|
||||||
|
in <filename>LCDd.conf.</filename> </entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
<row>
|
<row>
|
||||||
<entry>Noritake CU20026SCPB-T</entry>
|
<entry>Noritake CU20026SCPB-T</entry>
|
||||||
@@ -197,14 +205,14 @@ optional
|
|||||||
|
|
||||||
<para>CN1:</para>
|
<para>CN1:</para>
|
||||||
<screen><![CDATA[
|
<screen><![CDATA[
|
||||||
Pin 33 <--- RxD
|
Pin 33 ------- RxD
|
||||||
(Testmode: connect pins 25 and 26, then power up)
|
(Testmode: connect pins 25 and 26, then power up)
|
||||||
]]></screen>
|
]]></screen>
|
||||||
|
|
||||||
<para>CN2:</para>
|
<para>CN2:</para>
|
||||||
<screen><![CDATA[
|
<screen><![CDATA[
|
||||||
Pin 1 <--- +5V
|
Pin 1 ------- +5V
|
||||||
Pin 2 <--- GND
|
Pin 2 ------- GND
|
||||||
]]></screen>
|
]]></screen>
|
||||||
</sect4>
|
</sect4>
|
||||||
|
|
||||||
@@ -241,6 +249,20 @@ You can activate two different testmodes with them.
|
|||||||
</screen>
|
</screen>
|
||||||
</sect4>
|
</sect4>
|
||||||
|
|
||||||
|
<sect4 id="serialVFD-serial-connections-FUTABA">
|
||||||
|
<title>FUTABA Displays (M402SD06GJ):</title>
|
||||||
|
<screen><![CDATA[Pin 2 ------ +5V
|
||||||
|
Pin 4 ------ +5V
|
||||||
|
Pin 6 ------ +5V
|
||||||
|
|
||||||
|
Pin 10 ------ GND
|
||||||
|
Pin 12 ------ GND
|
||||||
|
Pin 14 ------ GND
|
||||||
|
|
||||||
|
Pin 19 ------ RxD
|
||||||
|
]]></screen>
|
||||||
|
</sect4>
|
||||||
|
|
||||||
|
|
||||||
</sect3>
|
</sect3>
|
||||||
|
|
||||||
@@ -256,7 +278,7 @@ You can activate two different testmodes with them.
|
|||||||
parallel Port: Display (NEC):
|
parallel Port: Display (NEC):
|
||||||
Pin: Name: Name: Pin:
|
Pin: Name: Name: Pin:
|
||||||
|
|
||||||
1 /STROBE -------------- /WR 1
|
1 /STROBE -------------- /WR 17
|
||||||
2 D0 -------------- D0 15
|
2 D0 -------------- D0 15
|
||||||
3 D1 -------------- D1 13
|
3 D1 -------------- D1 13
|
||||||
4 D2 -------------- D2 11
|
4 D2 -------------- D2 11
|
||||||
@@ -280,8 +302,8 @@ optional
|
|||||||
]]></screen>
|
]]></screen>
|
||||||
<para>CN2:</para>
|
<para>CN2:</para>
|
||||||
<screen><![CDATA[
|
<screen><![CDATA[
|
||||||
Pin 1 <--- +5V
|
Pin 1 ------ +5V
|
||||||
Pin 2 <--- GND
|
Pin 2 ------ GND
|
||||||
]]></screen>
|
]]></screen>
|
||||||
</sect4>
|
</sect4>
|
||||||
|
|
||||||
@@ -291,7 +313,7 @@ Pin 2 <--- GND
|
|||||||
parallel Port: Display (FUTABA):
|
parallel Port: Display (FUTABA):
|
||||||
Pin: Name: Name: Pin:
|
Pin: Name: Name: Pin:
|
||||||
|
|
||||||
1 /STROBE -------------- /WR 1
|
1 /STROBE -------------- /WR 17
|
||||||
2 D0 -------------- D0 15
|
2 D0 -------------- D0 15
|
||||||
3 D1 -------------- D1 13
|
3 D1 -------------- D1 13
|
||||||
4 D2 -------------- D2 11
|
4 D2 -------------- D2 11
|
||||||
|
|||||||
+28
-11
@@ -320,8 +320,13 @@ serialVFD_vbar (Driver *drvthis, int x, int y, int len, int promille, int option
|
|||||||
{
|
{
|
||||||
PrivateData *p = drvthis->private_data;
|
PrivateData *p = drvthis->private_data;
|
||||||
|
|
||||||
serialVFD_init_vbar(drvthis);
|
if (p->customchars >= p->cellheight || p->predefined_vbar == 1){
|
||||||
lib_vbar_static(drvthis, x, y, len, promille, options, p->cellheight, p->vbar_cc_offset);
|
serialVFD_init_vbar(drvthis);
|
||||||
|
lib_vbar_static(drvthis, x, y, len, promille, options, p->cellheight, p->vbar_cc_offset);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
lib_vbar_static(drvthis, x, y, len, promille, options, 2, 0x5E);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////
|
||||||
@@ -333,9 +338,13 @@ serialVFD_hbar (Driver *drvthis, int x, int y, int len, int promille, int option
|
|||||||
{
|
{
|
||||||
PrivateData *p = drvthis->private_data;
|
PrivateData *p = drvthis->private_data;
|
||||||
|
|
||||||
serialVFD_init_hbar(drvthis);
|
if (p->customchars >= p->cellwidth || p->predefined_hbar == 1){
|
||||||
lib_hbar_static(drvthis, x, y, len, promille, options, p->cellwidth, p->hbar_cc_offset);
|
serialVFD_init_hbar(drvthis);
|
||||||
|
lib_hbar_static(drvthis, x, y, len, promille, options, p->cellwidth, p->hbar_cc_offset);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
lib_hbar_static(drvthis, x, y, len, promille, options, 2, 0x2C);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -534,14 +543,22 @@ serialVFD_icon (Driver *drvthis, int x, int y, int icon)
|
|||||||
serialVFD_chr(drvthis, x, y, 127);
|
serialVFD_chr(drvthis, x, y, 127);
|
||||||
break;
|
break;
|
||||||
case ICON_HEART_FILLED:
|
case ICON_HEART_FILLED:
|
||||||
p->ccmode = CCMODE_STANDARD;
|
if (p->customchars > 0){
|
||||||
serialVFD_set_char(drvthis, 0, heart_filled);
|
p->ccmode = CCMODE_STANDARD;
|
||||||
serialVFD_chr(drvthis, x, y, 0);
|
serialVFD_set_char(drvthis, 0, heart_filled);
|
||||||
|
serialVFD_chr(drvthis, x, y, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
serialVFD_icon(drvthis, x, y, ICON_BLOCK_FILLED);
|
||||||
break;
|
break;
|
||||||
case ICON_HEART_OPEN:
|
case ICON_HEART_OPEN:
|
||||||
p->ccmode = CCMODE_STANDARD;
|
if (p->customchars > 0){
|
||||||
serialVFD_set_char(drvthis, 0, heart_open);
|
p->ccmode = CCMODE_STANDARD;
|
||||||
serialVFD_chr(drvthis, x, y, 0);
|
serialVFD_set_char(drvthis, 0, heart_open);
|
||||||
|
serialVFD_chr(drvthis, x, y, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
serialVFD_chr(drvthis, x, y, 0x23);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return -1; // Let the core do other icons
|
return -1; // Let the core do other icons
|
||||||
|
|||||||
@@ -89,6 +89,8 @@ typedef struct driver_private_data {
|
|||||||
int off_brightness;
|
int off_brightness;
|
||||||
int hw_brightness;
|
int hw_brightness;
|
||||||
int customchars;
|
int customchars;
|
||||||
|
int predefined_hbar;
|
||||||
|
int predefined_vbar;
|
||||||
int ISO_8859_1;
|
int ISO_8859_1;
|
||||||
unsigned int refresh_timer;
|
unsigned int refresh_timer;
|
||||||
unsigned char charmap[128];
|
unsigned char charmap[128];
|
||||||
|
|||||||
@@ -70,6 +70,8 @@ serialVFD_load_NEC_FIPC (Driver *drvthis)
|
|||||||
p->customchars=1; // number of custom characters the display provides
|
p->customchars=1; // number of custom characters the display provides
|
||||||
p->vbar_cc_offset=5; // character offset of the bars
|
p->vbar_cc_offset=5; // character offset of the bars
|
||||||
p->hbar_cc_offset=12; // character offset of the bars
|
p->hbar_cc_offset=12; // character offset of the bars
|
||||||
|
p->predefined_hbar=1; // the display has predefined hbar-characters
|
||||||
|
p->predefined_vbar=1; // the display has predefined vbar-characters
|
||||||
|
|
||||||
// hardwarespecific commands:
|
// hardwarespecific commands:
|
||||||
// hw_cmd[Command][data] = {{commandlength , command 1},
|
// hw_cmd[Command][data] = {{commandlength , command 1},
|
||||||
@@ -145,6 +147,8 @@ serialVFD_load_KD (Driver *drvthis)
|
|||||||
p->customchars=31; // number of custom characters the display provides
|
p->customchars=31; // number of custom characters the display provides
|
||||||
p->vbar_cc_offset=0; // character offset of the bars
|
p->vbar_cc_offset=0; // character offset of the bars
|
||||||
p->hbar_cc_offset=0; // character offset of the bars
|
p->hbar_cc_offset=0; // character offset of the bars
|
||||||
|
p->predefined_hbar=0; // the display has predefined hbar-characters
|
||||||
|
p->predefined_vbar=0; // the display has predefined vbar-characters
|
||||||
|
|
||||||
// hardwarespecific commands:
|
// hardwarespecific commands:
|
||||||
// hw_cmd[Command][data] = {{commandlength , command 1},
|
// hw_cmd[Command][data] = {{commandlength , command 1},
|
||||||
@@ -220,6 +224,8 @@ serialVFD_load_Noritake (Driver *drvthis)
|
|||||||
p->customchars=16; // number of custom characters the display provides
|
p->customchars=16; // number of custom characters the display provides
|
||||||
p->vbar_cc_offset=0; // character offset of the bars
|
p->vbar_cc_offset=0; // character offset of the bars
|
||||||
p->hbar_cc_offset=0; // character offset of the bars
|
p->hbar_cc_offset=0; // character offset of the bars
|
||||||
|
p->predefined_hbar=0; // the display has predefined hbar-characters
|
||||||
|
p->predefined_vbar=0; // the display has predefined vbar-characters
|
||||||
|
|
||||||
// hardwarespecific commands:
|
// hardwarespecific commands:
|
||||||
// hw_cmd[Command][data] = {{commandlength , command 1},
|
// hw_cmd[Command][data] = {{commandlength , command 1},
|
||||||
@@ -269,8 +275,10 @@ serialVFD_load_Futaba (Driver *drvthis)
|
|||||||
|
|
||||||
if (p->customchars == -83)
|
if (p->customchars == -83)
|
||||||
p->customchars=3; // number of custom characters the display provides
|
p->customchars=3; // number of custom characters the display provides
|
||||||
p->vbar_cc_offset=0x30; // character offset of the bars
|
p->vbar_cc_offset=0; // character offset of the bars
|
||||||
p->hbar_cc_offset=0x30; // character offset of the bars
|
p->hbar_cc_offset=0; // character offset of the bars
|
||||||
|
p->predefined_hbar=0; // the display has predefined hbar-characters
|
||||||
|
p->predefined_vbar=0; // the display has predefined vbar-characters
|
||||||
|
|
||||||
// hardwarespecific commands:
|
// hardwarespecific commands:
|
||||||
// hw_cmd[Command][data] = {{commandlength , command 1},
|
// hw_cmd[Command][data] = {{commandlength , command 1},
|
||||||
@@ -283,7 +291,7 @@ serialVFD_load_Futaba (Driver *drvthis)
|
|||||||
{2 ,0x10, 0x00}, // pos1
|
{2 ,0x10, 0x00}, // pos1
|
||||||
{1 ,0x10,}, // move cursor
|
{1 ,0x10,}, // move cursor
|
||||||
{1 ,0x1F}, // reset
|
{1 ,0x1F}, // reset
|
||||||
{1 ,0x11}, // init
|
{2 ,0x11,0x14}, // init
|
||||||
{1 ,0x03}, // set user char
|
{1 ,0x03}, // set user char
|
||||||
{1 ,0x09}}; // tab
|
{1 ,0x09}}; // tab
|
||||||
for (tmp=0;tmp < (10) ;tmp++)
|
for (tmp=0;tmp < (10) ;tmp++)
|
||||||
|
|||||||
Reference in New Issue
Block a user