⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serialvfd.docbook

📁 linux下LCD驱动的例子代码
💻 DOCBOOK
字号:
<sect1 id="serialVFD-howto"><title>The serialVFD Driver</title><para>This section talks about using LCDproc with VFD character-displays build by NEC, FUTABA and NORITAKE.</para><para>The serialVFD-driver is working with NEC FIPC8367 based VFDsand the "KD Rev 2.1" (an ATMEL AT90S.... based FM20X2KB-AB replacement).It is also known to work on FUTABA VFDs.</para><para>The driver should operate most of NEC, Futaba and Noritake 7x5 dot VFDs with serial(rs232) and/or parallel interface. See the following table for testing-status.  Feedback is welcome.<table><title>serialVFD: Display Status</title><tgroup cols="5">  <thead>    <row>      <entry>Display</entry>      <entry>Controller</entry>      <entry>Serial</entry>      <entry>Parallel</entry>      <entry>Display tested</entry>      <entry>Remark</entry>    </row>  </thead>  <tbody>    <row>      <entry>NEC FM20X2KB-AB</entry>      <entry>NEC FIPC8367</entry>      <entry>Ok</entry>      <entry>Ok</entry>      <entry>Yes</entry>      <entry> </entry>    </row>    <row>      <entry>NEC FC20X2JA</entry>      <entry>NEC FIPC8367</entry>      <entry>(Ok)</entry>      <entry>(Ok)</entry>      <entry>No</entry>      <entry>Same Controller as on FM20X2KB-AB</entry>    </row>    <row>      <entry>NEC FC20X1SA-AB/AA</entry>      <entry>NEC FIPC8367</entry>      <entry>(Ok)</entry>      <entry>(Ok)</entry>      <entry>No</entry>      <entry>Same Controller as on FM20X2KB-AB</entry>    </row>    <row>      <entry>KD Rev 2.1</entry>      <entry>AT90S.... microcontroller</entry>      <entry>Ok</entry>      <entry>Ok</entry>      <entry>Yes</entry>      <entry> </entry>    </row>    <row>      <entry>FUTABA M402SD06GJ</entry>      <entry>?</entry>      <entry>(?)*</entry>      <entry>Ok</entry>      <entry>Yes</entry>      <entry>(* perhaps no compatible baudrate, not tested) The display has no user-characters set  <command>Custom-Characters=0</command> in <filename>LCDd.conf.</filename></entry>    </row>    <row>      <entry>FUTABA M204SD01AA</entry>      <entry>FUTABA 5P00A016</entry>      <entry>(Ok)</entry>      <entry>(Ok)</entry>      <entry>No</entry>      <entry> </entry>    </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>      <entry>Noritake CU20026SCPB-T</entry>      <entry>microcontroller</entry>      <entry>(Ok)</entry>      <entry>(Ok)</entry>      <entry>No</entry>      <entry> </entry>    </row>    <row>      <entry>Noritake CU20045SCPB-T28A</entry>      <entry>?</entry>      <entry>(Ok)</entry>      <entry>(Ok)</entry>      <entry>No</entry>      <entry> </entry>    </row>  </tbody></tgroup></table>() feature not tested.</para><para>If your display isn't working 100% satisfactorily you can add a new device with modified hardwarecommands to the driver if you want. To do that you have to add a new section to the display-<command>Type=</command>-switch-case in <filename>./server/drivers/serialVFD-displays.c</filename>and to write a new "load"function with the correct commands for the display.(Try which display-<command>Type=</command>works best with your display, copy, rename and modify this function that is the easiest way I guess.)</para><para>On this page you may find pictures and datasheets of the VFDs:<ulink url="http://www.maltepoeggel.de/html/vfd/index.html"></ulink></para><para>It is possible to switch the display off and back on while the server isrunning. It may take a few minutes until the next full refresh makesthe display show everything correctly.</para><sect2 id="serialVFD-connections"><title>Connecting The Display</title><para>The Connections shown have been tested successfully.</para><warning><para>Always cross-check with your datasheet, before connecting your display!Displays of same manufacturer may have different pin assignments!</para></warning><para>With this example connections it will be easy to connect displays withdifferent connector pin-layouts, the pins are commonly named equal inthe datasheet.</para><sect3 id="serialVFD-serial-connections"><title>Serial Connections</title><para>It is NOT possible to connect most of the displays directly to theserialport. The signal has to be inverted. I use the followingcircuit to do that job.</para><figure><title>serialVFD: Serial Inverter</title><screen><![CDATA[Computer                                          Display						  (signal)HDD Powerconnectorcolor(Voltage)red(+5V)    --------------------------------o----- +5V					    |black(GND)  --------------------o           |				|           R				|           R 10kSerial(SUB-D 9Pin female)       V*          Rpin(signal)                                 |					    |3(TxD)  --RRRR--o--o      o-----------------o----- RxD	  10k   |  |      |		|  |     C|		|  |   -----  BC547c (or similar NPN)		R  | B|  /  |	    10k R  o--|-|   |		R     |  \  |		|      --->-    A*		|         E|    |		|          |    |5(GND)  --------o----------o----o--------------o-- GND					       |*Shield  ---------------------------------------ooptional*connect near display]]></screen></figure><para>The pins on the different displays vary.</para><sect4 id="serialVFD-serial-connections-NEC"><title>NEC Displays (FM20X2KB-AB):</title><para>CN1:</para><screen><![CDATA[Pin 33 ------- RxD(Testmode: connect pins 25 and 26, then power up)]]></screen><para>CN2:</para><screen><![CDATA[Pin 1  ------- +5VPin 2  ------- GND]]></screen></sect4><sect4 id="serialVFD-serial-connections-KD"><title>KD Rev 2.1:</title><para>The blue connector (6pin in a row) (the important one!):</para><screen><![CDATA[--------------------------------| +5V  +5V  RxD  GND  GND  GND |--------------------------------]]></screen><tip>  <para>  Hold the display in that position where you can read  the "KD Rev 2.1" marking normally!  </para></tip><para>The gray connector (10pin 2 rows):</para><screen><![CDATA[Do not use. (the ATMEL ISP connector I guess)]]></screen><para>The two jumpers next to the gray connector:</para><screen><![CDATA[Normally not used.You can activate two different testmodes with them.]]></screen></sect4><sect4 id="serialVFD-serial-connections-FUTABA"><title>FUTABA Displays (M402SD06GJ):</title><screen><![CDATA[Pin 2   ------ +5VPin 4   ------ +5VPin 6   ------ +5VPin 10  ------ GNDPin 12  ------ GNDPin 14  ------ GNDPin 19  ------ RxD]]></screen></sect4></sect3><sect3 id="serialVFD-parallel-connections"><title>Parallel Connections</title><sect4 id="serialVFD-parallel-connections-NEC"><title>NEC Displays (FM20X2KB-AB):</title><para>CN1:</para><screen><![CDATA[parallel Port:			Display (NEC):Pin: 	Name:			Name:   Pin:1	/STROBE --------------	/WR	172	D0      --------------	D0	153	D1      --------------	D1	134	D2      --------------	D2	115	D3      --------------	D3	96	D4      --------------	D4	77	D5      --------------	D5	58	D6      --------------	D6	39	D7      --------------	D7	110	/ACK	--o		  |11	BUSY    --o-----------	BUSY	27			   o--  /CS	23			   |18 - 25	GND    ------------o--	GND	2,4,6,8,10,12,14,16,18,20,22,24,26,28,20,32,34			   |*Shield  -------------------ooptional*connect near display]]></screen><para>CN2:</para><screen><![CDATA[Pin 1  ------ +5VPin 2  ------ GND]]></screen></sect4><sect4 id="serialVFD-parallel-connections-FUTABA"><title>FUTABA Displays (M402SD06GJ):</title><screen><![CDATA[parallel Port:			Display (FUTABA):Pin: 	Name:			Name:   Pin:1	/STROBE --------------	/WR	172	D0      --------------	D0	153	D1      --------------	D1	134	D2      --------------	D2	115	D3      --------------	D3	96	D4      --------------	D4	77	D5      --------------	D5	58	D6      --------------	D6	39	D7      --------------	D7	110	/ACK	--o		  |11	BUSY    --o-----------	BUSY	20			   o--  /SEL	23			   |18 - 25	GND    ------------o--	GND	10,12,14			   |*Shield  -------------------ooptional			   0--	TEST	16			   |		+5V -------o--	+5V	2,4,6*connect near display]]></screen></sect4></sect3></sect2><!-- ## Serial VFD driver ## --><sect2 id="serialVFD-config"><title>Configuration in LCDd.conf</title><sect3 id="serialVFD-config-section"><title>[serialVFD]</title><variablelist><varlistentry>  <term>    <command>use_parallel=</command>    <arg choice="plain">    <group choice="req">      <arg choice="plain"><literal><emphasis>yes</emphasis></literal></arg>      <arg choice="plain"><literal>no</literal></arg>    </group>    </arg>  </term>  <listitem><para>    "<literal>no</literal>" if display connected serial, "<literal>yes</literal>" if connected parallel [default: <literal>no</literal>(serial)].  </para></listitem></varlistentry><varlistentry>  <term>    <command>Port=</command>    <arg choice="plain"><replaceable>PORT</replaceable></arg>  </term>  <listitem><para>    Portaddress where the LPT is. Used in parallelmode only. Usual values are 0x278, 0x378 and 0x3BC [default: <literal>0x278</literal>].  </para></listitem></varlistentry><varlistentry>  <term>    <command>Device=</command>    <arg choice="plain"><replaceable>DEVICE</replaceable></arg>  </term>  <listitem><para>    Device to use in serial mode. Usual values are <filename>/dev/ttyS0</filename> and <filename>/dev/ttyS1</filename>    [default: <filename>/dev/lcd</filename>].  </para></listitem></varlistentry><varlistentry>  <term>    <command>Custom-Characters=</command>    <arg choice="plain"><replaceable>CUSTOM-CHARACTERS</replaceable></arg>  </term>  <listitem><para>    Number of Custom-Characters [default: Display-<command>Type</command> dependent].  </para></listitem></varlistentry><varlistentry>  <term>    <command>Size=</command>    <arg choice="plain">      <replaceable>WIDTH</replaceable>      <literal>x</literal>      <replaceable>HEIGHT</replaceable>    </arg>  </term>  <listitem><para>    Specifies the size of the VFD.    [default: <literal>20x2</literal>]  </para></listitem></varlistentry><varlistentry>  <term>    <command>Type=</command>    <arg choice="plain"><replaceable>CODE</replaceable></arg>  </term>  <listitem>    <para>    Specifies the display type.[default: <literal>0</literal>]    The following type codes are available:    </para>    <informaltable>    <tgroup cols="2">      <thead>        <row>	  <entry><replaceable>CODE</replaceable></entry>	  <entry>VFD model</entry>	</row>      </thead>      <tbody>        <row>	  <entry><literal><emphasis>0</emphasis></literal></entry>	  <entry>NEC (FIPC8367 based) VFDs</entry>	</row>        <row>	  <entry><literal>1</literal></entry>	  <entry>KD Rev 2.1</entry>	</row>        <row>	  <entry><literal>2</literal></entry>	  <entry>Noritake VFDs</entry>	</row>        <row>	  <entry><literal>3</literal></entry>	  <entry>Futaba VFDs</entry>	</row>      </tbody>    </tgroup>    </informaltable>    <note><para>      Noritake VFDs have not been tested yet. Feedback is welcome.    </para></note>  </listitem></varlistentry><varlistentry>  <term>    <command>Brightness=</command>    <arg choice="plain"><replaceable>BRIGHTNESS</replaceable></arg>  </term>  <listitem><para>Set the initial brightness [default: <literal>1000</literal>; legal: <literal>0</literal> - <literal>1000</literal>] (4 steps 0-250, 251-500, 501-750, 751-1000)  </para></listitem></varlistentry><varlistentry>  <term>    <command>OffBrightness=</command>    <arg choice="plain"><replaceable>OFFBRIGHTNESS</replaceable></arg>  </term>  <listitem><para>Set the initial off-brightness [default: <literal>0</literal>; legal: <literal>0</literal> - <literal>1000</literal>]. This value is used when the display is normally switched off in case LCDd is inactive. (4 steps 0-250, 251-500, 501-750, 751-1000)  </para></listitem></varlistentry><varlistentry>  <term>    <command>Speed=</command>    <arg choice="plain">    <group choice="req">      <arg choice="plain"><literal>1200</literal></arg>      <arg choice="plain"><literal>2400</literal></arg>      <arg choice="plain"><literal><emphasis>9600</emphasis></literal></arg>      <arg choice="plain"><literal>19200</literal></arg>      <arg choice="plain"><literal>115200</literal></arg>    </group>    </arg>  </term>  <listitem><para>    Set the the baud rate communication with the VFD.    If not given [default <literal>9600</literal>].  </para></listitem></varlistentry><varlistentry>  <term>    <command>ISO_8859_1=</command>    <arg choice="plain">    <group choice="req">      <arg choice="plain"><literal><emphasis>yes</emphasis></literal></arg>      <arg choice="plain"><literal>no</literal></arg>    </group>    </arg>  </term>  <listitem><para>    Enable ISO-8859-1 compatibility [default is <literal>yes</literal>].  </para></listitem></varlistentry></variablelist></sect3></sect2></sect1>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -