OpenCores
no use no use 1/1 no use no use
Sony IRCS Core
by Unknown on Apr 12, 2005
Not available!
Hi everyone,

This is my first post on opencores, and first attempt at posting a VHDL core,
so please bear with me if I'm out of line here :) I would like to post my first
version of the Sony IRCS protocol core (their remote-control infra-red
protocol), but I just had a question about the interface. The core takes an
infra-red bit-stream from any sony-remote and decodes it into device and command
codes. These two codes (7 bit and 8 bit) are currently parallel outputs. I was
thinking of the following simple interface:

- when valid data is received, raise an interrupt pin.
- Data bus (both cmd and dev. registers) are constantly updated
- When user wishes to strobe data, assert an ack signal that clears the interrupt.

Essentially, it is up to the user to respond as fast as they wish - the data
will constantly be updated even if the interrupt isn't serviced.

Anyway, i just wanted to see if this group of signals (ACK, INT, Device register
and Command register) is a decent starting point before implementing a more
complex interface.

Any feedback is appreciated!

Jai


----------------------------------------
This mail sent through www.mywaterloo.ca

Sony IRCS Core
by Unknown on Apr 12, 2005
Not available!
Jai Dhar wrote:

These two
codes (7 bit and 8 bit) are currently parallel outputs.


15 bits of parallel output could be inconvenient to low-end micros (with
8-bit data bus). You'd have to decode 2 separate addresses or use two
GPIO ports (micro-controller).

You may wish to consider an 8-bit wide FIFO to store a couple of
device/command pairs (serially) whilst the host is too busy to process
and/or has a high interrupt latency. This could be useful if interfacing
to a small micro that disables interrupts for a while when it's doing
something else.

- when valid data is received, raise an interrupt pin. - Data bus
(both cmd and dev. registers) are constantly updated - When user
wishes to strobe data, assert an ack signal that clears the
interrupt.


Are you contemplating an edge or level interrupt signal? I suspect level
is easier to implement (eg. tie to FIFO not empty). Don't know whether
you want to bother considering (host) interrupt sharing issues?!?

Without a FIFO simply reading the register (RD strobe) could clear the
interrupt. With a FIFO you could use the FIFO empty to control the
interrupt line. I'd also consider having an interrupt enable/disable as
well.

Essentially, it is up to the user to respond as fast as they wish -
the data will constantly be updated even if the interrupt isn't
serviced.
Depends on whether or not a missed command is important. Using a FIFO could cause a lot less headaches for low-end host processors... Regards, -- Mark McDougall, Software Engineer Virtual Logic Pty Ltd, http://www.vl.com.au> 21-25 King St, Rockdale, 2216 Ph: +612-9599-3255 Fax: +612-9599-3266
Sony IRCS Core
by Unknown on Apr 12, 2005
Not available!
Thanks for your tips Mark, I have replied below. Quoting Mark McDougall markm at vl.com.au>:
Jai Dhar wrote:

> These two
> codes (7 bit and 8 bit) are currently parallel outputs.


15 bits of parallel output could be inconvenient to low-end micros (with
8-bit data bus). You'd have to decode 2 separate addresses or use two
GPIO ports (micro-controller).

You may wish to consider an 8-bit wide FIFO to store a couple of
device/command pairs (serially) whilst the host is too busy to process
and/or has a high interrupt latency. This could be useful if interfacing
to a small micro that disables interrupts for a while when it's doing
something else.


So providing CLK+Data may be better I take it?

> - when valid data is received, raise an interrupt pin. - Data bus
> (both cmd and dev. registers) are constantly updated - When user
> wishes to strobe data, assert an ack signal that clears the
> interrupt.


Are you contemplating an edge or level interrupt signal? I suspect level
is easier to implement (eg. tie to FIFO not empty). Don't know whether
you want to bother considering (host) interrupt sharing issues?!?

Without a FIFO simply reading the register (RD strobe) could clear the
interrupt. With a FIFO you could use the FIFO empty to control the
interrupt line. I'd also consider having an interrupt enable/disable as
well.


Level sensitive interrupt, mostly for the reasons you mentioned. Point noted
about the int. en/dis.

> Essentially, it is up to the user to respond as fast as they wish -
> the data will constantly be updated even if the interrupt isn't
> serviced.


Depends on whether or not a missed command is important. Using a FIFO
could cause a lot less headaches for low-end host processors...


i'm thinking with remote controls, the last button press is most important. This
will be highly individual however. Thanks for the hints!

Regards, -- Mark McDougall, Software Engineer Virtual Logic Pty Ltd, http://www.vl.com.au> 21-25 King St, Rockdale, 2216 Ph: +612-9599-3255 Fax: +612-9599-3266





----------------------------------------
This mail sent through www.mywaterloo.ca

----- End forwarded message -----




----------------------------------------
This mail sent through www.mywaterloo.ca


no use no use 1/1 no use no use
© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.