[LinuxFocus-icon]
��ҳ  |  վ���ͼ  |  ����  |  ����

���� | �����ڿ� | ���� | ����LF
This document is available in: English  Castellano  ChineseGB  Deutsch  Francais  Italiano  Turkce  

[Photo of the Author]
by Guido Socher (homepage)

��������:

Guidoϲ��linux������Ϊ�����ϵͳ�����ҵ������ܵ���Ȥ����Ϊ����DZ�����������


Ŀ¼:

 

��LCD��ʾ��RS232�ӿڵ�1Hz-100Mhz Ƶ�ʼ�

[Illustration]

ÕªÒª:

���ļ�������AT90S4433ϵ�С��ҽ����������Ķ�һ��ǰ����ƪ����Atmel ΢�����������ƣ���ע���������㣺:

  1. ������װ��ʹ��Linux AVR ���������Լ���ν����û�Ӳ��Ŀ��ϵͳ��
    2002 ������, AVR��Ƭ��GCC���
  2. ����������Լ���ӡ����·��
    2002 ������, �����Linux��������һ��LCDǰ�������
��һ���������һ�����ԴӲ���1Hz��100MHz��Ƶ�ʼơ���Ҳ������������¼�¼���������˴�����·�� ��ֻҪ��һ����Ч���������壩�����Ƶ�ʼ���һ��LCD��ʾ��������RS232�ӿڣ�������ʾ��linuxϵͳ �ó������ݡ�



 

����

���Ҳ��򷽲��źŵ�Ƶ������ÿ�����񵴵Ĵ�������ʾ�ġ�Ϊ�˼��һ���������źŵ�Ƶ�ʣ� ���ǽ���ֻ���������񵴴����Ϳ����ˡ����ַ���������Ҫ�������������źŵĵ�һ�� г����Ƶ�ʡ�Ϊ�˲�����������Ƶ�źţ������Ҫ��һ��Ƶ�׷����Dz��������� ���ǣ�����Ӳ����˵������һ�����ѵIJ��֡����ڣ�����Ҫ���һ�����������������ź� ��Ƶ�ʼơ�����������ȡ�����ź���ij��ʱ�����Ƶ���Dz���ġ�

���ǵ�Ƶ�ʼƷ���������:
  1. ͨ��һ���Ƚϵ�ѹ����СһЩ�źŵ�ֱ������������ת���ɷ����źš�
  2. ��ÿ��ʱ���������������������һ�̶���ʱ��������֡�
 

��������

Ҫ����Ƶ�ʼ�����Ҫ��������:

1 x Atmel At90S4433 Microcontroller
1 x 28pin 7,25 mm IC socket
2 x 16pin IC socket
1 x 1pin IC socket
1 x 14pin IC socket
No IC sockets for the MAX903 and the 74F74. Solder them directly to the board!
1 x MAX232
1 x 4,194304MHz crystal
1 x LEDs (green)
1 x BC557 PNP transistor
4 x 1uF capacitor (biased)
2 x 27pF ceramic capacitor
4 x 10nF mini ceramic capacitor
3 x 100nF mini ceramic capacitor
1 x 200nF mini ceramic capacitor
1 x 0,47uF mini ceramic capacitor
2 x resistor 470 Ohm
1 x resistor 470K
2 x resistor 100 Ohm
3 x resistor 1k
5 x resistor 10k
3 x resistor 47K
1 x resistor 220 Ohm
3 x resistor 4K7
1 x resistor 3k3
1 x resistor 2k2
1 x resistor 47 Ohm
1 x 4K7 potentiometer (as small as possible), if you want you can replace this potentiometer by a pair of resistors. This potentiometer is used to set the LCD contrast. For my LCD displays 100Ohm together with 1K gives a good contrast.
1 x Z-diode 4.3V
2 x small touch buttons
1 x 470uF capacitor (biased)
1 x 4,7uF capacitor (biased)
1 x 1N4001 diode
1 x 74HC02 TTL IC
1 x 74F74 fast TTL IC
1 x 74HC390 TTL IC
1 x LM393 voltage comparator
1 x MAX903 high speed voltage comparator, 8 Pin plastic DIP package, you can order it directly from www.maxim-ic.com in case your local dealer does not have it in stock.
1 x 7805 5V regulator
1 x 2 line 20 character LCD display with HD44780 compatible interface. With our without backlight (16 pin or 14 pin)

