prj_usb_config.h 3.6 KB

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