Hello, this is my first post, and my first PIC circuit. My experience with electronics is quite small... when I was a child I had an 100-in-1 electric experiments kit which taught me the foundations but not much more. Anyway I've designed a control device using a 16F871 PIC that interfaces to a PC through an EPP printer port. The purpose of the device is to send commands to an LCD controller such as a SED1335 (in my case a Densitron LM6733) or just as easily a KS0107 or HD44780 (by rewriting the PIC software). The PIC also accepts input from in IR receiver which is used to monitor RC5 remotes, and has an input for the PC ATX Power Button, it also has two LED outputs and a reed-relay switch output which will be connected to the motherboards power button connector on the motherboard its self.
The PIC will be programmed to monitor the EPP interface, the IR Receiver and the power button. The EPP interface provides two sets of 8bit information, either an address byte or a data byte, both of which can both be sent and received from the PC. When an address byte is received the PIC will store it into a "next address" register, and when it receives a data byte it will perform some task using the data byte and the address byte. For example the address byte may mean PORTD which is the output port connected to the LCD Data lines, details to be worked out.
The PIC when monitoring the IR receiver will attempt to process any signal it receives into an RC5 remote control data byte indicating the button pressed and send this information to the PC through the parallel port.
It can be programmed to store the code for the powerbutton on your remote and saves that value in its EEPROM memory so that it will not loose it on power off.
It will also be programmed to turn the PC on and off using the remote by pulsing the relay that is connected to the motherboard power switch connector.
It can draw power from the Wake-on-lan header as well as the standard motherboard 12,G,G,5 connectors.
Finally the PIC has an output pin that can be used to enable and disable to backlight inverter on compatible inverters. It has jumpers to control enable this feature (alternative is always on), and for selecting either 12v or 5v for the inverters power.
The design is loosly based on the design at https://www.tb-electronic.de/vdr/ir_controller.html .
Details of the EPP spec I used for reference are here: **broken link removed**
I would like for any more experienced experts to have a look at my design, see what is missing or if i've made any fatal assumptions. What you think of the design, whether or not you think it will work, any improvements or additions you can think of would also be greatly appreciated.
I have attatched a JPG of the schematic done in Eagle. If anyone wants i'll provide the Eagle file.
Here are the details of the signals connected to the PIC:
PIN I/O Destination (/ means active low)
MCLR I EPP /RESET signal
RA0 O LCD /RD Signal
RA1 O LCD /WR Signal
RA2 O LCD A0 Signal
RA3 O LCD /CS Signal
RA4 O LCD /RESET Signal
RA5 O Backlight enable
RB0 I EPP /WRITE signal
RB1 O EPP /WAIT signal
RB2 O EPP INTERRUPT signal
RB3 PULLED DOWN to ensure PGM remains disabled
RB4 I EPP /DATASTROBE signal
RB5 I EPP /ADDRESSSTOBE signal
RB6 I POWER BUTTON IN (connects to power button on pc case)
RB7 I IR RECEIVER INPUT (connects to ir receivers signal line)
RC0...7 IO EPP DATA LINES
RD0...7 IO LCD DATA LINES
RE0 O LEDA enable
RE1 O LEDB enable
RE2 O POWER BUTTON OUT (enables relay that connects to mb power connector)
The PIC will be programmed to monitor the EPP interface, the IR Receiver and the power button. The EPP interface provides two sets of 8bit information, either an address byte or a data byte, both of which can both be sent and received from the PC. When an address byte is received the PIC will store it into a "next address" register, and when it receives a data byte it will perform some task using the data byte and the address byte. For example the address byte may mean PORTD which is the output port connected to the LCD Data lines, details to be worked out.
The PIC when monitoring the IR receiver will attempt to process any signal it receives into an RC5 remote control data byte indicating the button pressed and send this information to the PC through the parallel port.
It can be programmed to store the code for the powerbutton on your remote and saves that value in its EEPROM memory so that it will not loose it on power off.
It will also be programmed to turn the PC on and off using the remote by pulsing the relay that is connected to the motherboard power switch connector.
It can draw power from the Wake-on-lan header as well as the standard motherboard 12,G,G,5 connectors.
Finally the PIC has an output pin that can be used to enable and disable to backlight inverter on compatible inverters. It has jumpers to control enable this feature (alternative is always on), and for selecting either 12v or 5v for the inverters power.
The design is loosly based on the design at https://www.tb-electronic.de/vdr/ir_controller.html .
Details of the EPP spec I used for reference are here: **broken link removed**
I would like for any more experienced experts to have a look at my design, see what is missing or if i've made any fatal assumptions. What you think of the design, whether or not you think it will work, any improvements or additions you can think of would also be greatly appreciated.
I have attatched a JPG of the schematic done in Eagle. If anyone wants i'll provide the Eagle file.
Here are the details of the signals connected to the PIC:
PIN I/O Destination (/ means active low)
MCLR I EPP /RESET signal
RA0 O LCD /RD Signal
RA1 O LCD /WR Signal
RA2 O LCD A0 Signal
RA3 O LCD /CS Signal
RA4 O LCD /RESET Signal
RA5 O Backlight enable
RB0 I EPP /WRITE signal
RB1 O EPP /WAIT signal
RB2 O EPP INTERRUPT signal
RB3 PULLED DOWN to ensure PGM remains disabled
RB4 I EPP /DATASTROBE signal
RB5 I EPP /ADDRESSSTOBE signal
RB6 I POWER BUTTON IN (connects to power button on pc case)
RB7 I IR RECEIVER INPUT (connects to ir receivers signal line)
RC0...7 IO EPP DATA LINES
RD0...7 IO LCD DATA LINES
RE0 O LEDA enable
RE1 O LEDB enable
RE2 O POWER BUTTON OUT (enables relay that connects to mb power connector)