All LCD displays that I have ever seen with 14 or 16 pins on the connector were HD44780 compatible. You can also use a 3 or 4 line display but then you will need to modify the software a bit.

���⣬������ҪһЩ�ߡ�����ͷ��BCD����Դ��RS232������һ��9V�ı�ѹ�����߽��� ֱ������Դ��150mA)����ʱ����Ҳ����ͨ��ֱ�Ӳ���ǽ���ϵ����ڸ����ֵ����ṩ�� Դ�Ĺ�������õ���Դ��  

ԭ��ͼ����·��ͼ

��ʹ��������linux�µ� eagle �����ԭ��ͼ����·��. ���������һЩ���˲�������ĵط�:���е�оƬ��Դ���붼��5V�������ڽ��е������� ����ʱ��ᷢ��һЩ������ʵ�ϣ��������ȫ��ȷ��
ԭ��ͼ (����Ŵ�):
[Schematic]

��·��ͼ (����Ŵ�):
[board]


��·ͼ���ر�ΪһЩ���Ӱ�������Ƶġ�ֻ����ɫ�Dz��������Ҫ������ ��·��ġ���ɫ�����ǵ��ߡ�����һ�鵥��ӡ�ư��Ƿdz����׶��Ҳ�����Ҫ�� ����ȷ�������԰�����̵���·����������(��ɫ)����Eagle�Ҳ�����ô����
���յ����ͼ�԰�ɫ��Ϊ�������ڴ�ӡ: ��ɫ������ӡ�ư� (ע: �Ⲣ��������������ӡ�ư���ļ��� .)

���е� Eagle �ļ���������(linuxfreqcount-0.4)�������У������Դӱ����� ����������������.  

����ԭ��

AT90S4433�������ڲ���������һ����16λ����һ����8λ�ġ�����������õ� 8λ�ļ�����,ͨ��AT90S4433ʱ�Ӿ���������һ����ȷʱ����Ϊ�˴ﵽ���Ŀ�ģ� ������һ��4.194304MHz�ľ���,ͨ��256�ڲ���Ƶ������8λ�������������鿴A T90S4433�������ֲᣬ�ڱ���ĩβ������ӿ����أ�������8λ������ÿ�����ʱ����һ�� �жϡ�Ҳ����˵�����ǵõ���һ��4.194304MHz/(256��256)=64Hz��ʱ����ͨ��ʹ ��һ��ѭ������,���ǿ��Եõ�һ��1Hz�����64Hz����Ĺ��ܵ��á�

���ڣ������Ѿ�ӵ��һ������ͨ������ģʽ�����õ�1Hz����64Hz����Ĺ���ģ�顣������ ����Ҫ�����ǣ�ͨ���������������16λ����������ʾ����������16λ�ļ�������AT 90S4433��5�ţ��������ź��ɱ����ź��ṩ��

AT90S4433�������źŽ��в�����ʹ�����ڲ�ʱ�ӱ���ͬ�������ݲ����������ǿ������ �޶ȵIJ���ӽ�1/2�ڲ�������ź�Ƶ�ʡ��������ۼ��ޡ�ʵ���ϣ����ǿ�����AT90S4433 �������ﵽ1.5MHz���źš�

������Ҫͨ����������������Ƶ�ʡ������Ϊʲô���ﻹ��Ҫ74f74��74HC390�ˡ�74F74 ����������1/4�첽��Ƶ��74HC390��Ϊ1/25��Ƶ�����Dz���ֱ����74HC390����1/100 ��Ƶ����Ϊ����߹���Ƶ����25MHz��

