Re: how to use iic(4)



Ian Smith wrote this message on Sat, Sep 22, 2007 at 13:16 +1000:
This drew a blank in -questions. I don't know where else to post it, so
I'm hoping someone here might be able to spare me a clue.

You should probably have posted this question to -hackers instead..
This is more low level hardware than networking...

We're building a small board with two AVR Tiny MCUs chatting to each
other over an opto-isolated I2C-compatible bus, hopefully at 400kbps.

Hoping to use the iicbb(4) on lpbb(4) parallel port interface to talk
with either of these MCUs for debugging, control and data acquisition.

iic(4) says:
=======
The iic character device driver provides generic i/o to any iicbus(4)
instance. In order to control I2C devices, use /dev/iic? with the fol-
lowing ioctls:

Ioctl Description
I2CSTART send start condition to the specified device (with 7-bit
address) on the bus
I2CSTOP send stop condition to the bus
I2CRSTCARD reset the bus

You may also use read/write routines, then I2C start/stop handshake is
managed by the iicbus system.
=======

Does the latter statement suggest that ordinary reads from or writes to
/dev/iic? could be performed by redirection of say echo and read from a
script? Or is the device only accessible by ioctl from eg a C program?

No, as you need to select (via I2CSTART) the slave device you are talking
w/ before you do a read or a write...

Secondly, how does /dev/iic? come to exist? This 5.5-STABLE system
seems to have all the requisite drivers, but there's no /dev/iic*:
paqi% kldstat -v | egrep 'iic|lpbb'
29 iicbus/ic
30 iicbus/iic
31 bktr/iicbb
32 lpbb/iicbb
33 viapm/iicbb
34 pcf/iicbus
35 envctrl/iicbus
36 iicbb/iicbus
37 bti2c/iicbus
38 iicbus/iicsmb
86 iicsmb/smbus
12 1 0xc2456000 3000 lpbb.ko
247 ppbus/lpbb

You need to have a device that connects between your i2c bus hardware
and iicbb or iicbus... I'm not familar w/ lpbb, but I have used
/dev/iic? w/ some HD capture card drivers I've written, and they are
created when the device driver probes them... lpbb may need hints to
get it to attach, or may need a properly functioning parallel port..

Also, iicbb(4) is said to be a master-only interface. I can work with
that, but if anyone knows of any iicbus slave-mode code I'm all eyes ..

That's even more complicated as you either need specialized hardware
that will detect when your i2c address is on the bus, or you need to
poll/interrupt on line changes, which could get a bit expensive...

I have a command line iic program that I used to help debug my drivers..
The tool lets you start and then read/write from the device, and then
stop the bus...

I haven't committed it yet, because a few other developers want it under
tools, and I don't like it there, as no one knows about most of the
tools under there... Maybe if we had a man page that talked about the
tools available there it'd be more attractive...

--
John-Mark Gurney Voice: +1 415 225 5579

"All that I will do, has been done, All that I have, has not."
_______________________________________________
freebsd-hackers@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@xxxxxxxxxxx"



Relevant Pages

  • Re: how to use iic(4)
    ... On Mon, 24 Sep 2007, John-Mark Gurney wrote: ... other over an opto-isolated I2C-compatible bus, ... managed by the iicbus system. ...
    (freebsd-hackers)
  • how to use iic(4)
    ... other over an opto-isolated I2C-compatible bus, ... managed by the iicbus system. ... but if anyone knows of any iicbus slave-mode code I'm all eyes .. ...
    (freebsd-net)
  • Re: PoR and AHB Configuration in WINCE
    ... Q. When do you need a device driver, assuming you are trying to work ... to interract with a piece of hardware. ... there is normally a bus driver and a peripheral driver. ... In short, possibly, if your reset chip is one of the more advanced ...
    (microsoft.public.windowsce.platbuilder)
  • Re: 1394 Virtual Device Driver
    ... > on the bus whether it be a 1394 pc or a 1394 dsp. ... > a message to a second virtual device driver both located on the same ... Send an IRP down to the port driver and have it ... >>> between a physical device driver and a virtual device driver (On the ...
    (microsoft.public.development.device.drivers)
  • Re: Overland Data neo 2000/MSL series drive + OpenVMS 8.2>
    ... I asked the customer if he has anything else on the same bus. ... Double termination would cause some scsi issues I would suspect. ... There'd be nothing to mention to MOUNT, if a device driver hadn't been ... tape driver recognizes this tape device within this context, ...
    (comp.os.vms)