Keyboard firmwares for Atmel AVR and Cortex-M
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

RelayBoard.txt 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. /** \file
  2. *
  3. * This file contains special DoxyGen information for the generation of the main page and other special
  4. * documentation pages. It is not a project source file.
  5. */
  6. /** \mainpage OB's Quad-Relay outlet control using a Teensy2++
  7. *
  8. * \section Sec_Compat Project Compatibility:
  9. *
  10. * The following list indicates what microcontrollers are compatible with this project.
  11. *
  12. * \li AT90USB1286
  13. *
  14. * \section Sec_Info USB Information:
  15. *
  16. * The following table gives a rundown of the USB utilization of this project.
  17. *
  18. * <table>
  19. * <tr>
  20. * <td><b>USB Mode:</b></td>
  21. * <td>Device</td>
  22. * </tr>
  23. * <tr>
  24. * <td><b>USB Class:</b></td>
  25. * <td>None</td>
  26. * </tr>
  27. * <tr>
  28. * <td><b>USB Subclass:</b></td>
  29. * <td>None</td>
  30. * </tr>
  31. * <tr>
  32. * <td><b>Relevant Standards:</b></td>
  33. * <td>USB Standards</td>
  34. * </tr>
  35. * <tr>
  36. * <td><b>Supported USB Speeds:</b></td>
  37. * <td>Low Speed Mode, Full Speed Mode</td>
  38. * </tr>
  39. * </table>
  40. *
  41. * \section Sec_Description Project Description:
  42. *
  43. * Firmware for a Teensy2++ AVR-based miniboard to control four relays, using the
  44. * same protocol used by the commercially available Silver Shield PM power outlets
  45. * ( http://sourceforge.net/projects/sispmctl ) sold for some time. Because this
  46. * project mimics the original device, it can be controlled using the "sismpctl"
  47. * package included in many Linux distributions - including router-orientated
  48. * versions such as OpenWRT - to control the board's relays.
  49. *
  50. * Relays 1 to 4 are respectively wired to pins C4, C5, C6 and C7 of the Teensy++ V2,
  51. * which are the PORTC bits 4 to 7 of the AT90USB1286. The relays MUST be wired through
  52. * a transistor, and a diode must be added in antiparallel on the relay's coil pins to
  53. * protect the transistor from back EMF generated from the relay when the coil is turned off.
  54. * The transistor base pin is wired to the Teensy data port through a 10K resistor. A
  55. * LED may be also be added as a relay status indicator on each channel.
  56. *
  57. * The Relay coil will be driven by the transistor, but the power will come from
  58. * the 5V from the PC's USB port: Be careful in choosing the relay to avoid overloading
  59. * the PC, as the maximum current used MUST remains under ~450mA @ 5V.
  60. *
  61. * The author's tested relays are 2 Finder 32.21.7.005.2000, coil il 125ohm, which can
  62. * handle 5A @ 250VAC. Be careful to use proper isolation if high voltages are manipulated.
  63. * The author used Hotglue to isolate all parts of the PCB in contact with high voltage.
  64. *
  65. * See <a>http://www.pjrc.com/teensy/</a> for the Teensy2++ website.
  66. *
  67. * <table>
  68. * <tr>
  69. * <td><b>Signal:</b></td>
  70. * <td><b>AVR Port:</b></td>
  71. * </tr>
  72. * <tr>
  73. * <td>Relay 1</td>
  74. * <td>PORTC, Pin 4</td>
  75. * </tr>
  76. * <tr>
  77. * <td>Relay 2</td>
  78. * <td>PORTC, Pin 5</td>
  79. * </tr>
  80. * <tr>
  81. * <td>Relay 3</td>
  82. * <td>PORTC, Pin 6</td>
  83. * </tr>
  84. * <tr>
  85. * <td>Relay 4</td>
  86. * <td>PORTC, Pin 7</td>
  87. * </tr>
  88. * <tr>
  89. * <td>Teensy2++ Yellow Led</td>
  90. * <td>PORTD, pin 6</td>
  91. * </tr>
  92. * </table>
  93. *
  94. * \section Sec_Options Project Options
  95. *
  96. * The following defines can be found in this project, which can control the project behaviour when defined, or changed in value.
  97. *
  98. * <table>
  99. * <tr>
  100. * <td>
  101. * None
  102. * </td>
  103. * </tr>
  104. * </table>
  105. */