SROUTE
From Hackstrich
SROUTE is a digital audio distribution router. More details coming later on.
Contents
Project Status
- 2014-03-17 - Found that the Monitor button is shorted to ground somewhere on the UI board, need to investigate that more. Got the Next button cycling through different channels when in Monitor mode.
- 2014-03-16 - Implemented a framebuffer in PIC memory and wrote basic functions to paint points, lines, rectangles, text, and XBM-format graphics into the buffer then draw the buffer to the screen.
- 2014-03-14 - Wrote basic LCD driver code and troubleshot for awhile, eventually found two capacitors missing, added them, and now display works! Next steps are to work more on the LCD driving code and start bringing up the CPLD.
- 2014-03-13 - Assembled power, PIC, and UI section of board.
- 2013-10-14 - Ordered 2 PCBs from MyRO.
- 2013-10-08 - Board completed and checklisted.
- 2013-07-21 - Schematic completed and checklisted.
- 2013-07-20 - RS232 and +5V rail implemented, still need to finish a bit of cleanup, add receive termination, test points, and any remaining diagnostic LEDs.
- 2013-07-19 - Schematic thought to be feature-complete, Andrew reviewed. Remaining to be done: Receive termination on channels, RS232 port, +5V for KSEND, test points, diagnostic LEDs.
- 2013-07-13 - Schematic/BOM work continues. Completed line driver/receiver, routing fabric, power, and logic, need to finish UI.
- 2013-06-30 - Started putting schematic together.
- 2013-06-29 - Initial design ideas.
System Architecture
- 12 KSEND channels
- 4 busses to chain SROUTE boards
- 1 KSEND module on-board (optionally) to allow for channel monitoring and feeding audio in via the SROUTE
- USB connectivity to PC for control (and a second connection to the onboard KSEND for audio)
- RS232 connectivity to PC or other control system for control
UI
- G/Y LED for each port
- 132x32 graphical LCD for status displays
- Pushbutton to scroll through screens
- RGB LED for "is everything okay" indication
- KSEND jacks come out the front for line in/monitor
- Pushbutton to turn on/off monitoring
- LED to indicate if monitoring is on
Microcontroller Requirements
- USB for control
- RS232 for control
- SPI for communicating with KSEND
- SPI for communicating with routing fabric CPLD
- SPI for communicating with display
- I2C for communicating with other SROUTEs on the stacking bus
MCU/CPLD Protocol
- 4-wire SPI
- Frames are from nSS going low to nSS going high again
- Byte 0
- MCU->CPLD - Destination channel
- CPLD->MCU - Bit mask of front panel input status
- 0 = idle
- 1 = actively receiving audio
- Byte 1
- MCU->CPLD - Source channel
- 0 = disconnect destination channel
- 1-8 = front panel inputs
- 9 = KSEND
- 10-13 = trunks
- CPLD->MCU - Bit mask of other input status: 0 = KSEND, 1-4 = trunks
- 0 = idle
- 1 = actively receiving audio
- MCU->CPLD - Source channel
- Byte 2
- MCU->CPLD - Reserved, send all zeroes
- CPLD->MCU - Status of change request
- 0 = OK, channel was un-fed before, is now fed
- 1 = OK, channel now switched
- 2 = OK, channel disconnected
- 3 = Error, channel not changed
- Byte 0
Rev. 1 Issues
- Tabs need to be all in one plane, having an L shape doesn't let you snap the board off
- Tabs should be half as frequent
- C39/40 on BOM as 0.1uF and 10uF on board, latter is right
- LED2 footprint doesn't even come close to matching
- LCD over the back of through-hole pins of the connector isn't ideal
- Pins on HDMI connectors don't quite line up right
- JTAG pinout is mirrored (and excessively large)
- Buffers are on BOM as U22-U24 but one of those is actually the RS232 chip?