UART.c 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. /****************************************************************************/
  2. /* */
  3. /* 创龙 DSP6748 开发板相关函数 */
  4. /* */
  5. /* 2014年07月12日 */
  6. /* */
  7. /****************************************************************************/
  8. #include "hw_types.h"
  9. #include "TL6748.h"
  10. #include "soc_C6748.h"
  11. #include "hw_syscfg0_C6748.h"
  12. /****************************************************************************/
  13. /* */
  14. /* 宏定义 */
  15. /* */
  16. /****************************************************************************/
  17. // UART0
  18. #define PINMUX3_UART0_CTS_ENABLE (SYSCFG_PINMUX3_PINMUX3_27_24_UART0_CTS << \
  19. SYSCFG_PINMUX3_PINMUX3_27_24_SHIFT)
  20. #define PINMUX3_UART0_RTS_ENABLE (SYSCFG_PINMUX3_PINMUX3_31_28_UART0_RTS << \
  21. SYSCFG_PINMUX3_PINMUX3_31_28_SHIFT)
  22. #define PINMUX3_UART0_TXD_ENABLE (SYSCFG_PINMUX3_PINMUX3_23_20_UART0_TXD << \
  23. SYSCFG_PINMUX3_PINMUX3_23_20_SHIFT)
  24. #define PINMUX3_UART0_RXD_ENABLE (SYSCFG_PINMUX3_PINMUX3_19_16_UART0_RXD << \
  25. SYSCFG_PINMUX3_PINMUX3_19_16_SHIFT)
  26. // UART1
  27. #define PINMUX0_UART1_CTS_ENABLE (SYSCFG_PINMUX0_PINMUX0_23_20_UART1_CTS << \
  28. SYSCFG_PINMUX0_PINMUX0_23_20_SHIFT)
  29. #define PINMUX0_UART1_RTS_ENABLE (SYSCFG_PINMUX0_PINMUX0_19_16_UART1_RTS << \
  30. SYSCFG_PINMUX0_PINMUX0_19_16_SHIFT)
  31. #define PINMUX4_UART1_TXD_ENABLE (SYSCFG_PINMUX4_PINMUX4_31_28_UART1_TXD << \
  32. SYSCFG_PINMUX4_PINMUX4_31_28_SHIFT)
  33. #define PINMUX4_UART1_RXD_ENABLE (SYSCFG_PINMUX4_PINMUX4_27_24_UART1_RXD << \
  34. SYSCFG_PINMUX4_PINMUX4_27_24_SHIFT)
  35. // UART2
  36. #define PINMUX0_UART2_CTS_ENABLE (SYSCFG_PINMUX0_PINMUX0_31_28_UART2_CTS << \
  37. SYSCFG_PINMUX0_PINMUX0_31_28_SHIFT)
  38. #define PINMUX0_UART2_RTS_ENABLE (SYSCFG_PINMUX0_PINMUX0_27_24_UART2_RTS << \
  39. SYSCFG_PINMUX0_PINMUX0_27_24_SHIFT)
  40. #define PINMUX4_UART2_TXD_ENABLE (SYSCFG_PINMUX4_PINMUX4_23_20_UART2_TXD << \
  41. SYSCFG_PINMUX4_PINMUX4_23_20_SHIFT)
  42. #define PINMUX4_UART2_RXD_ENABLE (SYSCFG_PINMUX4_PINMUX4_19_16_UART2_RXD << \
  43. SYSCFG_PINMUX4_PINMUX4_19_16_SHIFT)
  44. /****************************************************************************/
  45. /* */
  46. /* 管脚复用配置 */
  47. /* */
  48. /****************************************************************************/
  49. void UARTPinMuxSetup(unsigned int instanceNum, unsigned int modemCtrlChoice)
  50. {
  51. unsigned int svPinMuxRtsCts = 0;
  52. unsigned int svPinMuxTxdRxd = 0;
  53. if(0 == instanceNum)
  54. {
  55. if(TRUE == modemCtrlChoice)
  56. {
  57. svPinMuxRtsCts = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(3)) & \
  58. ~(SYSCFG_PINMUX3_PINMUX3_27_24 | \
  59. SYSCFG_PINMUX3_PINMUX3_31_28));
  60. HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(3)) = \
  61. (PINMUX3_UART0_CTS_ENABLE | \
  62. PINMUX3_UART0_RTS_ENABLE | \
  63. svPinMuxRtsCts);
  64. }
  65. svPinMuxTxdRxd = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(3)) & \
  66. ~(SYSCFG_PINMUX3_PINMUX3_23_20 | \
  67. SYSCFG_PINMUX3_PINMUX3_19_16));
  68. HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(3)) = \
  69. (PINMUX3_UART0_TXD_ENABLE | \
  70. PINMUX3_UART0_RXD_ENABLE | \
  71. svPinMuxTxdRxd);
  72. }
  73. else if(1 == instanceNum)
  74. {
  75. if(TRUE == modemCtrlChoice)
  76. {
  77. svPinMuxRtsCts = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(0)) & \
  78. ~(SYSCFG_PINMUX0_PINMUX0_23_20 | \
  79. SYSCFG_PINMUX0_PINMUX0_19_16));
  80. HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(0)) = \
  81. (PINMUX0_UART1_CTS_ENABLE | \
  82. PINMUX0_UART1_RTS_ENABLE | \
  83. svPinMuxRtsCts);
  84. }
  85. svPinMuxTxdRxd = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) & \
  86. ~(SYSCFG_PINMUX4_PINMUX4_31_28 | \
  87. SYSCFG_PINMUX4_PINMUX4_27_24));
  88. HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = \
  89. (PINMUX4_UART1_TXD_ENABLE | \
  90. PINMUX4_UART1_RXD_ENABLE | \
  91. svPinMuxTxdRxd);
  92. }
  93. else if(2 == instanceNum)
  94. {
  95. if(TRUE == modemCtrlChoice)
  96. {
  97. svPinMuxRtsCts = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(0)) & \
  98. ~(SYSCFG_PINMUX0_PINMUX0_31_28 | \
  99. SYSCFG_PINMUX0_PINMUX0_27_24));
  100. HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(0)) = \
  101. (PINMUX0_UART2_CTS_ENABLE | \
  102. PINMUX0_UART2_RTS_ENABLE | \
  103. svPinMuxRtsCts);
  104. }
  105. svPinMuxTxdRxd = (HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) & \
  106. ~(SYSCFG_PINMUX4_PINMUX4_23_20 | \
  107. SYSCFG_PINMUX4_PINMUX4_19_16));
  108. HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(4)) = \
  109. (PINMUX4_UART2_TXD_ENABLE | \
  110. PINMUX4_UART2_RXD_ENABLE | \
  111. svPinMuxTxdRxd);
  112. }
  113. else
  114. {
  115. }
  116. }