prj_usb_config.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. #ifndef USB_HARDWARE_PROFILE_H
  2. #define USB_HARDWARE_PROFILE_H
  3. #include "config.h"
  4. //#define CLOCK_FREQ 48000000
  5. //#define BAUDCLOCK_FREQ 12000000 // (48000000 /4) required for baud rate calculations
  6. //#define UART_BAUD_setup(x) SPBRG = x & 0xFFu; SPBRGH = (x >> 8) & 0xFFu
  7. //#define CDC_FLUSH_MS 4 // how many ms timeout before cdc in to host is sent
  8. #define USB_VID (0x4d8)
  9. #define USB_PID (0x000a) // Microchip CDC
  10. #define USB_DEV 0x0002
  11. #define USB_NUM_CONFIGURATIONS 1u
  12. #define USB_NUM_INTERFACES 2u
  13. #define USB_NUM_ENDPOINTS 3u
  14. #define MAX_EPNUM_USED 2u
  15. #define USB_BUS_POWERED 1
  16. #define USB_INTERNAL_TRANSCIEVER 1
  17. #define USB_INTERNAL_PULLUPS 1
  18. #define USB_INTERNAL_VREG 1
  19. #define USB_FULL_SPEED_DEVICE 1
  20. /* PingPong Buffer Mode
  21. * Valid values
  22. * 0 - No PingPong Buffers
  23. * 1 - PingPong on EP0
  24. * 2 - PingPong on all EP
  25. * 3 - PingPong on all except EP0
  26. */
  27. #define USB_PP_BUF_MODE 0
  28. #define USB_EP0_BUFFER_SIZE 8u
  29. #define CDC_NOTICE_BUFFER_SIZE 10u
  30. /* Low Power Request
  31. * Optional user supplied subroutine to set the circuit
  32. * into low power mode during usb suspend.
  33. * Probably needed when bus powered as only 2.5mA should
  34. * be drawn from bus i suspend mode */
  35. //#define usb_low_power_request() Nop()
  36. /*Choose your hardware configuration
  37. *
  38. * Defaults are:
  39. * PIC18F2550 - PiedUsb
  40. */
  41. #if defined (__18F2550)
  42. #define PIEDUSB
  43. #endif
  44. #ifdef PIEDUSB
  45. #define CDC_BUFFER_SIZE 64u
  46. #define CLOCK_FREQ 48000000
  47. #define BAUDCLOCK_FREQ 12000000 // (48000000 /4) required for baud rate calculations
  48. #define UART_BAUD_setup(x) // SPBRG = x & 0xFFu; SPBRGH = (x >> 8) & 0xFFu
  49. #define CDC_FLUSH_MS 4 // how many ms timeout before cdc in to host is sent
  50. /*// LED A0 (2)
  51. #define LED_LAT LATA
  52. #define LED_TRIS TRISA
  53. #define LED_PIN 0b1
  54. #define LedOff() LED_LAT &=(~LED_PIN) //JTR TODO uncomment
  55. #define LedOn() LED_LAT|=LED_PIN //JTR TODO uncomment
  56. #define LedToggle() LED_LAT ^=LED_PIN*/
  57. #define USB_INTERRUPTS //use interrupts instead of polling
  58. /** L E D ***********************************************************/
  59. /* On UBW, LED1 = RC0, LED2 = RC1, SW = RC2 */
  60. #define mInitAllLEDs() LATC &= 0xFC; TRISC &= 0xFC;
  61. #define mLED_1 LATCbits.LATC0
  62. #define mLED_2 LATCbits.LATC1
  63. #define mLED_1_On() mLED_1 = 1;
  64. #define mLED_2_On() mLED_2 = 1;
  65. #define mLED_1_Off() mLED_1 = 0;
  66. #define mLED_2_Off() mLED_2 = 0;
  67. #define mLED_1_Toggle() mLED_1 = !mLED_1;
  68. #define mLED_2_Toggle() mLED_2 = !mLED_2;
  69. /** S W I T C H *****************************************************/
  70. #define mInitSwitch() TRISCbits.TRISC2 = 1;
  71. #define UserSW PORTCbits.RC2
  72. #define mLED_Both_Off() {mLED_1_Off(); mLED_2_Off();}
  73. #define mLED_Both_On() {mLED_1_On(); mLED_2_On();}
  74. #define mLED_Only_1_On() {mLED_1_On(); mLED_2_Off();}
  75. #define mLED_Only_2_On() {mLED_1_Off(); mLED_2_On();}
  76. /** SERIAL DRIVER *****************************************************/
  77. #ifdef OldPied // 0 //oldPiedUsb=1 newone(seeed one)=0
  78. #define mSerDrv LATBbits.LATB0
  79. #define mInitSerDrv() {TRISBbits.TRISB0=0;}
  80. #define mSerDrv_On() {mSerDrv=1;}
  81. #define mSerDrv_Off() {mSerDrv=0;}
  82. #define mSerDrv_isOn() (mSerDrv!=0)
  83. #else
  84. #define mSerDrv LATCbits.LATC0
  85. #define mInitSerDrv() {TRISCbits.TRISC0=0;}
  86. #define mSerDrv_On() {mSerDrv=0;}
  87. #define mSerDrv_Off() {mSerDrv=1;}
  88. #define mSerDrv_isOn() (mSerDrv==0)
  89. #endif
  90. #endif //end processor setup
  91. #endif