��·�ṩ�����ź����롣һ���Ǿ���1/100��Ƶ����һ����ֱ������ġ���������Ҫ��� �źŵ�Ƶ����ѡ�����е�һ�������(����ͬʱ����)��

�����ֻ�Խӽ�1��5MHz����Ȥ���������óɲ�����Ƶ�Ŵ�����Ƶ����Ӧ������Ҳ���Թ��� һ�����װ汾�ļ�����������ʹ��MAX903��74f74��74hc390�����Կ���ʹ��ͬһ���� ������·�塣

ʹ��2����ѹ�Ƚ��������ٵ�MAX903��LM393����Ŀ����Ϊ�˷Ŵ��źŲ����������źŲ��������źš�

�������·�弰����ʱҪ�ر�ע�����Ƚ��������Լ��񵴡������ע�⵽MAX903��һ�� �����ٱȽ����������ʹ��һ�����������źţ�����һ��һ��100KHz��һ��1MHz�źŵ��ƣ� ��ͻ���100KHz�źŹ���ʱ�����һЩ���ӵ�1MHz�����źš�
����MAX903�ϵ�220K����������������������������һ���̶������������Լ��� �Ͳ�����������źű�������

ͨ��RS232��2���ᴥ���أ�������ؼ�ģʽ���أ������ƴ������Ĺ������̡�

2������ͨ��ͨ��һ�����ţ�74hc02)�������74hc390���������Ȼ�� �߼���ƽ��1���������û������1/100����ˣ����Ŷ����ֹ�ź����롣��˵� ��ı����ģʽ���������ťʱ��74hc390�ͻᱻ���(pin2)��  

����

�������������ж�ģʽ��������2����������������������������������ã� ��AT90S4433�����ֲ��������÷dz���ϸ���μ��ο��ļ������������Ĵ������� һ��ֵ�����Ƿdz���Ҫ���ظ���Ҳ�Ƿdz���ζ�ģ��������ﲻ�����ᵽ��һ�㡣Ƶ �ʼ��߼��ľ��󲿷��� linuxfreqcount.c ����ļ���ʵ�֡��������еij�����LCD�� UART���ȵȶ���Ϊ���ļ����ڡ���дAT90S4433����ʱ�����ע����򳤶Ȳ��ܳ��� 128B RAM����Щ�������DZ��������ġ���ˣ��������Ƕ�׹��ܵ���ʱ��Ҫ�õ�̫�� �IJ��������ȿ���ʹ�ñ�ʶ����ȫ�ֱ�����Ϊ���ݲ�����

������������ȷ���ú󣬳���SIGNAL(SIG_OVERFLOW0)����64HzƵ�����á����ǽ��� ��16λ������������һ���ź���(hflag)����һ��������������ĺ���handlecounterresult() ����1Hz�ſ������������ǿ���ֱ�����ü�������ֵ�����ǵ���1/64�ſ�������ʱ�����DZ��뽫���� ����ֵ����64������΢���������Dz�����̫�����ѧ���㣨����û��32λ���ڴ������������˵��ǣ� ����64ֻ��Ҫ����6�Ρ�������3��8λ�����������ս��(counterval[3]).

�������ǿ��Եõ�һ��24λ�ļ��������Ϊ������ʾ�������뽫��ת���ʮ���Ƶ�ASCII�롣 Printf�õ�����õģ������Dz����������������Ϊ���ᳬ�����ǵĴ洢��Χ�� ���ǽ�24λ���ֳ���10�õ�������Ѷ�������ת����ʮ���������������ʮ��������AT90S4433���ܽ� ��24λ���㣬�������ֻ����8λ����ģ�飨function divby10())����������������Чֵ��ASCII������ ��ÿ����������������ṩһ����ASCII��������֣�function longtoascii())��

ת������ASCII�ַ�ͨ��RS232�ӿڱ����͵�LCD��ʾ����ʾ������  

