Date: Tue, 17 Oct 2006 21:58:26 +1000 (EST) From: Ian Smith <smithi@nimnet.asn.au> To: "Rick C. Petty" <rick-freebsd@kiwi-computer.com> Cc: freebsd-multimedia@freebsd.org Subject: Re: New port: pvrxxx for Hauppauge PVR150/500 Message-ID: <Pine.BSF.3.96.1061017213058.5494A-100000@gaia.nimnet.asn.au> In-Reply-To: <20061016172502.GB77730@keira.kiwi-computer.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 16 Oct 2006, Rick C. Petty wrote:
> On Mon, Oct 16, 2006 at 05:52:21PM +1000, Ian Smith wrote:
> >
> > Even bit-banging, I expect that it should be able to service interrupts
> > between bytes - though not between bits, obviously - at least while
>
> Why obviously? There's a clock line, so I can't see why pausing even
> between the bits would hurt anything... so long as your transfer rate is
> below the 400 kbit/s throughput. I've done a lot of Atmel AVR i2c myself,
> even with direct bit-banging it seems to work just fine. Of course, if you
> could offload the bus timing you would see a huge performance gain, but
> that's not possible AFAIK in this case.
Looking at the I2C timing diagrams, I suspect you may be right, though
you'd likely only want to stretch timing with SCL high (ie not mid-bit).
Also, while the master controls SCL, the slave may or may not delay the
clock on acknowledge; I think dealing with it bytewise would be simpler.
Anyway, just in addressing this nasty 20-plus second delay reported on
loading firmware, enabling interrupts between bytes sounds like much
easier work and would reduce latency to one nine-bit byte-time, or
~22.5uS @400kHz, which surely beats 20 seconds of unresponsiveness :)
[..]
> > does appear that iicbb is pretty long in the tooth ('98?)
>
> The iicbb could use some cleaning up. I could take a look at it if no one
> else has the time/ability.
It sure won't be me, on either count .. back to AVR bit-twiddling ..
Cheers, Ian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.1061017213058.5494A-100000>
