Re: Expanding Data Length

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Randy,

On Wed, 6 May 2015 20:31:20 +0000, Randy Grunwell wrote:
> First, let me thank you for the I2C-tools! I have made a test controller board for my RPi that uses them, and it has been working flawlessly!

You're welcome :-)

> ... until I tried to add a display. There seems to be a 32-Byte limit on sending, and for some reason, the New Haven display I am using does not like having so little transferred. I have contacted New Haven (and actually the actual driver IC company as well), but they apparently only communicate through the forums, and haven't seen to reply to me.  
> (If you are interested, see http://www.newhavendisplay.com/NHD_forum/index.php? , then Graphics Displays, and the two messages from Tinkerer1359.)

Couldn't find the page, sorry. Why don't you provide a direct link to
the relevant posts?

> So I'd like to ask you to consider expanding the length that can be transferred if possible. This particular display would like to see a tuple of at least 644 bytes at one time!
> 
> Thank you for considering this!

The 32-byte limit isn't an arbitrary software limit on our side. It
comes from the SMBus specification. SMBus is a subset of I2C commonly
used in computers. i2cdump, i2cset etc. are essentially SMBus tools
rather than I2C tools, despite their name, for maximum compatibility.
If they used the i2c interface instead of the smbus interface then they
would be useless on SMBus-only systems.

That being said, you are not the first user frustrated by this limit.
Thankfully, Wolfram recently submitted a new tool to address this
issue. The timing could hardly be better. See:

http://marc.info/?l=linux-i2c&m=142505384332026&w=2

Wolfram's tool is a true I2C tool so it won't suffer from the 32-byte
limit. I believe it should do what you need. I didn't have the time to
review the code yet, but I invite you to test it and report.

A little note though: 644+ bytes are a long message by I2C standards.
Passing all the values as text on the command line to be parsed into a
buffer then passed to the kernel will be rather inefficient. Depending
on how frequently you need to do that, it might be preferable to write
a dedicated tool in C, or to extent Wolfram's i2ctransfer to be able to
read/write binary data from/to files directly, or to write a kernel
driver for your device.

-- 
Jean Delvare
SUSE L3 Support
--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux