
Project drives IR LEDs to send series of TV codes for different protocols used in EU to shut down TVs remotely. Can work in one of two modes:
There are two variants on this shuttle. This one uses a few ROM macros to store the codes to send instead of relying on yosys to generate combinatorial logic to store the codes. This drastically reduces the project size but those macros are not silicon-proven at the time of this tapeout.
For proper work, module needs 8MHz clock (to be generated by RPi Pico) External IR LED should be connected to IR_LED_OUT or IR_LED_OUT_N through transistor to increase driving current. For NPN transistor, IR_LED_OUT should be used. For PNP transistor, IR_LED_OUT_N should be used. There are two status outputs (active low) that can drive LEDs: ACTIVE and FAILURE. To setup module for sending TV codes in a loop, Loop_Forever input should be driven high. To make it sending only one serie of TV codes triggered by Start_Button_N input (active low), Loop_Forever should be driven low.
External IR LED is needed with driving transistor. External button can be connected to Start_Button_N input (driving pin to ground), with pull up resistor to 3V3. Optional diodes can be connected to ACTIVE_LED_N and FAILURE_LED_N, those are active low so should be connected via resistors to 3V3.
| # | Input | Output | Bidirectional |
|---|---|---|---|
| 0 | Start_Button_N | IR_LED_OUT | |
| 1 | Loop_Forever | IR_LED_OUT_N | |
| 2 | ACTIVE_LED_N | ||
| 3 | FAILURE_LED_N | ||
| 4 | |||
| 5 | |||
| 6 | |||
| 7 |