Revision: 1636
Author: sebastien.lelong
Date: Wed Jan 27 10:57:31 2010
Log: fixed i2c schematic and modified titles
http://code.google.com/p/jallib/source/detail?r=1636
Modified:
/trunk/doc/dita/TOPUBLISH
/trunk/doc/dita/tutorials/images/i2c_check_bus_schematic.png
/trunk/doc/dita/tutorials/tutorial_changelog.xml
/trunk/doc/dita/tutorials/tutorial_i2c1.xml
/trunk/doc/dita/tutorials/tutorial_i2c2.xml
/trunk/doc/dita/tutorials/tutorial_i2c3.xml
=======================================
--- /trunk/doc/dita/TOPUBLISH Tue Jan 26 08:22:46 2010
+++ /trunk/doc/dita/TOPUBLISH Wed Jan 27 10:57:31 2010
@@ -24,13 +24,13 @@
tutorials/tutorial_adc_intro.xml japp_config.py
2010012501
tutorials/tutorial_basics.xml japp_config.py
2010012501
tutorials/tutorial_blink_a_led.xml japp_config.py
2010012501
-tutorials/tutorial_changelog.xml japp_config.py
2010012501
+tutorials/tutorial_changelog.xml japp_config.py
2010012701
tutorials/tutorial_externals.xml japp_config.py
2010012501
tutorials/tutorial_getting_started.xml japp_config.py
2010012501
tutorials/tutorial_gp2d02.xml japp_config.py
2010012501
-tutorials/tutorial_i2c1.xml japp_config.py
2010012501
-tutorials/tutorial_i2c2.xml japp_config.py
2010012501
-tutorials/tutorial_i2c3.xml japp_config.py
2010012501
+tutorials/tutorial_i2c1.xml japp_config.py
2010012701
+tutorials/tutorial_i2c2.xml japp_config.py
2010012701
+tutorials/tutorial_i2c3.xml japp_config.py
2010012701
tutorials/tutorial_ICSP.xml japp_config.py
2010012501
tutorials/tutorial_installation.xml japp_config.py
2010012501
tutorials/tutorial_lcd.xml japp_config.py
2010012501
=======================================
--- /trunk/doc/dita/tutorials/images/i2c_check_bus_schematic.png Tue Sep 22
07:13:08 2009
+++ /trunk/doc/dita/tutorials/images/i2c_check_bus_schematic.png Wed Jan 27
10:57:31 2010
Binary file, no diff available.
=======================================
--- /trunk/doc/dita/tutorials/tutorial_changelog.xml Thu Jan 21 06:57:12
2010
+++ /trunk/doc/dita/tutorials/tutorial_changelog.xml Wed Jan 27 10:57:31
2010
@@ -1,5 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">
+<!-- This document was created with Syntext Serna Free. -->
+<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd" []>
<topic id="template_id">
<title>Changelog</title>
<prolog>
@@ -21,6 +22,10 @@
</thead>
<tbody>
<row>
+ <entry>2010/01/27</entry>
+ <entry>Fixed I²C bus schematic and modified I²C titles</entry>
+ </row>
+ <row>
<entry>2010/01/21</entry>
<entry>Added ADC introduction, re-organized PWM tutorials and
titles</entry>
</row>
=======================================
--- /trunk/doc/dita/tutorials/tutorial_i2c1.xml Sun Nov 8 01:04:16 2009
+++ /trunk/doc/dita/tutorials/tutorial_i2c1.xml Wed Jan 27 10:57:31 2010
@@ -1,8 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?>
-<!-- This document was created with Syntext Serna Free. -->
-<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd" []>
+<!-- This document was created with Syntext Serna Free. --><!DOCTYPE topic
PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd" []>
<topic id="topic-1">
- <title>Building an i2c slave with jallib (part 1)</title>
+ <title>Building an I²C slave, some theory (part 1)</title>
<prolog>
<author>Sébastien Lelong</author>
<publisher>Jallib Group</publisher>
@@ -27,7 +26,7 @@
<p>The same address for read operation will be:</p>
<p><tt>0x93 => 0b_0101_110<b>1</b> => read operation</tt></p>
<note><b>jallib currently supports up to 128 devices on a i2c
bus</b>, using 7-bits long addresses (without the 8th R/W bits).
There's currently no support for 10-bits addresses, which would give
1024 devices on the same bus. If you need it, please let us know,
we'll modify libraries as needed !</note>
- <p>OK, enough for today. Next time, we'll see how two PICs must
be connected for i2c communication, and we'll check the i2c bus is
fully working, before diving into the implementation.
+ <p>OK, enough for now. Next time, we'll see how two PICs must
be connected for i2c communication, and we'll check the i2c bus is
fully working, before diving into the implementation.
</p>
</section>
</body>
=======================================
--- /trunk/doc/dita/tutorials/tutorial_i2c2.xml Sun Nov 8 01:04:16 2009
+++ /trunk/doc/dita/tutorials/tutorial_i2c2.xml Wed Jan 27 10:57:31 2010
@@ -1,26 +1,25 @@
<?xml version='1.0' encoding='UTF-8'?>
-<!-- This document was created with Syntext Serna Free. -->
-<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd" []>
+<!-- This document was created with Syntext Serna Free. --><!DOCTYPE topic
PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd" []>
<topic id="topic-1">
- <title>Building an i2c slave with jallib (part 2)</title>
+ <title>Setting up and checking an I²C bus (part 2)</title>
<prolog>
<author>Sébastien Lelong</author>
<publisher>Jallib Group</publisher>
</prolog>
<body>
- <p>In <xref href="tutorial_i2c1.xml">previous tutorial</xref>, we saw
a basic overview of how to implement an i2c slave, using a finite state
machine implementation. Today, we're going to get our hands a little
dirty, and starts connecting our master/slave together.</p>
+ <p>In <xref href="tutorial_i2c1.xml">previous tutorial</xref>, we saw
a basic overview of how to implement an i2c slave, using a finite state
machine implementation. This time, we're going to get our hands a
little dirty, and starts connecting our master/slave together.</p>
<section>
<title>Checking the hardware and the i2c bus... </title>
<p>First of all, i2c is quite hard to debug, especially if you
don't own an oscilloscope (like me). So you have to be accurate and
rigorous. That's why, in this second part of this tutorial, we're
going to setup the hardware, and just make sure the i2c bus is properly
operational.</p>
<p>Connecting two PIC together through i2c is quite easy from a
hardware point of view. Just connect SDA and SCL together, and
<b>don't forget pull-ups resistors</b>. There are many differents
values for these resistors, depending on <i>how long the bus is</i>, or the
<i>speed you want to reach</i>. Most people use 2.2K resistors, so
let's do the same ! The following schematics is here to help:</p>
- <p><image href="images/i2c_check_bus_schematic.png"
placement="break"/></p>
+ <p><image href="images/i2c_check_bus_schematic.png"
placement="break" width="400" otherprops="clickable"/></p>
<p>In this circuit, both PIC have a LED connected, which will help
us understand what's going on. On a breadboard, this looks like
that:</p>
<p><image href="images/i2c_breadboard_top.jpg"
placement="break"/></p>
<p>The master is on the right side, the slave on the left. I've
put the two pull-ups resistors near the master:</p>
<p><image href="images/i2c_pullups.jpg" placement="break"/></p>
- <p>Green and orange wires connect the two PICs together:</p>
+ <p>Green and orange wires connect the two PICs together through SDA
and SCL lines:</p>
<p><image href="images/i2c_wires.jpg" placement="break"/></p>
- <p>The goal of this test is simple: check if the i2c bus is properly
built and operational. How ? PIC 16F88 and its SSP peripheral is able to be
configured so it triggers an interrupts when a Start or Stop signal is
detected. Read <xref
href="http://www.esacademy.com/faq/i2c/busevents/i2cstast.htm"
format="html">this page</xref> (part of an nice article on i2c, from last
post's recommandations).</p>
+ <p>The goal of this test is simple: check if the i2c bus is properly
built and operational. How ? PIC 16F88 and its SSP peripheral is able to be
configured so it triggers an interrupts when a Start or Stop signal is
detected. Read <xref
href="http://www.esacademy.com/faq/i2c/busevents/i2cstast.htm"
format="html">this page</xref> (part of an nice article on i2c, from
previous tutorial's recommandations).</p>
<p>How are we gonna test this ? The idea of this test is simple:<ol>
<li>On power, master will blink a LED a little, just to inform
you it's alive</li>
<li>On the same time, slave is doing the same</li>
=======================================
--- /trunk/doc/dita/tutorials/tutorial_i2c3.xml Sun Nov 8 01:04:16 2009
+++ /trunk/doc/dita/tutorials/tutorial_i2c3.xml Wed Jan 27 10:57:31 2010
@@ -1,8 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?>
-<!-- This document was created with Syntext Serna Free. -->
-<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd" []>
+<!-- This document was created with Syntext Serna Free. --><!DOCTYPE topic
PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd" []>
<topic id="topic-1">
- <title>Building an i2c slave with jallib (part 3)</title>
+ <title>Implementing an I²C slave with jallib (part 3)</title>
<prolog>
<author>Sébastien Lelong</author>
<publisher>Jallib Group</publisher>
@@ -163,7 +162,6 @@
<title>What now ?</title>
<p>We've seen how to implement a simple i2c hardware slave. The
ISR library provides all the logic about the finite state machine. <i>You
just have to define callbacks, according to your need</i>.</p>
<p>i2c is a widely used protocol. Most of the time, you access i2c
devices, acting as a master. We've seen how to be on the other side,
on the slave side. Being on the slave side means you can build modular
boards, accessible with a standard protocol. For instance, I've built
a <xref href="http://sirbot.org/sirbot-modules/dc-motor-controller-board"
format="html">DC motor controller</xref> daughter board using this.
It's a module, a unit on its own, just plug, and send/receive data,
with just two wires.</p>
- <p>And I also plan to build a LCD controller board, but that's
for another "Step by Step" post :)<fn>and actually this LCD
controller was being built by Jallib guys (Joep, Albert, Richard, Rob), and
known as "LCD interface" project. See <xref
href="http://code.google.com/p/jallib/source/browse/#svn/trunk/project/lcd_interface"
format="html">here</xref> for more.</fn></p>
</section>
</body>
</topic>
--
You received this message because you are subscribed to the Google Groups
"jallib" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/jallib?hl=en.