<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.mcselec.com/bavr/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.mcselec.com/bavr/index.php?action=history&amp;feed=atom&amp;title=EXTENDED_I2C%2Fde</id>
		<title>EXTENDED I2C/de - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.mcselec.com/bavr/index.php?action=history&amp;feed=atom&amp;title=EXTENDED_I2C%2Fde"/>
		<link rel="alternate" type="text/html" href="http://wiki.mcselec.com/bavr/index.php?title=EXTENDED_I2C/de&amp;action=history"/>
		<updated>2026-04-08T11:09:50Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.18.6</generator>

	<entry>
		<id>http://wiki.mcselec.com/bavr/index.php?title=EXTENDED_I2C/de&amp;diff=1654&amp;oldid=prev</id>
		<title>Admin: 1 revision</title>
		<link rel="alternate" type="text/html" href="http://wiki.mcselec.com/bavr/index.php?title=EXTENDED_I2C/de&amp;diff=1654&amp;oldid=prev"/>
				<updated>2013-02-15T19:05:44Z</updated>
		
		<summary type="html">&lt;p&gt;1 revision&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 19:05, 15 February 2013&lt;/td&gt;
		&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://wiki.mcselec.com/bavr/index.php?title=EXTENDED_I2C/de&amp;diff=1653&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;= &lt;span class=&quot;f_Header&quot;&gt;Action&lt;/span&gt;&lt;br/&gt; =  Instruct the compiler to use parts of the extended i2c library  &lt;span style=&quot;font-family: 'Arial';  color: #000000&quot;&gt;&amp;nbsp;&lt;/span...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.mcselec.com/bavr/index.php?title=EXTENDED_I2C/de&amp;diff=1653&amp;oldid=prev"/>
				<updated>2013-02-05T18:14:56Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Action&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; =  Instruct the compiler to use parts of the extended i2c library  &amp;lt;span style=&amp;quot;font-family: &amp;#039;Arial&amp;#039;;  color: #000000&amp;quot;&amp;gt; &amp;lt;/span...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== (**COPIED FROM ENGLISH PAGE**) === &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Action&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
Instruct the compiler to use parts of the extended i2c library&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: 'Arial';  color: #000000&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: 'Arial';  color: #000000&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Syntax&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;f_Syntax&amp;quot;&amp;gt;$LIB&amp;lt;/span&amp;gt; = &amp;quot;i2c_extended.lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: 'Arial';  color: #000000&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: 'Arial';  color: #000000&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Remarks&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
The I2C library was written when the AVR architecture did not have extended registers. The designers of the AVR chips did not preserve enough space for registers. So when they made bigger chips with more ports they ran out of registers.&lt;br /&gt;
&lt;br /&gt;
They solved it to use space from the RAM memory and move the RAM memory from &amp;amp;H60 to &amp;amp;H100.&lt;br /&gt;
&lt;br /&gt;
In the free space from &amp;amp;60 to &amp;amp;H100 the new extended register were located.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: 'Arial';  color: #000000&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
While this is a practical solution, some ASM instructions could not be used anymore. This made it a problem to use the I2C statements on PORTF and PORTG of the Mega128.&lt;br /&gt;
&lt;br /&gt;
The extended i2c library is intended to use I2C on portF and portG on the M64 and M128.&lt;br /&gt;
&lt;br /&gt;
It uses a bit more space then the normal I2C lib.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: 'Arial';  color: #000000&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Best would be that you use the TWI interface and the i2c_twi library as this uses less code. The disadvantage is that you need fixed pins as TWI used a fix pin for SCL and SDA.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: 'Arial';  color: #000000&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: 'Arial';  color: #000000&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;See also&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
[http://avrhelp.mcselec.com/i2start_i2cstop__i2crbyte__i2cwbyte.htm I2C]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: 'Arial';  color: #000000&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: 'Arial';  color: #000000&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;ASM&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
NONE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: 'Arial';  color: #000000&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: 'Arial';  color: #000000&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
'-------------------------------------------------------------------------------&lt;br /&gt;
' (c) 2005 MCS Electronics&lt;br /&gt;
' This demo shows an example of I2C on the M128 portF&lt;br /&gt;
' PORTF is an extened port and requires a special I2C driver&lt;br /&gt;
'-------------------------------------------------------------------------------&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
$regfile = &amp;quot;m128def.dat&amp;quot; ' the used chip&lt;br /&gt;
$crystal = 8000000&lt;br /&gt;
$baud = 19200 ' baud rate&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
$lib &amp;quot;i2c_extended.lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Config Scl = Portf.0 ' we need to provide the SCL pin name&lt;br /&gt;
Config Sda = Portf.1 ' we need to provide the SDA pin name&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Dim B1 As Byte , B2 As Byte&lt;br /&gt;
Dim W As Word At B1 Overlay&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
I2cinit ' we need to set the pins in the proper state&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Dim B As Byte , X As Byte&lt;br /&gt;
Print &amp;quot;Mega128 master demo&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Print &amp;quot;Scan start&amp;quot;&lt;br /&gt;
For B = 1 To 254 Step 2&lt;br /&gt;
I2cstart&lt;br /&gt;
I2cwbyte B&lt;br /&gt;
If Err = 0 Then&lt;br /&gt;
 Print &amp;quot;Slave at : &amp;quot; ; B&lt;br /&gt;
End If&lt;br /&gt;
I2cstop&lt;br /&gt;
Next&lt;br /&gt;
Print &amp;quot;End Scan&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Do&lt;br /&gt;
I2cstart&lt;br /&gt;
I2cwbyte &amp;amp;H70 ' slave address write&lt;br /&gt;
I2cwbyte &amp;amp;B10101010 ' write command&lt;br /&gt;
I2cwbyte 2&lt;br /&gt;
I2cstop&lt;br /&gt;
Print Err&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
I2cstart&lt;br /&gt;
I2cwbyte &amp;amp;H71&lt;br /&gt;
I2crbyte B1 , Ack&lt;br /&gt;
I2crbyte B2 , Nack&lt;br /&gt;
I2cstop&lt;br /&gt;
Print &amp;quot;Error : &amp;quot; ; Err ' show error&lt;br /&gt;
Waitms 500 'wait a bit&lt;br /&gt;
Loop&lt;br /&gt;
End&lt;br /&gt;
&amp;lt;/source&amp;gt;{{Languages}}&lt;br /&gt;
&lt;br /&gt;
[[Category:ASM_Libraries_and_Add-Ons/de]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>