����ӡˢ��·��

���������а�����һ��������linuxfcount.ps)�����ǵ�·ͼ���Ҹ��˾��ú�����̫С�ˡ���ˣ� ��ǿ���Ƽ����㶯��ʴ����·��ǰ����������Щ�ط����ǺŽ��������󡣹�������Լ���������·��� �����������ĵ�����ϸ�����ˣ�2002��5��, �����Linux��������һ��LCDǰ������� ��Щ���߸���˵��Kontakt Pausklar-21 ���Ϻ����ҵ�����Ҳ������ú������� �������͵�һ�������㽫���ӽ���ʴ��֮ǰ�����÷�����ú�Ͳ�ϴ�ɾ���  

���ΪƵ�ʼ�����һ�����?

[final case, open] [wooden frame] ������һ��ҵ����Ӱ����ߣ�һ������Ҫ���������Ϊ�Լ���������ĵ���·������һ����ǡ� ͨ���ƶ�һ�����Ͻ�ĺ����Ǻܰ���ģ������Լ������뾫ȷ������һƬ����Ƭ�Dz����׵ġ� ���Ѿ��ҵ���һ�ּ������ֿ���ȥ��רҵˮ׼�ķ���������ɼľ�����ߺͽǣ������Ը����ϵ����ᣬ ʹ�����Եû���һ�㡣��ˮ�������������ڱڡ����ӵ�ǰ�����������ײ�������һЩ����Ƭ�� �Ҳ���Ҫ�������ǡ�ֻҪ�����ǰ���ȷ�ijߴ�úþͿ����ˡ��������ͼƬ�п��������Ҳ�ľ��� �����ӡ����������Կ�����ɺ�����ӣ����ϵĸDz��ڣ���  

װ�����

[circuit] �ں��Ӱ��ӵ�ʱ��Ҫ�ر�ע���Ƶ����MAX903��74F74������衢���ݣ���һ������£� �Ҷ��Ƽ�ʹ�ü��ɲ����������ڷ�������ʱ�������Ƚ����ס�������������оƬ����ʹ�ü��ɲ����� �������ٲ��������𵴸��š��ڵ����Դ֮����˲����ݱ���ʹ��Сһ���Ƭ���ݡ�������ݵĴ�С ������10nF��100nF֮�䡣

��������ĿǰΪֹ��LinuxFocusϵͳ����Ƶ���ӵ�һ���·�塣�ҽ��⣬�ߺ��ӱ߽��в��� ��ͬ�������Ƿ������������磺
  1. ���Ƚ��ǵ�Դ���֣���7805�ȣ����������ϲ������Ƿ�����
  2. ���������е�Ԫ���������ǣ�����ֻΪ������ʹ�ò�����
  3. LinuxFocus 0.4�汾�������а�����һ�����Գ���avr_led_lcd_test.c����������΢������ ��LED��LCD��������װ����ĵ����ϡ�����̵��°��յ�һƪ����AVR������ (2002 ������, AVR��Ƭ��GCC���) �������������Ӻã�Ȼ�����"make testload"�� linuxfreqcount-0.4�������а�װ avr_led_lcd_test������LEDӦ������˸��LCDӦ����ʾ��HELLO����
  4. ����������й����󣬽����еļ���оƬ�嵽�����ϡ��������һ����������һ�������ԣ� ���ȣ����Ե�Ƶ���֣�����Ǹ�Ƶ���֡�����ҪһЩ�������͵�������Ƶ��Դ���緽���ź��� Ϊ��ѡ������źţ���
 

ʹ�ü�����

���������������ڲ�ͬģʽ��:
  1. 1.��������
  2. ����1Hz�ſ�����ΪƵ�ʲ�����������ģʽ�£�ͨ��1/100��Ƶ������Բ�����Ƶ�����ɴ�16λ�� 65535Hz��6553500Hz
  3. ����64Hz�ſ�����ΪƵ�ʲ�����������ģʽ�£�����Բ�����Ƶ�����ɴ�1.5M,����ͨ��1/100��Ƶ�� �����Բ���Ʒ�ʴﵽ100M��
