[Gta04-owner] GTA04A5 IrDA/Consumer IR - was 8mW sleep for Beagle Board

Dr. H. Nikolaus Schaller hns at goldelico.com
Fri Jan 18 09:19:41 CET 2013


Am 10.01.2013 um 09:04 schrieb Dr. H. Nikolaus Schaller:

> Am 10.01.2013 um 00:36 schrieb Butrus Damaskus:
>>> Though I wonder a bit about IrDA - does anyone actually care about that?  I
>>> would imagine that most situations that would once have used IrDA would not
>>> be using bluetooth.
>> I think IrDA maybe easier to use with MCU's (and doesn't interfere
>> with WiFi in 2.4GHz)...
>>> The OMAP3 is capable of generating CIR (Consumer IR) signals which most
>>> consumer electronics remote controls use.  That might be more useful, however
>>> it needs to be wired differently.
> Oh, I didn't know. Figure 17-3 / 17-4 in the TRM.
>> In order to generate CIR a simple GPIO with PWM connected to a cheap
>> IR LED might
>> be sufficient...
> Well, it is easily possible to configure the UART3-TX line as GPIO166 and to drive
> the IrDA LED directly.

Just a better idea: what if we simply set the UART3 to 8 bit, 1 stop bit, 380 kHz clock?

Then, writing 0x00 makes a long impulse while writing 0xf0 makes a short impulse
(LSB is sent first, after a 0 start bit). I.e. 0x00 makes 9 time slots 0 and 0xf0 makes
5 time slots 0.

Writing a sequence of bytes should then generate a 38 kHz signal.

The only issue may be the polarity which is "1" to make the LED flash but I think it
can be solved by clever chaining several bytes sent to the UART to generate almost
any pulse pattern we need.

>>> The CIR signal goes out on the uart3_cts_rctx  pin, where as IrDA goes out on
>>> uart3_tx_irtx - So I don't think they can use the same IrLED (???).
> Ok, we do not have the builtin logic for CIR on the uart3_cts_rctx. As far as I have seen
> it works by writing a byte to the UART that is shifted and generates appropriate PWM/burst
> signals. That should not be impossible to emulate in software by directly controlling a GPIO.
> And since RC-5 frames are neither complex nor fast (bit rate in 1 kHz range) it could work well.
> What I don't know immediately is if our IrDA transmitter is capable enough. It has an
> automatic pulse duration limitation to protect the LED. And, if the kernel is able to
> do the 40kHz on/off burst modulation as required (http://en.wikipedia.org/wiki/RC-5)
> without consuming too much time and blocking important interrupts.
> For IrDA mode the UART3 provides automatic framing, bit stuffing, CRC etc. which
> removes a lot of hassle from the driver. And it provides up to 4 MBit/s (FIR) which can't
> be achieved in GPIO mode.
> But it *might* be possible to use the IrDA or normal UART mode to generate 40kHz bursts
> by clever configuration...
> So if someone wants to experiment, please let us know.
> There is a test command in u-boot (systest irda) with some primitive sample code
> starting at line ~500
> http://projects.goldelico.com/p/gta04-uboot/source/tree/gta04/u-boot/board/goldelico/gta04/systest.c
> Finally it should also be possible to do some experimentation from user space
> (access the GPIO pinmux register and then the GPIO166 data). A digital camera
> should be able to visualize if the LED is flickering at all.

Did anyone experiment with this?


More information about the Gta04-owner mailing list