<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<link rel="self" type="application/atom+xml" href="https://forums.obdev.at/app.php/feed/topic/1859" />

	<title>Objective Development Forums</title>
	
	<link href="https://forums.obdev.at/index.php" />
	<updated>2008-11-04T14:35:25+02:00</updated>

	<author><name><![CDATA[Objective Development Forums]]></name></author>
	<id>https://forums.obdev.at/app.php/feed/topic/1859</id>

		<entry>
		<author><name><![CDATA[henni]]></name></author>
		<updated>2008-11-04T14:35:25+02:00</updated>

		<published>2008-11-04T14:35:25+02:00</published>
		<id>https://forums.obdev.at/viewtopic.php?t=1859&amp;p=6585#p6585</id>
		<link href="https://forums.obdev.at/viewtopic.php?t=1859&amp;p=6585#p6585"/>
		<title type="html"><![CDATA[I2C-tiny-USB data transfer]]></title>

		
		<content type="html" xml:base="https://forums.obdev.at/viewtopic.php?t=1859&amp;p=6585#p6585"><![CDATA[
<blockquote><div><cite>gert wrote:</cite>I2C-tiny-USB uses the control endpoint to transfer data, therefore it's limited to 8 Bytes at a time. </div></blockquote><br />That's wrong. All versions of AVRUSB allow up to 254 bytes control data in both directions. Newer versions allow even more bytes. IMHO Windows limit control transfers to 4KB.<br />However, the I2C-tiny-USB firmware may lack of more-than-8-byte support, I don't know.<br /><br />I have written a more general-use USB-to-I²C interface that supports a variety of chips with following features:<br />* Selectable I²C address (wIndexL[7:1])<br />* Selectable I²C speed (wIndexL[0])<br />* Selectable chip-internal address (wValue[15:0]), both 1-byte and 2-byte, Little Endian and Big Endian order (wIndexH[1:0])<br />* Selectable size of EEPROM page (wIndexH[7:4], 0 = automatic, 1 = byte per byte etc.)<br />* Automatic EEPROM page write inclusive ready waiting<br />* Automatic address repetition (and incrementation, necessary for some non-EEPROM chips) (wIndexH[7:4] = 1)<br />* Full control over start conditions and stop conditions (wIndexH[3:2]), allowing split-and-concatenate transfers (very long data streams)<br />* All non-data (address etc.) bytes packed to SETUP data block, no data copying necessary on host side<br />* Upward compatible to EzMr.exe I²C interfacing (Cypress EzUSB Manager)<br />However, the code is for 8051 (CY7C68013A) and here: <!-- m --><a class="postlink" href="http://www.tu-chemnitz.de/~heha/bastelecke/Rund%20um%20den%20PC/USB2LPT/usb2lpt.zip">http://www.tu-chemnitz.de/~heha/bastele ... sb2lpt.zip</a><!-- m --> and inside src/firmware/USB2LPT2.A51<p>Statistics: Posted by <a href="https://forums.obdev.at/memberlist.php?mode=viewprofile&amp;u=1319">henni</a> — Tue Nov 04, 2008 2:35 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[gert]]></name></author>
		<updated>2008-11-04T00:52:10+02:00</updated>

		<published>2008-11-04T00:52:10+02:00</published>
		<id>https://forums.obdev.at/viewtopic.php?t=1859&amp;p=6571#p6571</id>
		<link href="https://forums.obdev.at/viewtopic.php?t=1859&amp;p=6571#p6571"/>
		<title type="html"><![CDATA[I2C-tiny-USB data transfer]]></title>

		
		<content type="html" xml:base="https://forums.obdev.at/viewtopic.php?t=1859&amp;p=6571#p6571"><![CDATA[
Hi Alan<br /><br />I2C-tiny-USB uses the control endpoint to transfer data, therefore it's limited to 8 Bytes at a time. <br /><br />If you plan to transfer more than 8 bytes at a time you need to implement an interrupt endpoint in your USB device. It may be a good idea to take USBasp or USBaspLoader as a starting point.<br /><br />One more thing: besides the time necessary to  transer 32 bytes of data plus address and command to your EEPROM using (slow) software I2C, it takes 5-15msec until a EEPROM block write is finished (see data sheet). You shouldn't forget to test if the EEPROM is &quot;ready&quot; before accepting new data through USB.<br /><br />Cheers<br />Gert<p>Statistics: Posted by <a href="https://forums.obdev.at/memberlist.php?mode=viewprofile&amp;u=509">gert</a> — Tue Nov 04, 2008 12:52 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[alanp]]></name></author>
		<updated>2008-11-03T21:54:30+02:00</updated>

		<published>2008-11-03T21:54:30+02:00</published>
		<id>https://forums.obdev.at/viewtopic.php?t=1859&amp;p=6570#p6570</id>
		<link href="https://forums.obdev.at/viewtopic.php?t=1859&amp;p=6570#p6570"/>
		<title type="html"><![CDATA[I2C-tiny-USB data transfer]]></title>

		
		<content type="html" xml:base="https://forums.obdev.at/viewtopic.php?t=1859&amp;p=6570#p6570"><![CDATA[
Hi Guys,<br /><br />I'm not sure if this is the right place to ask the question but here goes.<br /><br />I'm writing a python module to access the I2C bus via I2C-tiny-USB.<br />I'm doing this through libUSB so it can be used on Linux and Windows. I'm using the pyUSB project as a wrapper to get to libUSB.<br /><br />I'm not sure whether my questions relates to USB in general or libUSB.<br /><br />My question is how many bytes can I transfer at a time to the I2C bus.<br /><br />I want to be able to read/write to I2C memory (24LCxx parts) which are able to do page read and write. All the examples that come with I2C-tiny-USB only do a byte or word read and write.<br /><br />Can I throw, say, 32 bytes at the device or will have I to do 32 individual read/write instruction.<br /><br />Thanks<br /><br />Alan<p>Statistics: Posted by <a href="https://forums.obdev.at/memberlist.php?mode=viewprofile&amp;u=1097">alanp</a> — Mon Nov 03, 2008 9:54 pm</p><hr />
]]></content>
	</entry>
	</feed>
