by Guido Socher (homepage)
��������:
Guidoϲ��Linux����Ϊ���ڿ����Լ���Ӳ����˵Linuxȷʵ��һ���dz��õ�ϵͳ��
Ŀ¼:
|
һ�������¶ȼƻ�����atmel΢����������I2Cͨ��
ÕªÒª:
Atmel��Atmega8΢�������г�������ֺ�ģ����������ߡ�
���ڿ����κ�����IJ����豸��˵��ȷʵ��һ�������������
����ƪ����������������һ����β�ʹ�ö����MAX232оƬ��ֻͨ��������RS232�ӿ�����΢��������Linux
PC.
_________________ _________________ _________________
|
����
����ƪ���������������my "Programming the AVR
microcontroller with GCC, libc 1.0.4" article��������������GCC
AVR��̻������������ⰲװ���鷳�㵱Ȼ����ʹ��the AVR programming CD
(from http://shop.tuxgraphics.org/��
)
����ʹ����ô�Ƚ���������Ϊһ��΢������������ģ��������ź�ʱ��
��϶���ҪһЩ�ӿ������������������ݻ��߶����������
��ǰ�����ڴ˷�����������������������ͨ��΢�������е�UART��ʹ��RS232����ͨ�š�
���������ַ�ʽ��Ҫһ�������MAX232оƬ��4������ĵ�������
���⣬Atmel�����飺UARTͨ�ŵĿɿ���������Ҫһ���ⲿ����
������������Ҫ�ö�Ķ������������ǿ�����취����ʹ�����ǡ�
PC��΢������֮�������͵�������ͨ�����٣����������ֽڣ���
����ٶ�һ�㶼����Ҫ�����ʹ��I2C���ߣ�Ð�飩�dz��ʺ��������
I2C��I2C������I��C��Ӣ�����eye-square-see����һ��˫��˫���ͨ�Žӿڡ�
�����ɷ����ֹ�˾����ģ�����������Ҳ�ܵ�������
��Ҳ��Ϊʲô�����ij��̶�ͬһ��Ð��ʹ�ò�ͬ�����֡�
Ateml��I2C��TWI��Two Wire Interface��˫�߽ӿڣ���
���Ǻö��˿��ܲ�֪�������ǵĵ������Ѿ�ʹ����I2C���ߡ�
�������е������϶���һ��I2C��������ȡ�¶ȡ�����ת���Լ����õ��ڴ������ȵ����е�Ӳ����Ϣ��
���ҵ�����һI2C���߲�������PC�ⲿ��û�������ĽӲ������
�������ǵ÷���һЩ�µķ�����
����������������һ��TWI����һ�����ֽ�I2C�������������ġ�
I2C/TWI������
ʵ����Atmega8���ݱ����μ��ο����ϣ��ӵ�160ҳ�������һ���dz���ϸ��������
������������ֻ�ṩһ�����������������Ӧ���������ݱ�����������Ŀ�ˡ�
��I2C�������ܻ���һ�����豸��һ���򼸸����豸�����豸��ʼ��ͨ�Ų�����ʱ�ӡ�
���ߵ������߷ֱ��SDA�������ߣ���SCL��ʱ���ߣ���
�����ϵ�ÿһ���豸�����ж����ĵ�Դ������ͳ��RS232ͨ����ͬ����
ͨ�������߶�ͨ��4.7K�������������ӵ��߼��ߵ�ƽ�ϣ�����5V��IC�� +5V����
��͸����������豸��ġ������ӡ�
��һ���豸�봫�͡�0��ʱֻ��Ҫ��һ���߽ӵؼ��ɣ����ߴ��͡�1��ʱ���ָߵ�ƽ��
������ÿһ���豸����һ��7λ��Ψһ��ַ��
���豸ͨ���ͳ�һ����������ʼ״̬����ģʽ����ʼһ��ͨ�ţ�
Ȼ���ٶ�������ʵ��豸����Ѱַ��
�������豸�ͳ�һ��������˵�������������д���ݡ�
���豸����һ��Ӧ��λ��ack-bit����ʾ�����������豸���ʲô��
����֮�����������Ͽ�����9�����ص����ݣ�7λ��ַ��+һ����дλ+һ��Ӧ��λ����
| start | 7-bit slave adr | read_data bit | wait for ack | ... data comes here
Ȼ����ʲô��
��һ�����ǾͿ����շ������ˡ����͵���������8���أ�һ���ֽڣ��ı������ұ����յ�Ӧ��λ��
���仰˵�����ϵ��������ǰ�9���صİ����͵ġ�ͨ�Ž��������豸�����ͳ�һ����ֹͣ״̬����
Ҳ����˵�����豸���մ��豸����������ʱ������֪�����͵���������
��Ϊ��������û�Ð���д�����һ��Ϣ��������Ҳ������ʲô���⡣
�������ǿ���ʹ�ñ�ʾ�ַ��������ġ�0���ֽ�������û��������Ҫ�����ˡ�
��SCLΪ��1��ʱSDA���ϵ���������Ч�ġ��磺
SDA H -\ /---\ /---\ /---\
L \-----/ \---/ \--------/ \------....
SCL H ----\ /-\ /-\ /-\ /-\ /-\
L \---/ \-----/ \---/ \--/ \--/ \-....
| START | 1 | 1 | 0 | 1 | 0 |
ʹ����һÐ���һ���ô��������Dz���Ҫ��ȷ��ͬ��ʱ���źš�
��ʱ���ź���һ�㶶��ʱÐ�黹���Թ�����
�ϸ��˵����һ����ʹ�����ǿ���ʹ��һ���û��ռ�ij�����ʵ��I2CÐ�飬
������Ҫ�ں�������������ض���Ӳ������UART�����dz����ǰɣ�
�ƻ�
������ǰ���������Dz���ʹ��PC���ڲ�I2C���ߣ�
�������ǿ���ʹ���κ��ⲿ�ӿ����շ����������ݱ�������
�������ǽ�ʹ������PC�ϵ�RS232Ӳ���ӿڡ�
���仰˵������Ȼʹ�ø���ǰ����������ͬ��ͨ�Žӿڣ�
��������ʡ����MAX232Ӳ���͵������ȵȡ�
��Ȼ�����ѵIJ����Ǵ�ͷʵ��I2CÐ�飬�һ�������ܵ�ʱ��ѧϰ�͵��ԡ�
���������Ѿ�����ˣ������ֱ��COPY��:-)����ֻϣ������ʹ����Щ�����ʱ���ܼ�ס���ǵļ�ֵ��
��Ϊһ��ʾ���������ǽ�����һ���¶ȼơ���Ȼ��Ҳ���Բ��������Ķ���������ֻ���������ص�ơ�
�Ǿ�����������ˡ�
����һƪ���������ǽ�����һ�����ص�Һ����ʾ����
Ҳ����˵�����ֱ�Ӵ�Һ����ʾ���϶����¶ȶ����õ����Linux PC��ȥ���ˡ�
Ϊ�˲�ʹ��ƪ���¹������ǽ�����һƪ�ж�Һ����ʾ������˵����
NTCs ���С�����˲����㹻׼ȷ
|
The temperature sensor
������ҵ�һЩУ׼�����¶ȼƣ���һЩ��֧��I2CÐ��ģ���
�����Ƕ��ܹ�NTCs�Ƚϱ��ˣ�Ҳ�dz��ã���������Ҫ�ֹ�У׼��
���������У׼һ����Ϳ��Ի��С�����ľ��ȡ�
NTCs��һ��������������Ƿ����Եġ�������ֻ��һ���뵼���������⣬
����ֻ��Ҫ�ҵ����ʵĹ�ʽ�������Ե����ߵ���һ�¾����ˡ�
΢��������������һ��С�ͼ��������һЩ��ѧ����϶�û�����⡣
T��Tc��������Ҫ�õ����¶�ֵ��Rn��NTC��25'C�ĵ���ֵ���������
4K��7K�ȵȵ�NTCs��Rn������Щֵ��
��·
��·ͼ�����Сͼ����ͼ��
|
���������Ѿ�����������һ�������¶ȼƵ�������������������������NTC��������
һ�����ڲ��¶���һ�����ⲿ�¶ȡ������Ҫ������������ӣ��ȷ�˵conn3��PC2�ǿ��еģ���
�Ҳ�ϣ��������һƪ����������һ��ȫ�µĵ�·��
�����ڵ�·ͼ������������Һ����ʾ������Ҫ�ļ����ߡ�
���滹ʹ����һ����������ܡ���������Ҷ����ǻ����ĵ���ȷʵ�����á�
���磬���ڿ���PC��΢���������I2Cͨ��Ð��ʱ����������I2C״̬����
��������ʱ���ǿ���������˸���Ա����¶ȼ��ڹ�����
��ˣ���·�dz��������ˡ�΢�������е�ģ��ת������������NTC�ĵ�ѹ������ת�����¶�ֵ��
����ģ��ת����ʹ�ú��ֲο���ѹ��Atmega8������ѡ�5V��AVcc�����ڲ���2.56V��
���ڲ������Dz���Ҫ���ⲿ��������¶ȷ�Χ�Ĵ�������ͨ����˵��+10'C��+40'C���㹻�ˡ�
�������ǾͿ����ڲ����ڲ��¶�ʱʹ��2.56V�ο���ѹ��
����1024�����ܵ���ֵ���������䵽0��2.56���ĵ�ѹ�����ϣ�
���ǿ��Եõ��dz��ߵľ��ȣ�2.5mV�ķֱ��ʣ��ȴ���������ַ��ر����ߣ���
RS232��CD�����һ�������ߣ������ӵ�I2C���ߵ�SDA���ϡ����Ǿ�����������΢�������϶�ȡ���ݡ�
DTR��RTS������ߡ���PC��SDA�����������λʱ�Ϳ���DTR��
I2C���豸����������linux PC��������SCL��ʱ�ӣ��ߡ�
Ҳ����˵ʱ���߾���һ��RS232������ߡ�
78L05�����ṩһ���ȶ��ĵ�Դ�Ͳο���ѹ�������ʹ���κ�7.5V��12V֮��Ľ�ֱ����Դ��
9V��һ���ܺõ�ѡ��
������·��
tuxgraphics.org�������б������õ���Ԫ���������һ���һ����ʴ�ĺܺõĵ�·�塣
|
��Ȼ��Ҳ��������ʹ����ǰ���������õ���Ôʼ��·�壬ֻ�����½�LED����pin-11�ϲ��������е���������
�������Ҫһ���ÿ��ĵ�·�Ļ��㻹����Ҫһ���µĵ�·�塣
��Ϊ��·�dz����ӣ�ǡ���ĸ�ʴһ��ӡˢ��·����Ҫ�Ѻܴ�ľ�����
����Iznogood��linuxfocus�Ϲ���gEDA������֮����Ҳ����ʹ��gEDA�����Eagle��
gEDA�ĸ�Ҫ��ͼ����gschem�dz����á�������Eagle������һ���ܴ��Ԫ�����ſ⣬
���Ҳ��ò�ΪAtmega8������Щ���š������dz�����ʹ�ò��Ҹ�Eagle����һ���á�
��΢�е�����ľ��ǻ���PCB�Ĺ���pcb��
����մ�Eagleת����ʱ�����Ȼᷢ��Ԫ�������ܴ��𽺴��϶Ͽ���
Ϊ��ȷ����ȷ���𽺴����ӵ���ȷ�����������ë¾ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½
Connects->Optimize rats-nest �������������ɵ�·ͼ����������·�塣
�������߼�ֻ���ֹ�����ע�⡣
��ʹ�ó�ɫͼ������ͼ����֪��ô��ĵ���ӡʱ����ͼ�㲻�������κε������
�����dz�ɫͼ��ʵ�������ڰ�������Ԫ��������һ�档
���������һ�����������֣���ôӡ�ڵ�·����ʱ����������������
������ֻ��pcb�������IJ��֣������Ķ���Gimp������
��лshop.tuxgraphics.org ��
���dz��۱������ᵽ�����е�������������Ϳ���רע��������Ȥ�IJ��ֲ����Գɹ���װ���·�ˡ�
���������������һ��Putting everything together
����װ���·ʱע��Ԫ�����ļ����Ƿdz���Ҫ�ģ�����������
�����ܡ���ѹ�����ܡ�78L05��LED��΢�����������м��Եġ�
���㽫΢�������������֮ǰ��Ӧ���ȼ����Դ���֡�
�����Դ�����������㲻���ò�����ȷ�Ķ����������п����ջ�΢��������
���������һ����Դ������һ��9V�ĵ�أ��õ�ѹ����һ�£�ȷ������΢����������������ϵõ�ǡ��5V�ĵ�ѹ��
��һ���Ͱѵ�·�ӵ���Linux PC��RS232���ϣ�
ʹ�ø����ź��������i2c_rs232_pintest����
i2c_rs232_pintest -d 1 -c 1
i2c_rs232_pintest -d 0 -c 1
i2c_rs232_pintest -d 1 -c 0
�ó�����������RS232���RTS������SCL��ʹ��-cѡ���DTR������SDA��ʹ��-dѡ��ĵ�ƽֵ��
RS232�ڵĵ�ѹ��ԼΪ+/-10V��������ѹ������֮����Ӧ��ֻ�ܲ⵽-0.7�����߼�0����+4-5V(�߼�1����
ֻ��ͨ����������֮����ܲ���΢��������
ʹ��I2C����ͨ��
���أ��μ��ο����ϣ�linuxI2Ctemp.tar.gz�ļ�����ѹ��I2Cͨ�������������ļ���ʵ�֣�
i2c_avr.c -- the i2c statemachine for the atmega8
i2c_m.c -- the complete i2c protocol on the linux side
�Ҹ���atmega8�ӵ�ַ3�������ʹ������C������atmega8�����ַ�����hello����
address_slave(3,0); // tell the slave that we will send something
i2c_tx_string("hello");
i2cstop(); // release the i2c bus
on the microcontroller side you would receive this "hello" string with
i2c_get_received_data(rec_buf);
�dz��򵥣���΢������������Ҳ������ơ�
����Կ�i2ctemp_avr_main.c�е��¶ȶ�������ô���ġ�
�¶��Ƕ��٣�
���벢��΢������װ�ش��룬ֱ����linuxI2Ctemp������Ŀ¼��ִ���������
make
make load
����������������i2c_rs232_pintest��i2ctemp_linux
make i2c_rs232_pintest
make i2ctemp_linux
���������ֱ��ʹ��bin��Ŀ¼���Ѿ�����õİ汾��
����ȡ�¶ȣ�ֻ��Ҫ���У�
i2ctemp_linux
�����ӡ�����ں�������¶ȡ���ΪI2C���߷dz�����
�����������վ����ʾ�����ҽ��鲻Ҫֱ����web������������i2ctemp_linux��
�������һ��cron job�����������������д��һ��HTML�ļ��С�
��linuxI2Ctemp���е�README�ļ�����һ��ʾ���ű���
����
I2CÐ�鼸������Ҫ�����Ӳ���������Ѿ�Ϊ�շ����������������Ż���
������������Լ���΢����������ͨ�ţ�������������Ҫ�ġ�����һ���dz�Ư���Ľ��������
����ƪ����������Ҫ������Ӳ�������ϡ������ϲ����ƪ�����ҽ���дһƪ��������������ι����ģ�
�ر����������ģ��ת����I2CÐ�������ʵ�ֵġ�
��һƪ��������Ҳ��������һ��Һ����ʾ���Լ����϶Ⱥ����϶�֮���ת����
�����
����ƪ���·�������
ÿƪ���¶��и��Եķ���ҳ�档�����ҳ����������ύ���ۣ�Ҳ���Բ鿴�������ߵ����ۣ�
2005-02-07, generated by lfparser version 2.51