[RS232 ASCII ÃüÁî½Ó¿Ú]
RS232 ASCII ����ӿ�.
�����ͨ���ı�ģʽѡ��ť���ı�ģʽ��Ҳ����ͨ��ASCII�������RS232�˿����ı䡣 RS232 ASCII���ƶ˿���ι�����2002��5�µ���ƪ���� AVR��Ƭ��GCC��� ������ϸ������һЩ������䶼�� README.commands��ƪ��������������

���Ŵ�ʱ���̵�LED����������ʱ��ʾ�������ܹ��������������������

�ڶ�����ť�������ť�������ť���������������������Ҫ��Լ���ģʽ������������100��������ʾ�� ����100��������ʾ���Ҳ����100�����ַ����㲻�ؾ����ܸ��ӵļ��㡣����ʹ��1/100����ʱ�� ���Ƿdz����õġ�  

�����߾���?

�κ�һ������ʽ����������һ����1�ľ��ȡ�������ʹ��һ���dz��ȶ��������źţ����������� �ǻ���һ���������Ƶ������64Hz����ô������ڼ������ڲ�����64�������ζ�ž��� �ǡ�64��ͬ���ģ�1/100����Ҳ��Ӱ��������ȡ�������ô˵��������������Ƿdz������ġ� �ؼ��������4194304Hz������¶�Ʈ���ϡ����¶Ƚϸ�ʱ�������ٶȻ�Ƚ���һЩ�� ����һ������������Ψһ�����ľ���ͨ����ȷ�Ŀ����¶�����������

����кܺõIJο��źţ���Ҳ����У׼�������������ͨ������У׼���ں���handlecounterresult() �м���һ��СС����ʱ���������ҵļ�������һ���ο��ź����˱Ƚϣ��������Ǽ������Ǽ���û���� ��ˣ�У׼��ʱ�ձ�س�����Դ���뵱�С������ͨ���ı����е�һ��27pF�ĵ�����΢�������Ƶ�� ���㲻�ò���10pF��50pF�ȵĵ���һ��������ʵ�飩��

�ڳ��������ʹ��ʱ������ҪȥУ׼����׼��4194304Hz�����Ƿdz���ȷ�ġ�  

�����еļ�����

����һ�ż����������е���Ƭ:
[ƵÂʼÆÕÕƬ]

 

����ѧϰ

����ƪ�����в�û���ṩLinuxϵͳ�µ�Ӧ�ó������Զ��IJ�������ֵ�� ��һ����� �뵽��������������Ƶ�ʼ�������ƫԶ����ķ��ٻ������κ�һ�ֿ��Ա�ת������� �źŵ��¼�����Linuxϵͳ��дһ����ʱ�����������������һ�����鷳���¡�������޸� 2002 ��5��, �����Linux��������һ��LCDǰ������� ��ƪ�������ṩ�ij��������ֻ��Ѳ����Ľ�����浽һ���ļ��У�ֻҪ��������������Ϳ����ˣ�

ttydevinit /dev/ttyS0
cat /dev/ttyS0 > your_logfile.txt

����Ƶ�ʼƱ������ڵ��Ե� COM1 �˿� (=ttyS0).
��������ײ����� :-)?  

�����

   

����ƪ���·�������

ÿƪ���¶��и��Եķ���ҳ�档�����ҳ����������ύ���ۣ�Ҳ���Բ鿴�������ߵ����ۣ�
 ï¿½ï¿½ï¿½ï¿½Ò³ï¿½ï¿½ 

��ҳ��LinuxFocus�༭��ά��
© Guido Socher, FDL
LinuxFocus.org

���������LinuxFocus��������������
������Ϣ:
en --> -- : Guido Socher (homepage)
en --> zh: hejoin <tech(at)hejoin.com>

2002-03-13, generated by lfparser version 2.27