picctl - a µC

Hardware

This Project started in late 2005. I wanted to create a display-device with usb-connector for my vdr. Adding some keys and IR-input just came logically, especially since i can mout the keys directly beneath the display to allow real 'context sensitive controll'. The display is attached directly onto the PCB, the total size is a result of the left over space in my vdr. I started experimenting with a PIC18F2550 and made a first prototype (rev.2). However, the 18F2550 had too few IO-ports and I had to split the 8Bit display bus into upper and lower nibble and connect it to different ports on the controller. This didnt make handling the display easy. After all, the prototype did work somehow, but not really nice.
I started a redesign with SMD-parts and a 18F4550 controller (rev.3). But routing the PCB became really hard so I switched back to through-hole-comonents. With more pins avilable I could also use the hardware I2C part of the controller making the firmware much easier. This design can been seen here (rev.4.1):
Board Schematics

This board features:

  • 200x70mm PCB
  • USB-Connector: both for data and bootloading the Firmware
  • 240x64 pixel graphics display
  • IR-receiver
  • a realtime clock
  • two port PCF8583 expanders as inputs (keys and rotary encoder)
  • two 10bit PWM channels with PowerMOSFET driver (one used for LCD backlight)
  • wakeup-circuit for ATX boards
  • 6 GPIO pins (also AD capable)
  • I²C-Bus on pinheader for additional addons

Pictures

Frontside Backside Keys

The Eagle-Files are part of the HG-Repository (see the link below).

Software

The Software is divided into two parts: firmware and host-application.
The Firmware is based on the Microchip CDC-demo which worked out-of-the-box. I just had to add my custom code for controlling the t6963c-display, rc5-decoding, i2c-communication, eeprom-handling, pwm-output and some functions for communication with the host. Besides the USB-Descriptor I left the USB-Parts untouched.
In order to test and debug the communication, pidel (my co-author) wrote a utility called picctltestdisplay. It can be used to test all functions and debug the firmware.
On the linux side I used graphlcd-base and added my own code for handling the display-device (the code is based on avrctl). This already done and displaying pictures with 'showpic' works finde. However the vdr-integration into vdr-plugin-graphlcd is still pending. Fortunately I found someone interested in helping with the code, so I am quite confident that we will implement this fast.

Download: HG-Repository


Valid HTML 4.01 Transitional Valid CSS! Creative Commons License Last change: 04.06.2008 cpresser