hw_pwm.h 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716
  1. //*****************************************************************************
  2. //
  3. // hw_pwm.h - Defines and Macros for Pulse Width Modulation (PWM) ports
  4. //
  5. // Copyright (c) 2005-2009 Luminary Micro, Inc. All rights reserved.
  6. // Software License Agreement
  7. //
  8. // Luminary Micro, Inc. (LMI) is supplying this software for use solely and
  9. // exclusively on LMI's microcontroller products.
  10. //
  11. // The software is owned by LMI and/or its suppliers, and is protected under
  12. // applicable copyright laws. All rights are reserved. You may not combine
  13. // this software with "viral" open-source software in order to form a larger
  14. // program. Any use in violation of the foregoing restrictions may subject
  15. // the user to criminal sanctions under applicable laws, as well as to civil
  16. // liability for the breach of the terms and conditions of this license.
  17. //
  18. // THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
  19. // OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
  20. // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
  21. // LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
  22. // CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
  23. //
  24. // This is part of revision 4694 of the Stellaris Firmware Development Package.
  25. //
  26. //*****************************************************************************
  27. #ifndef __HW_PWM_H__
  28. #define __HW_PWM_H__
  29. //*****************************************************************************
  30. //
  31. // The following are defines for the PWM Module Register offsets.
  32. //
  33. //*****************************************************************************
  34. #define PWM_O_CTL 0x00000000 // PWM Master Control register
  35. #define PWM_O_SYNC 0x00000004 // PWM Time Base Sync register
  36. #define PWM_O_ENABLE 0x00000008 // PWM Output Enable register
  37. #define PWM_O_INVERT 0x0000000C // PWM Output Inversion register
  38. #define PWM_O_FAULT 0x00000010 // PWM Output Fault register
  39. #define PWM_O_INTEN 0x00000014 // PWM Interrupt Enable register
  40. #define PWM_O_RIS 0x00000018 // PWM Interrupt Raw Status reg.
  41. #define PWM_O_ISC 0x0000001C // PWM Interrupt Status register
  42. #define PWM_O_STATUS 0x00000020 // PWM Status register
  43. #define PWM_O_FAULTVAL 0x00000024 // PWM Fault Condition Value
  44. #define PWM_O_0_CTL 0x00000040 // PWM0 Control
  45. #define PWM_O_0_INTEN 0x00000044 // PWM0 Interrupt and Trigger
  46. // Enable
  47. #define PWM_O_0_RIS 0x00000048 // PWM0 Raw Interrupt Status
  48. #define PWM_O_0_ISC 0x0000004C // PWM0 Interrupt Status and Clear
  49. #define PWM_O_0_LOAD 0x00000050 // PWM0 Load
  50. #define PWM_O_0_COUNT 0x00000054 // PWM0 Counter
  51. #define PWM_O_0_CMPA 0x00000058 // PWM0 Compare A
  52. #define PWM_O_0_CMPB 0x0000005C // PWM0 Compare B
  53. #define PWM_O_0_GENA 0x00000060 // PWM0 Generator A Control
  54. #define PWM_O_0_GENB 0x00000064 // PWM0 Generator B Control
  55. #define PWM_O_0_DBCTL 0x00000068 // PWM0 Dead-Band Control
  56. #define PWM_O_0_DBRISE 0x0000006C // PWM0 Dead-Band Rising-Edge Delay
  57. #define PWM_O_0_DBFALL 0x00000070 // PWM0 Dead-Band
  58. // Falling-Edge-Delay
  59. #define PWM_O_0_FLTSRC0 0x00000074 // PWM0 Fault Source 0
  60. #define PWM_O_0_FLTSRC1 0x00000078 // PWM0 Fault Source 1
  61. #define PWM_O_0_MINFLTPER 0x0000007C // PWM0 Minimum Fault Period
  62. #define PWM_O_1_CTL 0x00000080 // PWM1 Control
  63. #define PWM_O_1_INTEN 0x00000084 // PWM1 Interrupt Enable
  64. #define PWM_O_1_RIS 0x00000088 // PWM1 Raw Interrupt Status
  65. #define PWM_O_1_ISC 0x0000008C // PWM1 Interrupt Status and Clear
  66. #define PWM_O_1_LOAD 0x00000090 // PWM1 Load
  67. #define PWM_O_1_COUNT 0x00000094 // PWM1 Counter
  68. #define PWM_O_1_CMPA 0x00000098 // PWM1 Compare A
  69. #define PWM_O_1_CMPB 0x0000009C // PWM1 Compare B
  70. #define PWM_O_1_GENA 0x000000A0 // PWM1 Generator A Control
  71. #define PWM_O_1_GENB 0x000000A4 // PWM1 Generator B Control
  72. #define PWM_O_1_DBCTL 0x000000A8 // PWM1 Dead-Band Control
  73. #define PWM_O_1_DBRISE 0x000000AC // PWM1 Dead-Band Rising-Edge Delay
  74. #define PWM_O_1_DBFALL 0x000000B0 // PWM1 Dead-Band
  75. // Falling-Edge-Delay
  76. #define PWM_O_1_FLTSRC0 0x000000B4 // PWM1 Fault Source 0
  77. #define PWM_O_1_FLTSRC1 0x000000B8 // PWM1 Fault Source 1
  78. #define PWM_O_1_MINFLTPER 0x000000BC // PWM1 Minimum Fault Period
  79. #define PWM_O_2_CTL 0x000000C0 // PWM2 Control
  80. #define PWM_O_2_INTEN 0x000000C4 // PWM2 InterruptEnable
  81. #define PWM_O_2_RIS 0x000000C8 // PWM2 Raw Interrupt Status
  82. #define PWM_O_2_ISC 0x000000CC // PWM2 Interrupt Status and Clear
  83. #define PWM_O_2_LOAD 0x000000D0 // PWM2 Load
  84. #define PWM_O_2_COUNT 0x000000D4 // PWM2 Counter
  85. #define PWM_O_2_CMPA 0x000000D8 // PWM2 Compare A
  86. #define PWM_O_2_CMPB 0x000000DC // PWM2 Compare B
  87. #define PWM_O_2_GENA 0x000000E0 // PWM2 Generator A Control
  88. #define PWM_O_2_GENB 0x000000E4 // PWM2 Generator B Control
  89. #define PWM_O_2_DBCTL 0x000000E8 // PWM2 Dead-Band Control
  90. #define PWM_O_2_DBRISE 0x000000EC // PWM2 Dead-Band Rising-Edge Delay
  91. #define PWM_O_2_DBFALL 0x000000F0 // PWM2 Dead-Band
  92. // Falling-Edge-Delay
  93. #define PWM_O_2_FLTSRC0 0x000000F4 // PWM2 Fault Source 0
  94. #define PWM_O_2_FLTSRC1 0x000000F8 // PWM2 Fault Source 1
  95. #define PWM_O_2_MINFLTPER 0x000000FC // PWM2 Minimum Fault Period
  96. #define PWM_O_3_CTL 0x00000100 // PWM3 Control
  97. #define PWM_O_3_INTEN 0x00000104 // PWM3 Interrupt and Trigger
  98. // Enable
  99. #define PWM_O_3_RIS 0x00000108 // PWM3 Raw Interrupt Status
  100. #define PWM_O_3_ISC 0x0000010C // PWM3 Interrupt Status and Clear
  101. #define PWM_O_3_LOAD 0x00000110 // PWM3 Load
  102. #define PWM_O_3_COUNT 0x00000114 // PWM3 Counter
  103. #define PWM_O_3_CMPA 0x00000118 // PWM3 Compare A
  104. #define PWM_O_3_CMPB 0x0000011C // PWM3 Compare B
  105. #define PWM_O_3_GENA 0x00000120 // PWM3 Generator A Control
  106. #define PWM_O_3_GENB 0x00000124 // PWM3 Generator B Control
  107. #define PWM_O_3_DBCTL 0x00000128 // PWM3 Dead-Band Control
  108. #define PWM_O_3_DBRISE 0x0000012C // PWM3 Dead-Band Rising-Edge Delay
  109. #define PWM_O_3_DBFALL 0x00000130 // PWM3 Dead-Band
  110. // Falling-Edge-Delay
  111. #define PWM_O_3_FLTSRC0 0x00000134 // PWM3 Fault Source 0
  112. #define PWM_O_3_FLTSRC1 0x00000138 // PWM3 Fault Source 1
  113. #define PWM_O_3_MINFLTPER 0x0000013C // PWM3 Minimum Fault Period
  114. #define PWM_O_0_FLTSEN 0x00000800 // PWM0 Fault Pin Logic Sense
  115. #define PWM_O_0_FLTSTAT0 0x00000804 // PWM0 Fault Status 0
  116. #define PWM_O_0_FLTSTAT1 0x00000808 // PWM0 Fault Status 1
  117. #define PWM_O_1_FLTSEN 0x00000880 // PWM1 Fault Pin Logic Sense
  118. #define PWM_O_1_FLTSTAT0 0x00000884 // PWM1 Fault Status 0
  119. #define PWM_O_1_FLTSTAT1 0x00000888 // PWM1 Fault Status 1
  120. #define PWM_O_2_FLTSEN 0x00000900 // PWM2 Fault Pin Logic Sense
  121. #define PWM_O_2_FLTSTAT0 0x00000904 // PWM2 Fault Status 0
  122. #define PWM_O_2_FLTSTAT1 0x00000908 // PWM2 Fault Status 1
  123. #define PWM_O_3_FLTSEN 0x00000980 // PWM3 Fault Pin Logic Sense
  124. #define PWM_O_3_FLTSTAT0 0x00000984 // PWM3 Fault Status 0
  125. #define PWM_O_3_FLTSTAT1 0x00000988 // PWM3 Fault Status 1
  126. //*****************************************************************************
  127. //
  128. // The following are defines for the bit fields in the PWM Master Control
  129. // register.
  130. //
  131. //*****************************************************************************
  132. #define PWM_CTL_GLOBALSYNC3 0x00000008 // Update PWM Generator 3.
  133. #define PWM_CTL_GLOBALSYNC2 0x00000004 // Update PWM Generator 2.
  134. #define PWM_CTL_GLOBALSYNC1 0x00000002 // Update PWM Generator 1.
  135. #define PWM_CTL_GLOBALSYNC0 0x00000001 // Update PWM Generator 0.
  136. //*****************************************************************************
  137. //
  138. // The following are defines for the bit fields in the PWM Time Base Sync
  139. // register.
  140. //
  141. //*****************************************************************************
  142. #define PWM_SYNC_SYNC3 0x00000008 // Reset generator 3 counter
  143. #define PWM_SYNC_SYNC2 0x00000004 // Reset generator 2 counter
  144. #define PWM_SYNC_SYNC1 0x00000002 // Reset generator 1 counter
  145. #define PWM_SYNC_SYNC0 0x00000001 // Reset generator 0 counter
  146. //*****************************************************************************
  147. //
  148. // The following are defines for the bit fields in the PWM Output Enable
  149. // register.
  150. //
  151. //*****************************************************************************
  152. #define PWM_ENABLE_PWM7EN 0x00000080 // PWM7 pin enable
  153. #define PWM_ENABLE_PWM6EN 0x00000040 // PWM6 pin enable
  154. #define PWM_ENABLE_PWM5EN 0x00000020 // PWM5 pin enable
  155. #define PWM_ENABLE_PWM4EN 0x00000010 // PWM4 pin enable
  156. #define PWM_ENABLE_PWM3EN 0x00000008 // PWM3 pin enable
  157. #define PWM_ENABLE_PWM2EN 0x00000004 // PWM2 pin enable
  158. #define PWM_ENABLE_PWM1EN 0x00000002 // PWM1 pin enable
  159. #define PWM_ENABLE_PWM0EN 0x00000001 // PWM0 pin enable
  160. //*****************************************************************************
  161. //
  162. // The following are defines for the bit fields in the PWM Inversion register.
  163. //
  164. //*****************************************************************************
  165. #define PWM_INVERT_PWM7INV 0x00000080 // PWM7 pin invert
  166. #define PWM_INVERT_PWM6INV 0x00000040 // PWM6 pin invert
  167. #define PWM_INVERT_PWM5INV 0x00000020 // PWM5 pin invert
  168. #define PWM_INVERT_PWM4INV 0x00000010 // PWM4 pin invert
  169. #define PWM_INVERT_PWM3INV 0x00000008 // PWM3 pin invert
  170. #define PWM_INVERT_PWM2INV 0x00000004 // PWM2 pin invert
  171. #define PWM_INVERT_PWM1INV 0x00000002 // PWM1 pin invert
  172. #define PWM_INVERT_PWM0INV 0x00000001 // PWM0 pin invert
  173. //*****************************************************************************
  174. //
  175. // The following are defines for the bit fields in the PWM Fault register.
  176. //
  177. //*****************************************************************************
  178. #define PWM_FAULT_FAULT7 0x00000080 // PWM7 pin fault
  179. #define PWM_FAULT_FAULT6 0x00000040 // PWM6 pin fault
  180. #define PWM_FAULT_FAULT5 0x00000020 // PWM5 pin fault
  181. #define PWM_FAULT_FAULT4 0x00000010 // PWM4 pin fault
  182. #define PWM_FAULT_FAULT3 0x00000008 // PWM3 pin fault
  183. #define PWM_FAULT_FAULT2 0x00000004 // PWM2 pin fault
  184. #define PWM_FAULT_FAULT1 0x00000002 // PWM1 pin fault
  185. #define PWM_FAULT_FAULT0 0x00000001 // PWM0 pin fault
  186. //*****************************************************************************
  187. //
  188. // The following are defines for the bit fields in the PWM Status register.
  189. //
  190. //*****************************************************************************
  191. #define PWM_STATUS_FAULT3 0x00000008 // Fault3 Interrupt Status.
  192. #define PWM_STATUS_FAULT2 0x00000004 // Fault2 Interrupt Status.
  193. #define PWM_STATUS_FAULT1 0x00000002 // Fault1 Interrupt Status.
  194. #define PWM_STATUS_FAULT0 0x00000001 // Fault0 Interrupt Status.
  195. //*****************************************************************************
  196. //
  197. // The following are defines for the PWM Generator standard offsets.
  198. //
  199. //*****************************************************************************
  200. #define PWM_O_X_CTL 0x00000000 // Gen Control Reg
  201. #define PWM_O_X_INTEN 0x00000004 // Gen Int/Trig Enable Reg
  202. #define PWM_O_X_RIS 0x00000008 // Gen Raw Int Status Reg
  203. #define PWM_O_X_ISC 0x0000000C // Gen Int Status Reg
  204. #define PWM_O_X_LOAD 0x00000010 // Gen Load Reg
  205. #define PWM_O_X_COUNT 0x00000014 // Gen Counter Reg
  206. #define PWM_O_X_CMPA 0x00000018 // Gen Compare A Reg
  207. #define PWM_O_X_CMPB 0x0000001C // Gen Compare B Reg
  208. #define PWM_O_X_GENA 0x00000020 // Gen Generator A Ctrl Reg
  209. #define PWM_O_X_GENB 0x00000024 // Gen Generator B Ctrl Reg
  210. #define PWM_O_X_DBCTL 0x00000028 // Gen Dead Band Ctrl Reg
  211. #define PWM_O_X_DBRISE 0x0000002C // Gen DB Rising Edge Delay Reg
  212. #define PWM_O_X_DBFALL 0x00000030 // Gen DB Falling Edge Delay Reg
  213. #define PWM_O_X_FLTSRC0 0x00000034 // Fault pin, comparator condition
  214. #define PWM_O_X_FLTSRC1 0x00000038 // Digital comparator condition
  215. #define PWM_O_X_MINFLTPER 0x0000003C // Fault minimum period extension
  216. #define PWM_GEN_0_OFFSET 0x00000040 // PWM0 base
  217. #define PWM_GEN_1_OFFSET 0x00000080 // PWM1 base
  218. #define PWM_GEN_2_OFFSET 0x000000C0 // PWM2 base
  219. #define PWM_GEN_3_OFFSET 0x00000100 // PWM3 base
  220. //*****************************************************************************
  221. //
  222. // The following are defines for the PWM_X Control Register bit definitions.
  223. //
  224. //*****************************************************************************
  225. #define PWM_X_CTL_LATCH 0x00040000 // Latch Fault Input.
  226. #define PWM_X_CTL_MINFLTPER 0x00020000 // Minimum fault period enabled
  227. #define PWM_X_CTL_FLTSRC 0x00010000 // Fault Condition Source.
  228. #define PWM_X_CTL_DBFALLUPD_M 0x0000C000 // Specifies the update mode for
  229. // the PWMnDBFALL register.
  230. #define PWM_X_CTL_DBFALLUPD_I 0x00000000 // Immediate
  231. #define PWM_X_CTL_DBFALLUPD_LS 0x00008000 // Locally Synchronized
  232. #define PWM_X_CTL_DBFALLUPD_GS 0x0000C000 // Globally Synchronized
  233. #define PWM_X_CTL_DBRISEUPD_M 0x00003000 // PWMnDBRISE Update Mode.
  234. #define PWM_X_CTL_DBRISEUPD_I 0x00000000 // Immediate
  235. #define PWM_X_CTL_DBRISEUPD_LS 0x00002000 // Locally Synchronized
  236. #define PWM_X_CTL_DBRISEUPD_GS 0x00003000 // Globally Synchronized
  237. #define PWM_X_CTL_DBCTLUPD_M 0x00000C00 // PWMnDBCTL Update Mode.
  238. #define PWM_X_CTL_DBCTLUPD_I 0x00000000 // Immediate
  239. #define PWM_X_CTL_DBCTLUPD_LS 0x00000800 // Locally Synchronized
  240. #define PWM_X_CTL_DBCTLUPD_GS 0x00000C00 // Globally Synchronized
  241. #define PWM_X_CTL_GENBUPD_M 0x00000300 // PWMnGENB Update Mode.
  242. #define PWM_X_CTL_GENBUPD_I 0x00000000 // Immediate
  243. #define PWM_X_CTL_GENBUPD_LS 0x00000200 // Locally Synchronized
  244. #define PWM_X_CTL_GENBUPD_GS 0x00000300 // Globally Synchronized
  245. #define PWM_X_CTL_GENAUPD_M 0x000000C0 // PWMnGENA Update Mode.
  246. #define PWM_X_CTL_GENAUPD_I 0x00000000 // Immediate
  247. #define PWM_X_CTL_GENAUPD_LS 0x00000080 // Locally Synchronized
  248. #define PWM_X_CTL_GENAUPD_GS 0x000000C0 // Globally Synchronized
  249. #define PWM_X_CTL_CMPBUPD 0x00000020 // Update mode for comp B reg
  250. #define PWM_X_CTL_CMPAUPD 0x00000010 // Update mode for comp A reg
  251. #define PWM_X_CTL_LOADUPD 0x00000008 // Update mode for the load reg
  252. #define PWM_X_CTL_DEBUG 0x00000004 // Debug mode
  253. #define PWM_X_CTL_MODE 0x00000002 // Counter mode, down or up/down
  254. #define PWM_X_CTL_ENABLE 0x00000001 // Master enable for gen block
  255. //*****************************************************************************
  256. //
  257. // The following are defines for the PWM Generator extended offsets.
  258. //
  259. //*****************************************************************************
  260. #define PWM_O_X_FLTSEN 0x00000000 // Fault logic sense
  261. #define PWM_O_X_FLTSTAT0 0x00000004 // Pin and comparator status
  262. #define PWM_O_X_FLTSTAT1 0x00000008 // Digital comparator status
  263. #define PWM_EXT_0_OFFSET 0x00000800 // PWM0 extended base
  264. #define PWM_EXT_1_OFFSET 0x00000880 // PWM1 extended base
  265. #define PWM_EXT_2_OFFSET 0x00000900 // PWM2 extended base
  266. #define PWM_EXT_3_OFFSET 0x00000980 // PWM3 extended base
  267. //*****************************************************************************
  268. //
  269. // The following are defines for the PWM_X Interrupt/Trigger Enable Register
  270. // bit definitions.
  271. //
  272. //*****************************************************************************
  273. #define PWM_X_INTEN_TRCMPBD 0x00002000 // Trig if COUNT = CMPB D
  274. #define PWM_X_INTEN_TRCMPBU 0x00001000 // Trig if COUNT = CMPB U
  275. #define PWM_X_INTEN_TRCMPAD 0x00000800 // Trig if COUNT = CMPA D
  276. #define PWM_X_INTEN_TRCMPAU 0x00000400 // Trig if COUNT = CMPA U
  277. #define PWM_X_INTEN_TRCNTLOAD 0x00000200 // Trig if COUNT = LOAD
  278. #define PWM_X_INTEN_TRCNTZERO 0x00000100 // Trig if COUNT = 0
  279. #define PWM_X_INTEN_INTCMPBD 0x00000020 // Int if COUNT = CMPA D
  280. #define PWM_X_INTEN_INTCMPBU 0x00000010 // Int if COUNT = CMPA U
  281. #define PWM_X_INTEN_INTCMPAD 0x00000008 // Int if COUNT = CMPA D
  282. #define PWM_X_INTEN_INTCMPAU 0x00000004 // Int if COUNT = CMPA U
  283. #define PWM_X_INTEN_INTCNTLOAD 0x00000002 // Int if COUNT = LOAD
  284. #define PWM_X_INTEN_INTCNTZERO 0x00000001 // Int if COUNT = 0
  285. //*****************************************************************************
  286. //
  287. // The following are defines for the PWM_X Raw Interrupt Status Register bit
  288. // definitions.
  289. //
  290. //*****************************************************************************
  291. #define PWM_X_RIS_INTCMPBD 0x00000020 // PWM_X_COUNT = PWM_X_CMPB D int
  292. #define PWM_X_RIS_INTCMPBU 0x00000010 // PWM_X_COUNT = PWM_X_CMPB U int
  293. #define PWM_X_RIS_INTCMPAD 0x00000008 // PWM_X_COUNT = PWM_X_CMPA D int
  294. #define PWM_X_RIS_INTCMPAU 0x00000004 // PWM_X_COUNT = PWM_X_CMPA U int
  295. #define PWM_X_RIS_INTCNTLOAD 0x00000002 // PWM_X_COUNT = PWM_X_LOAD int
  296. #define PWM_X_RIS_INTCNTZERO 0x00000001 // PWM_X_COUNT = 0 int
  297. //*****************************************************************************
  298. //
  299. // The following are defines for the bit fields in the PWM_O_INTEN register.
  300. //
  301. //*****************************************************************************
  302. #define PWM_INTEN_INTFAULT3 0x00080000 // Interrupt Fault 3.
  303. #define PWM_INTEN_INTFAULT2 0x00040000 // Interrupt Fault 2.
  304. #define PWM_INTEN_INTFAULT1 0x00020000 // Interrupt Fault 1.
  305. #define PWM_INTEN_INTFAULT 0x00010000 // Fault Interrupt Enable.
  306. #define PWM_INTEN_INTFAULT0 0x00010000 // Interrupt Fault 0.
  307. #define PWM_INTEN_INTPWM3 0x00000008 // PWM3 Interrupt Enable.
  308. #define PWM_INTEN_INTPWM2 0x00000004 // PWM2 Interrupt Enable.
  309. #define PWM_INTEN_INTPWM1 0x00000002 // PWM1 Interrupt Enable.
  310. #define PWM_INTEN_INTPWM0 0x00000001 // PWM0 Interrupt Enable.
  311. //*****************************************************************************
  312. //
  313. // The following are defines for the bit fields in the PWM_O_RIS register.
  314. //
  315. //*****************************************************************************
  316. #define PWM_RIS_INTFAULT3 0x00080000 // Interrupt Fault PWM 3.
  317. #define PWM_RIS_INTFAULT2 0x00040000 // Interrupt Fault PWM 2.
  318. #define PWM_RIS_INTFAULT1 0x00020000 // Interrupt Fault PWM 1.
  319. #define PWM_RIS_INTFAULT0 0x00010000 // Interrupt Fault PWM 0.
  320. #define PWM_RIS_INTFAULT 0x00010000 // Fault Interrupt Asserted.
  321. #define PWM_RIS_INTPWM3 0x00000008 // PWM3 Interrupt Asserted.
  322. #define PWM_RIS_INTPWM2 0x00000004 // PWM2 Interrupt Asserted.
  323. #define PWM_RIS_INTPWM1 0x00000002 // PWM1 Interrupt Asserted.
  324. #define PWM_RIS_INTPWM0 0x00000001 // PWM0 Interrupt Asserted.
  325. //*****************************************************************************
  326. //
  327. // The following are defines for the bit fields in the PWM_O_ISC register.
  328. //
  329. //*****************************************************************************
  330. #define PWM_ISC_INTFAULT3 0x00080000 // FAULT3 Interrupt Asserted.
  331. #define PWM_ISC_INTFAULT2 0x00040000 // FAULT2 Interrupt Asserted.
  332. #define PWM_ISC_INTFAULT1 0x00020000 // FAULT1 Interrupt Asserted.
  333. #define PWM_ISC_INTFAULT 0x00010000 // Fault Interrupt Asserted.
  334. #define PWM_ISC_INTFAULT0 0x00010000 // FAULT0 Interrupt Asserted.
  335. #define PWM_ISC_INTPWM3 0x00000008 // PWM3 Interrupt Status.
  336. #define PWM_ISC_INTPWM2 0x00000004 // PWM2 Interrupt Status.
  337. #define PWM_ISC_INTPWM1 0x00000002 // PWM1 Interrupt Status.
  338. #define PWM_ISC_INTPWM0 0x00000001 // PWM0 Interrupt Status.
  339. //*****************************************************************************
  340. //
  341. // The following are defines for the bit fields in the PWM_O_X_ISC register.
  342. //
  343. //*****************************************************************************
  344. #define PWM_X_ISC_INTCMPBD 0x00000020 // Comparator B Down Interrupt.
  345. #define PWM_X_ISC_INTCMPBU 0x00000010 // Comparator B Up Interrupt.
  346. #define PWM_X_ISC_INTCMPAD 0x00000008 // Comparator A Down Interrupt.
  347. #define PWM_X_ISC_INTCMPAU 0x00000004 // Comparator A Up Interrupt.
  348. #define PWM_X_ISC_INTCNTLOAD 0x00000002 // Counter=Load Interrupt.
  349. #define PWM_X_ISC_INTCNTZERO 0x00000001 // Counter=0 Interrupt.
  350. //*****************************************************************************
  351. //
  352. // The following are defines for the bit fields in the PWM_O_X_LOAD register.
  353. //
  354. //*****************************************************************************
  355. #define PWM_X_LOAD_M 0x0000FFFF // Counter Load Value.
  356. #define PWM_X_LOAD_S 0
  357. //*****************************************************************************
  358. //
  359. // The following are defines for the bit fields in the PWM_O_X_COUNT register.
  360. //
  361. //*****************************************************************************
  362. #define PWM_X_COUNT_M 0x0000FFFF // Counter Value.
  363. #define PWM_X_COUNT_S 0
  364. //*****************************************************************************
  365. //
  366. // The following are defines for the bit fields in the PWM_O_X_CMPA register.
  367. //
  368. //*****************************************************************************
  369. #define PWM_X_CMPA_M 0x0000FFFF // Comparator A Value.
  370. #define PWM_X_CMPA_S 0
  371. //*****************************************************************************
  372. //
  373. // The following are defines for the bit fields in the PWM_O_X_CMPB register.
  374. //
  375. //*****************************************************************************
  376. #define PWM_X_CMPB_M 0x0000FFFF // Comparator B Value.
  377. #define PWM_X_CMPB_S 0
  378. //*****************************************************************************
  379. //
  380. // The following are defines for the bit fields in the PWM_O_X_GENA register.
  381. //
  382. //*****************************************************************************
  383. #define PWM_X_GENA_ACTCMPBD_M 0x00000C00 // Action for Comparator B Down.
  384. #define PWM_X_GENA_ACTCMPBD_NONE \
  385. 0x00000000 // Do nothing.
  386. #define PWM_X_GENA_ACTCMPBD_INV 0x00000400 // Invert the output signal.
  387. #define PWM_X_GENA_ACTCMPBD_ZERO \
  388. 0x00000800 // Set the output signal to 0.
  389. #define PWM_X_GENA_ACTCMPBD_ONE 0x00000C00 // Set the output signal to 1.
  390. #define PWM_X_GENA_ACTCMPBU_M 0x00000300 // Action for Comparator B Up.
  391. #define PWM_X_GENA_ACTCMPBU_NONE \
  392. 0x00000000 // Do nothing.
  393. #define PWM_X_GENA_ACTCMPBU_INV 0x00000100 // Invert the output signal.
  394. #define PWM_X_GENA_ACTCMPBU_ZERO \
  395. 0x00000200 // Set the output signal to 0.
  396. #define PWM_X_GENA_ACTCMPBU_ONE 0x00000300 // Set the output signal to 1.
  397. #define PWM_X_GENA_ACTCMPAD_M 0x000000C0 // Action for Comparator A Down.
  398. #define PWM_X_GENA_ACTCMPAD_NONE \
  399. 0x00000000 // Do nothing.
  400. #define PWM_X_GENA_ACTCMPAD_INV 0x00000040 // Invert the output signal.
  401. #define PWM_X_GENA_ACTCMPAD_ZERO \
  402. 0x00000080 // Set the output signal to 0.
  403. #define PWM_X_GENA_ACTCMPAD_ONE 0x000000C0 // Set the output signal to 1.
  404. #define PWM_X_GENA_ACTCMPAU_M 0x00000030 // Action for Comparator A Up.
  405. #define PWM_X_GENA_ACTCMPAU_NONE \
  406. 0x00000000 // Do nothing.
  407. #define PWM_X_GENA_ACTCMPAU_INV 0x00000010 // Invert the output signal.
  408. #define PWM_X_GENA_ACTCMPAU_ZERO \
  409. 0x00000020 // Set the output signal to 0.
  410. #define PWM_X_GENA_ACTCMPAU_ONE 0x00000030 // Set the output signal to 1.
  411. #define PWM_X_GENA_ACTLOAD_M 0x0000000C // Action for Counter=Load.
  412. #define PWM_X_GENA_ACTLOAD_NONE 0x00000000 // Do nothing.
  413. #define PWM_X_GENA_ACTLOAD_INV 0x00000004 // Invert the output signal.
  414. #define PWM_X_GENA_ACTLOAD_ZERO 0x00000008 // Set the output signal to 0.
  415. #define PWM_X_GENA_ACTLOAD_ONE 0x0000000C // Set the output signal to 1.
  416. #define PWM_X_GENA_ACTZERO_M 0x00000003 // Action for Counter=0.
  417. #define PWM_X_GENA_ACTZERO_NONE 0x00000000 // Do nothing.
  418. #define PWM_X_GENA_ACTZERO_INV 0x00000001 // Invert the output signal.
  419. #define PWM_X_GENA_ACTZERO_ZERO 0x00000002 // Set the output signal to 0.
  420. #define PWM_X_GENA_ACTZERO_ONE 0x00000003 // Set the output signal to 1.
  421. //*****************************************************************************
  422. //
  423. // The following are defines for the bit fields in the PWM_O_X_GENB register.
  424. //
  425. //*****************************************************************************
  426. #define PWM_X_GENB_ACTCMPBD_M 0x00000C00 // Action for Comparator B Down.
  427. #define PWM_X_GENB_ACTCMPBD_NONE \
  428. 0x00000000 // Do nothing.
  429. #define PWM_X_GENB_ACTCMPBD_INV 0x00000400 // Invert the output signal.
  430. #define PWM_X_GENB_ACTCMPBD_ZERO \
  431. 0x00000800 // Set the output signal to 0.
  432. #define PWM_X_GENB_ACTCMPBD_ONE 0x00000C00 // Set the output signal to 1.
  433. #define PWM_X_GENB_ACTCMPBU_M 0x00000300 // Action for Comparator B Up.
  434. #define PWM_X_GENB_ACTCMPBU_NONE \
  435. 0x00000000 // Do nothing.
  436. #define PWM_X_GENB_ACTCMPBU_INV 0x00000100 // Invert the output signal.
  437. #define PWM_X_GENB_ACTCMPBU_ZERO \
  438. 0x00000200 // Set the output signal to 0.
  439. #define PWM_X_GENB_ACTCMPBU_ONE 0x00000300 // Set the output signal to 1.
  440. #define PWM_X_GENB_ACTCMPAD_M 0x000000C0 // Action for Comparator A Down.
  441. #define PWM_X_GENB_ACTCMPAD_NONE \
  442. 0x00000000 // Do nothing.
  443. #define PWM_X_GENB_ACTCMPAD_INV 0x00000040 // Invert the output signal.
  444. #define PWM_X_GENB_ACTCMPAD_ZERO \
  445. 0x00000080 // Set the output signal to 0.
  446. #define PWM_X_GENB_ACTCMPAD_ONE 0x000000C0 // Set the output signal to 1.
  447. #define PWM_X_GENB_ACTCMPAU_M 0x00000030 // Action for Comparator A Up.
  448. #define PWM_X_GENB_ACTCMPAU_NONE \
  449. 0x00000000 // Do nothing.
  450. #define PWM_X_GENB_ACTCMPAU_INV 0x00000010 // Invert the output signal.
  451. #define PWM_X_GENB_ACTCMPAU_ZERO \
  452. 0x00000020 // Set the output signal to 0.
  453. #define PWM_X_GENB_ACTCMPAU_ONE 0x00000030 // Set the output signal to 1.
  454. #define PWM_X_GENB_ACTLOAD_M 0x0000000C // Action for Counter=Load.
  455. #define PWM_X_GENB_ACTLOAD_NONE 0x00000000 // Do nothing.
  456. #define PWM_X_GENB_ACTLOAD_INV 0x00000004 // Invert the output signal.
  457. #define PWM_X_GENB_ACTLOAD_ZERO 0x00000008 // Set the output signal to 0.
  458. #define PWM_X_GENB_ACTLOAD_ONE 0x0000000C // Set the output signal to 1.
  459. #define PWM_X_GENB_ACTZERO_M 0x00000003 // Action for Counter=0.
  460. #define PWM_X_GENB_ACTZERO_NONE 0x00000000 // Do nothing.
  461. #define PWM_X_GENB_ACTZERO_INV 0x00000001 // Invert the output signal.
  462. #define PWM_X_GENB_ACTZERO_ZERO 0x00000002 // Set the output signal to 0.
  463. #define PWM_X_GENB_ACTZERO_ONE 0x00000003 // Set the output signal to 1.
  464. //*****************************************************************************
  465. //
  466. // The following are defines for the bit fields in the PWM_O_X_DBCTL register.
  467. //
  468. //*****************************************************************************
  469. #define PWM_X_DBCTL_ENABLE 0x00000001 // Dead-Band Generator Enable.
  470. //*****************************************************************************
  471. //
  472. // The following are defines for the bit fields in the PWM_O_X_DBRISE register.
  473. //
  474. //*****************************************************************************
  475. #define PWM_X_DBRISE_DELAY_M 0x00000FFF // Dead-Band Rise Delay.
  476. #define PWM_X_DBRISE_DELAY_S 0
  477. //*****************************************************************************
  478. //
  479. // The following are defines for the bit fields in the PWM_O_X_DBFALL register.
  480. //
  481. //*****************************************************************************
  482. #define PWM_X_DBFALL_DELAY_M 0x00000FFF // Dead-Band Fall Delay.
  483. #define PWM_X_DBFALL_DELAY_S 0
  484. //*****************************************************************************
  485. //
  486. // The following are defines for the bit fields in the PWM_O_FAULTVAL register.
  487. //
  488. //*****************************************************************************
  489. #define PWM_FAULTVAL_PWM7 0x00000080 // PWM7 Fault Value.
  490. #define PWM_FAULTVAL_PWM6 0x00000040 // PWM6 Fault Value.
  491. #define PWM_FAULTVAL_PWM5 0x00000020 // PWM5 Fault Value.
  492. #define PWM_FAULTVAL_PWM4 0x00000010 // PWM4 Fault Value.
  493. #define PWM_FAULTVAL_PWM3 0x00000008 // PWM3 Fault Value.
  494. #define PWM_FAULTVAL_PWM2 0x00000004 // PWM2 Fault Value.
  495. #define PWM_FAULTVAL_PWM1 0x00000002 // PWM1 Fault Value.
  496. #define PWM_FAULTVAL_PWM0 0x00000001 // PWM0 Fault Value.
  497. //*****************************************************************************
  498. //
  499. // The following are defines for the bit fields in the PWM_O_X_MINFLTPER
  500. // register.
  501. //
  502. //*****************************************************************************
  503. #define PWM_X_MINFLTPER_M 0x0000FFFF // Minimum Fault Period.
  504. #define PWM_X_MINFLTPER_S 0
  505. //*****************************************************************************
  506. //
  507. // The following are defines for the bit fields in the PWM_O_X_FLTSEN register.
  508. //
  509. //*****************************************************************************
  510. #define PWM_X_FLTSEN_FAULT3 0x00000008 // Fault3 Sense.
  511. #define PWM_X_FLTSEN_FAULT2 0x00000004 // Fault2 Sense.
  512. #define PWM_X_FLTSEN_FAULT1 0x00000002 // Fault1 Sense.
  513. #define PWM_X_FLTSEN_FAULT0 0x00000001 // Fault0 Sense.
  514. //*****************************************************************************
  515. //
  516. // The following are defines for the bit fields in the PWM_O_X_FLTSRC0
  517. // register.
  518. //
  519. //*****************************************************************************
  520. #define PWM_X_FLTSRC0_FAULT3 0x00000008 // Fault3.
  521. #define PWM_X_FLTSRC0_FAULT2 0x00000004 // Fault2.
  522. #define PWM_X_FLTSRC0_FAULT1 0x00000002 // Fault1.
  523. #define PWM_X_FLTSRC0_FAULT0 0x00000001 // Fault0.
  524. //*****************************************************************************
  525. //
  526. // The following are defines for the bit fields in the PWM_O_X_FLTSTAT0
  527. // register.
  528. //
  529. //*****************************************************************************
  530. #define PWM_X_FLTSTAT0_FAULT3 0x00000008 // Fault Input 3.
  531. #define PWM_X_FLTSTAT0_FAULT2 0x00000004 // Fault Input 2.
  532. #define PWM_X_FLTSTAT0_FAULT1 0x00000002 // Fault Input 1.
  533. #define PWM_X_FLTSTAT0_FAULT0 0x00000001 // Fault Input 0.
  534. //*****************************************************************************
  535. //
  536. // The following are defines for the bit fields in the PWM_O_X_FLTSRC1
  537. // register.
  538. //
  539. //*****************************************************************************
  540. #define PWM_X_FLTSRC1_DCMP7 0x00000080 // Digital Comparator 7.
  541. #define PWM_X_FLTSRC1_DCMP6 0x00000040 // Digital Comparator 6.
  542. #define PWM_X_FLTSRC1_DCMP5 0x00000020 // Digital Comparator 5.
  543. #define PWM_X_FLTSRC1_DCMP4 0x00000010 // Digital Comparator 4.
  544. #define PWM_X_FLTSRC1_DCMP3 0x00000008 // Digital Comparator 3.
  545. #define PWM_X_FLTSRC1_DCMP2 0x00000004 // Digital Comparator 2.
  546. #define PWM_X_FLTSRC1_DCMP1 0x00000002 // Digital Comparator 1.
  547. #define PWM_X_FLTSRC1_DCMP0 0x00000001 // Digital Comparator 0.
  548. //*****************************************************************************
  549. //
  550. // The following are defines for the bit fields in the PWM_O_X_FLTSTAT1
  551. // register.
  552. //
  553. //*****************************************************************************
  554. #define PWM_X_FLTSTAT1_DCMP7 0x00000080 // Digital Comparator 7 Trigger.
  555. #define PWM_X_FLTSTAT1_DCMP6 0x00000040 // Digital Comparator 6 Trigger.
  556. #define PWM_X_FLTSTAT1_DCMP5 0x00000020 // Digital Comparator 5 Trigger.
  557. #define PWM_X_FLTSTAT1_DCMP4 0x00000010 // Digital Comparator 4 Trigger.
  558. #define PWM_X_FLTSTAT1_DCMP3 0x00000008 // Digital Comparator 3 Trigger.
  559. #define PWM_X_FLTSTAT1_DCMP2 0x00000004 // Digital Comparator 2 Trigger.
  560. #define PWM_X_FLTSTAT1_DCMP1 0x00000002 // Digital Comparator 1 Trigger.
  561. #define PWM_X_FLTSTAT1_DCMP0 0x00000001 // Digital Comparator 0 Trigger.
  562. //*****************************************************************************
  563. //
  564. // The following definitions are deprecated.
  565. //
  566. //*****************************************************************************
  567. #ifndef DEPRECATED
  568. //*****************************************************************************
  569. //
  570. // The following are deprecated defines for the bit fields in the PWM Master
  571. // Control register.
  572. //
  573. //*****************************************************************************
  574. #define PWM_CTL_GLOBAL_SYNC2 0x00000004 // Global sync generator 2
  575. #define PWM_CTL_GLOBAL_SYNC1 0x00000002 // Global sync generator 1
  576. #define PWM_CTL_GLOBAL_SYNC0 0x00000001 // Global sync generator 0
  577. //*****************************************************************************
  578. //
  579. // The following are deprecated defines for the PWM Interrupt Register bit
  580. // definitions.
  581. //
  582. //*****************************************************************************
  583. #define PWM_INT_INTFAULT 0x00010000 // Fault interrupt pending
  584. //*****************************************************************************
  585. //
  586. // The following are deprecated defines for the bit fields in the PWM Status
  587. // register.
  588. //
  589. //*****************************************************************************
  590. #define PWM_STATUS_FAULT 0x00000001 // Fault status
  591. //*****************************************************************************
  592. //
  593. // The following are deprecated defines for the PWM_X Interrupt Status Register
  594. // bit definitions.
  595. //
  596. //*****************************************************************************
  597. #define PWM_X_INT_INTCMPBD 0x00000020 // PWM_X_COUNT = PWM_X_CMPB D rcvd
  598. #define PWM_X_INT_INTCMPBU 0x00000010 // PWM_X_COUNT = PWM_X_CMPB U rcvd
  599. #define PWM_X_INT_INTCMPAD 0x00000008 // PWM_X_COUNT = PWM_X_CMPA D rcvd
  600. #define PWM_X_INT_INTCMPAU 0x00000004 // PWM_X_COUNT = PWM_X_CMPA U rcvd
  601. #define PWM_X_INT_INTCNTLOAD 0x00000002 // PWM_X_COUNT = PWM_X_LOAD rcvd
  602. #define PWM_X_INT_INTCNTZERO 0x00000001 // PWM_X_COUNT = 0 received
  603. //*****************************************************************************
  604. //
  605. // The following are deprecated defines for the PWM_X Generator A/B Control
  606. // Register bit definitions.
  607. //
  608. //*****************************************************************************
  609. #define PWM_X_GEN_Y_ACTCMPBD 0x00000C00 // Act PWM_X_COUNT = PWM_X_CMPB D
  610. #define PWM_X_GEN_Y_ACTCMPBU 0x00000300 // Act PWM_X_COUNT = PWM_X_CMPB U
  611. #define PWM_X_GEN_Y_ACTCMPAD 0x000000C0 // Act PWM_X_COUNT = PWM_X_CMPA D
  612. #define PWM_X_GEN_Y_ACTCMPAU 0x00000030 // Act PWM_X_COUNT = PWM_X_CMPA U
  613. #define PWM_X_GEN_Y_ACTLOAD 0x0000000C // Act PWM_X_COUNT = PWM_X_LOAD
  614. #define PWM_X_GEN_Y_ACTZERO 0x00000003 // Act PWM_X_COUNT = 0
  615. //*****************************************************************************
  616. //
  617. // The following are deprecated defines for the PWM_X Generator A/B Control
  618. // Register action definitions.
  619. //
  620. //*****************************************************************************
  621. #define PWM_GEN_ACT_ONE 0x00000003 // Set the output signal to one
  622. #define PWM_GEN_ACT_ZERO 0x00000002 // Set the output signal to zero
  623. #define PWM_GEN_ACT_INV 0x00000001 // Invert the output signal
  624. #define PWM_GEN_ACT_NONE 0x00000000 // Do nothing
  625. #define PWM_GEN_ACT_B_DN_SHIFT 10 // Shift amount for the B dn action
  626. #define PWM_GEN_ACT_B_UP_SHIFT 8 // Shift amount for the B up action
  627. #define PWM_GEN_ACT_A_DN_SHIFT 6 // Shift amount for the A dn action
  628. #define PWM_GEN_ACT_A_UP_SHIFT 4 // Shift amount for the A up action
  629. #define PWM_GEN_ACT_LOAD_SHIFT 2 // Shift amount for the load action
  630. #define PWM_GEN_ACT_ZERO_SHIFT 0 // Shift amount for the zero action
  631. //*****************************************************************************
  632. //
  633. // The following are deprecated defines for the PWM_X Dead Band Control
  634. // Register bit definitions.
  635. //
  636. //*****************************************************************************
  637. #define PWM_DBCTL_ENABLE 0x00000001 // Enable dead band insertion
  638. //*****************************************************************************
  639. //
  640. // The following are deprecated defines for the PWM Register reset values.
  641. //
  642. //*****************************************************************************
  643. #define PWM_RV_X_DBCTL 0x00000000 // Control the dead band generator
  644. #define PWM_RV_STATUS 0x00000000 // Status
  645. #define PWM_RV_X_ISC 0x00000000 // Interrupt status and clearing
  646. #define PWM_RV_X_RIS 0x00000000 // Raw interrupt status
  647. #define PWM_RV_X_CTL 0x00000000 // Master control of the PWM
  648. // generator block
  649. #define PWM_RV_SYNC 0x00000000 // Counter synch for PWM generators
  650. #define PWM_RV_X_DBFALL 0x00000000 // The dead band falling edge delay
  651. // count
  652. #define PWM_RV_X_INTEN 0x00000000 // Interrupt and trigger enable
  653. #define PWM_RV_X_LOAD 0x00000000 // The load value for the counter
  654. #define PWM_RV_X_GENA 0x00000000 // Controls PWM generator A
  655. #define PWM_RV_CTL 0x00000000 // Master control of the PWM module
  656. #define PWM_RV_FAULT 0x00000000 // Fault handling for the PWM
  657. // output pins
  658. #define PWM_RV_RIS 0x00000000 // Raw interrupt status
  659. #define PWM_RV_X_CMPA 0x00000000 // The comparator A value
  660. #define PWM_RV_INVERT 0x00000000 // Inversion control for PWM output
  661. // pins
  662. #define PWM_RV_X_DBRISE 0x00000000 // The dead band rising edge delay
  663. // count
  664. #define PWM_RV_ENABLE 0x00000000 // Master enable for the PWM output
  665. // pins
  666. #define PWM_RV_X_GENB 0x00000000 // Controls PWM generator B
  667. #define PWM_RV_X_CMPB 0x00000000 // The comparator B value
  668. #define PWM_RV_ISC 0x00000000 // Interrupt status and clearing
  669. #define PWM_RV_INTEN 0x00000000 // Interrupt enable
  670. #define PWM_RV_X_COUNT 0x00000000 // The current counter value
  671. #endif
  672. #endif // __HW_PWM_H__