IRDA on UART1 COLIBRI - registry help needed!

I am using UART1 on the Colibri board to connect directly to a SIR transceiver (TFBS4711). UART3 is the default SIR port on this board, so what registry settings do I need to make to enable IRDA tx/rx on UART1??

I’ve already consulted this knowledge base and it is a bit limited…


Hi @nige,
The PXA3xx processors support SIR (IrDA) on all serial ports. By default we enabled it on STUART (UART_C, COM3). If you would like to use another serial port with SIR it should theoretically work as following:
Disable the IR mode for Serial 3:


Enable it for the serial port of you choice, e.g FFUART (UART_A, COM1)


Make sure the irsir driver uses the right com port, switch from 3 to 1:


Note: You can’t access COM1 anymore, as this port will now be opened by the irsir driver. There should be a COM4 available now (irsir port).
Note2: COM1 is used as debug port by default. This means the bootloader outputs data during boot on this port. You can disable it with boot.silent in the config block (not recommended):
or redirect this if you don’t want:

Colibri PXA300, V1.3B. BSP 4.2. CE6 OS.

I have checked my IRSIR and IRConnected settings, I have…

IRSIR1-Parms->Port =1
IRConnected=1 on Serial1
IRConnected=0 on Serial3 (previous default)

• This seems to receive irDA information ok, but does not transmit.

Are there any registry settings missing?

My GPIO assignment:

        SetGPIOAltFn(110, 1, false);  //Pin 19 UART3_RXD
        SetGPIOAltFn(8, 2, true);      //Pin 21 UART3_TXD
        SetGPIODir(8, true);  //drive as output 
        SetGPIOAltFn(99, 1, false);   //Pin 33 UART1_RXD
        SetGPIOAltFn(100, 1, true);   //Pin 35 UART1_TXD
        SetGPIODir(100, true); );  //drive as output

I think setting the TXPL bit in ISR1 of the PXA300 processor may sort this problem. How do I check its value / or what bit changes this in the registry?

Please do a quick test using CE 5. I just saw, that some components are missing in CE6. I did a quick test on CE5 here and it worked for me. If it also works for you, it’s probably only the missing components. Let me know. It would then probably be possible to send you the missing component as an installer.

Hi Roman

We have carried out testing today with CE5. We have the UART1 interface sending / receiving infrared level signals now, but the output is just rubbish (random junk) on our board. The colibri development board shows the same junk (using UART3).

Can you send over a backed up binary image of your Toradex for us to analyse please?

For your Colibri dev board, which uses UART3, what control port is your software reading/writing to… COM3, or (IRSIR) COM4?

If you can send us over your Visual Studio (2008?) test project, then that would be ideal for us to test and compare.

Also send over missing component installer so we can test on CE6 (customer’s preferred platform).


Hi @nige,
The test I did here was a bit different. I used an old cell phone and sent a picture to the PXA300 running WinCE5. I just start the file sending from the cell phone and a popup on WinCE asks if the file should be stored. After accepting, it gets sent. This means there was a successful communication between the phone and our module. I didn’t use any Visual Studio project.
I guess you just want to send some data using a serial port. This should actually be possible through the virtual comport COM4. This runs on top of irsir (the missing component on CE6). However, the opposite side also needs to use the same protocol. I guess that’s the problem currently. What are you using on the opposite side?
I assume you just want to send a normal UART-like stream over IR. Sounds like it actually also should work. I didn’t test this and also don’t have any other device which would take such infrared input. Since you already have WinCE 5 running, you could try the following:
Disable irsir:

ImagePath = "_irsir.dll"

And then just access COM3 (with our Evaluaton Board). I think irsir was sending the “junk”.