hw_fan.h 34.7 KB
Newer Older
F
 
fengzi.rtt@gmail.com 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
//*****************************************************************************
//
// hw_fan.h - Macros used when accessing the fan control hardware.
//
// Copyright (c) 2010-2011 Texas Instruments Incorporated.  All rights reserved.
// Software License Agreement
// 
// Texas Instruments (TI) is supplying this software for use solely and
// exclusively on TI's microcontroller products. The software is owned by
// TI and/or its suppliers, and is protected under applicable copyright
// laws. You may not combine this software with "viral" open-source
// software in order to form a larger program.
// 
// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
// DAMAGES, FOR ANY REASON WHATSOEVER.
// 
21
// This is part of revision 8264 of the Stellaris Firmware Development Package.
F
 
fengzi.rtt@gmail.com 已提交
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636
//
//*****************************************************************************

#ifndef __HW_FAN_H__
#define __HW_FAN_H__

//*****************************************************************************
//
// The following are defines for the Fan Control register offsets.
//
//*****************************************************************************
#define FAN_O_STS               0x00000000  // FAN Status
#define FAN_O_CTL               0x00000004  // FAN Control
#define FAN_O_CH0               0x00000010  // FAN Channel Command
#define FAN_O_CMD0              0x00000014  // FAN Channel Command
#define FAN_O_CST0              0x00000018  // FAN Channel Status
#define FAN_O_CH1               0x00000020  // FAN Channel Setup
#define FAN_O_CMD1              0x00000024  // FAN Channel Command
#define FAN_O_CST1              0x00000028  // FAN Channel Status
#define FAN_O_CH2               0x00000030  // FAN Channel Setup
#define FAN_O_CMD2              0x00000034  // FAN Channel Command
#define FAN_O_CST2              0x00000038  // FAN Channel Status
#define FAN_O_CH3               0x00000040  // FAN Channel Setup
#define FAN_O_CMD3              0x00000044  // FAN Channel Command
#define FAN_O_CST3              0x00000048  // FAN Channel Status
#define FAN_O_CH4               0x00000050  // FAN Channel Setup
#define FAN_O_CMD4              0x00000054  // FAN Channel Command
#define FAN_O_CST4              0x00000058  // FAN Channel Status
#define FAN_O_CH5               0x00000060  // FAN Channel Setup
#define FAN_O_CMD5              0x00000064  // FAN Channel Command
#define FAN_O_CST5              0x00000068  // FAN Channel Status
#define FAN_O_CH6               0x00000070  // FAN Channel Setup
#define FAN_O_CMD6              0x00000074  // FAN Channel Command
#define FAN_O_CST6              0x00000078  // FAN Channel Status
#define FAN_O_CH7               0x00000080  // FAN Channel Setup
#define FAN_O_CMD7              0x00000084  // FAN Channel Command
#define FAN_O_CST7              0x00000088  // FAN Channel Status
#define FAN_O_IM                0x00000090  // FAN Interrupt Mask
#define FAN_O_RIS               0x00000094  // FAN Raw Interrupt Status
#define FAN_O_MIS               0x00000098  // FAN Masked Interrupt Status
#define FAN_O_IC                0x0000009C  // FAN Interrupt Clear
#define FAN_O_PP                0x00000FC0  // FAN Peripheral Properties

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_STS register.
//
//*****************************************************************************
#define FAN_STS_FANCNT_M        0x000F0000  // Fan Count
#define FAN_STS_ST5_M           0x00000C00  // Fan 5 Status
#define FAN_STS_ST5_STALLED     0x00000000  // Stalled
#define FAN_STS_ST5_CHANGING    0x00000400  // Changing
#define FAN_STS_ST5_LOCKED      0x00000800  // Locked
#define FAN_STS_ST5_UNBALANCED  0x00000C00  // Unbalanced Spin
#define FAN_STS_ST4_M           0x00000300  // Fan 4 Status
#define FAN_STS_ST3_M           0x000000C0  // Fan 3 Status
#define FAN_STS_ST2_M           0x00000030  // Fan 2 Status
#define FAN_STS_ST1_M           0x0000000C  // Fan 1 Status
#define FAN_STS_ST0_M           0x00000003  // Fan 0 Status
#define FAN_STS_FANCNT_S        16
#define FAN_STS_ST4_S           8
#define FAN_STS_ST3_S           6
#define FAN_STS_ST2_S           4
#define FAN_STS_ST1_S           2
#define FAN_STS_ST0_S           0

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CTL register.
//
//*****************************************************************************
#define FAN_CTL_E5              0x00000020  // Fan 5 Enable
#define FAN_CTL_E4              0x00000010  // Fan 4 Enable
#define FAN_CTL_E3              0x00000008  // Fan 3 Enable
#define FAN_CTL_E2              0x00000004  // Fan 2 Enable
#define FAN_CTL_E1              0x00000002  // Fan 1 Enable
#define FAN_CTL_E0              0x00000001  // Fan 0 Enable

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CH0 register.
//
//*****************************************************************************
#define FAN_CH0_ASTART          0x00008000  // Auto Restart
#define FAN_CH0_ACCEL           0x00004000  // Acceleration and Deceleration
                                            // Rule
#define FAN_CH0_HYST_M          0x00003800  // Hysteresis Adjustment on PID
                                            // Adjust
#define FAN_CH0_STPER_M         0x00000700  // Start Period
#define FAN_CH0_START_M         0x000000C0  // Fast Start Rule
#define FAN_CH0_START_NOFAST    0x00000000  // No fast start
#define FAN_CH0_START_50DC      0x00000040  // 50% duty cycle
#define FAN_CH0_START_75DC      0x00000080  // 75% duty cycle
#define FAN_CH0_START_100DC     0x000000C0  // 100% duty cycle
#define FAN_CH0_AVG_M           0x00000030  // Averaging of Tachometer
#define FAN_CH0_AVG_0           0x00000000  // No averaging
#define FAN_CH0_AVG_2           0x00000010  // Average 2 edges
#define FAN_CH0_AVG_4           0x00000020  // Average 4 edges
#define FAN_CH0_AVG_8           0x00000030  // Average 8 edges
#define FAN_CH0_PPR_M           0x0000000C  // Pulse per Revolution on
                                            // Tachometer
#define FAN_CH0_PPR_1           0x00000000  // 1 pulse per revolution
#define FAN_CH0_PPR_2           0x00000004  // 2 pulses per revolution
#define FAN_CH0_PPR_4           0x00000008  // 4 pulses per revolution
#define FAN_CH0_PPR_8           0x0000000C  // 8 pulses per revolution
#define FAN_CH0_MAN             0x00000001  // Control Type
#define FAN_CH0_HYST_S          11
#define FAN_CH0_STPER_S         8

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CMD0 register.
//
//*****************************************************************************
#define FAN_CMD0_DC_M           0x01FF0000  // PWM Duty Cycle
#define FAN_CMD0_RPM_M          0x00001FFF  // Fan Speed (in RPM)
#define FAN_CMD0_DC_S           16
#define FAN_CMD0_RPM_S          0

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CST0 register.
//
//*****************************************************************************
#define FAN_CST0_COUNT_M        0x07FF0000  // Last Read Tachometer Count
#define FAN_CST0_RPM_M          0x00001FFF  // Last Read RPM Speed Computed
#define FAN_CST0_COUNT_S        16
#define FAN_CST0_RPM_S          0

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CH1 register.
//
//*****************************************************************************
#define FAN_CH1_ASTART          0x00008000  // Auto Restart
#define FAN_CH1_ACCEL           0x00004000  // Acceleration and Deceleration
                                            // Rule
#define FAN_CH1_HYST_M          0x00003800  // Hysteresis Adjustment on PID
                                            // Adjust
#define FAN_CH1_STPER_M         0x00000700  // Start Period
#define FAN_CH1_START_M         0x000000C0  // Fast Start Rule
#define FAN_CH1_START_NOFAST    0x00000000  // No fast start
#define FAN_CH1_START_50DC      0x00000040  // 50% duty cycle
#define FAN_CH1_START_75DC      0x00000080  // 75% duty cycle
#define FAN_CH1_START_100DC     0x000000C0  // 100% duty cycle
#define FAN_CH1_AVG_M           0x00000030  // Averaging of Tachometer
#define FAN_CH1_AVG_0           0x00000000  // No averaging
#define FAN_CH1_AVG_2           0x00000010  // Average 2 edges
#define FAN_CH1_AVG_4           0x00000020  // Average 4 edges
#define FAN_CH1_AVG_8           0x00000030  // Average 8 edges
#define FAN_CH1_PPR_M           0x0000000C  // Pulse per Revolution on
                                            // Tachometer
#define FAN_CH1_PPR_1           0x00000000  // 1 pulse per revolution
#define FAN_CH1_PPR_2           0x00000004  // 2 pulses per revolution
#define FAN_CH1_PPR_4           0x00000008  // 4 pulses per revolution
#define FAN_CH1_PPR_8           0x0000000C  // 8 pulses per revolution
#define FAN_CH1_MAN             0x00000001  // Control Type
#define FAN_CH1_HYST_S          11
#define FAN_CH1_STPER_S         8

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CMD1 register.
//
//*****************************************************************************
#define FAN_CMD1_DC_M           0x01FF0000  // PWM Duty Cycle
#define FAN_CMD1_RPM_M          0x00001FFF  // Fan Speed (in RPM)
#define FAN_CMD1_DC_S           16
#define FAN_CMD1_RPM_S          0

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CST1 register.
//
//*****************************************************************************
#define FAN_CST1_COUNT_M        0x07FF0000  // Last Read Tachometer Count
#define FAN_CST1_RPM_M          0x00001FFF  // Last Read RPM Speed Computed
#define FAN_CST1_COUNT_S        16
#define FAN_CST1_RPM_S          0

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CH2 register.
//
//*****************************************************************************
#define FAN_CH2_ASTART          0x00008000  // Auto Restart
#define FAN_CH2_ACCEL           0x00004000  // Acceleration and Deceleration
                                            // Rule
#define FAN_CH2_HYST_M          0x00003800  // Hysteresis Adjustment on PID
                                            // Adjust
#define FAN_CH2_STPER_M         0x00000700  // Start Period
#define FAN_CH2_START_M         0x000000C0  // Fast Start Rule
#define FAN_CH2_START_NOFAST    0x00000000  // No fast start
#define FAN_CH2_START_50DC      0x00000040  // 50% duty cycle
#define FAN_CH2_START_75DC      0x00000080  // 75% duty cycle
#define FAN_CH2_START_100DC     0x000000C0  // 100% duty cycle
#define FAN_CH2_AVG_M           0x00000030  // Averaging of Tachometer
#define FAN_CH2_AVG_0           0x00000000  // No averaging
#define FAN_CH2_AVG_2           0x00000010  // Average 2 edges
#define FAN_CH2_AVG_4           0x00000020  // Average 4 edges
#define FAN_CH2_AVG_8           0x00000030  // Average 8 edges
#define FAN_CH2_PPR_M           0x0000000C  // Pulse per Revolution on
                                            // Tachometer
#define FAN_CH2_PPR_1           0x00000000  // 1 pulse per revolution
#define FAN_CH2_PPR_2           0x00000004  // 2 pulses per revolution
#define FAN_CH2_PPR_4           0x00000008  // 4 pulses per revolution
#define FAN_CH2_PPR_8           0x0000000C  // 8 pulses per revolution
#define FAN_CH2_MAN             0x00000001  // Control Type
#define FAN_CH2_HYST_S          11
#define FAN_CH2_STPER_S         8

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CMD2 register.
//
//*****************************************************************************
#define FAN_CMD2_DC_M           0x01FF0000  // PWM Duty Cycle
#define FAN_CMD2_RPM_M          0x00001FFF  // Fan Speed (in RPM)
#define FAN_CMD2_DC_S           16
#define FAN_CMD2_RPM_S          0

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CST2 register.
//
//*****************************************************************************
#define FAN_CST2_COUNT_M        0x07FF0000  // Last Read Tachometer Count
#define FAN_CST2_RPM_M          0x00001FFF  // Last Read RPM Speed Computed
#define FAN_CST2_COUNT_S        16
#define FAN_CST2_RPM_S          0

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CH3 register.
//
//*****************************************************************************
#define FAN_CH3_ASTART          0x00008000  // Auto Restart
#define FAN_CH3_ACCEL           0x00004000  // Acceleration and Deceleration
                                            // Rule
#define FAN_CH3_HYST_M          0x00003800  // Hysteresis Adjustment on PID
                                            // Adjust
#define FAN_CH3_STPER_M         0x00000700  // Start Period
#define FAN_CH3_START_M         0x000000C0  // Fast Start Rule
#define FAN_CH3_START_NOFAST    0x00000000  // No fast start
#define FAN_CH3_START_50DC      0x00000040  // 50% duty cycle
#define FAN_CH3_START_75DC      0x00000080  // 75% duty cycle
#define FAN_CH3_START_100DC     0x000000C0  // 100% duty cycle
#define FAN_CH3_AVG_M           0x00000030  // Averaging of Tachometer
#define FAN_CH3_AVG_0           0x00000000  // No averaging
#define FAN_CH3_AVG_2           0x00000010  // Average 2 edges
#define FAN_CH3_AVG_4           0x00000020  // Average 4 edges
#define FAN_CH3_AVG_8           0x00000030  // Average 8 edges
#define FAN_CH3_PPR_M           0x0000000C  // Pulse per Revolution on
                                            // Tachometer
#define FAN_CH3_PPR_1           0x00000000  // 1 pulse per revolution
#define FAN_CH3_PPR_2           0x00000004  // 2 pulses per revolution
#define FAN_CH3_PPR_4           0x00000008  // 4 pulses per revolution
#define FAN_CH3_PPR_8           0x0000000C  // 8 pulses per revolution
#define FAN_CH3_MAN             0x00000001  // Control Type
#define FAN_CH3_HYST_S          11
#define FAN_CH3_STPER_S         8

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CMD3 register.
//
//*****************************************************************************
#define FAN_CMD3_DC_M           0x01FF0000  // PWM Duty Cycle
#define FAN_CMD3_RPM_M          0x00001FFF  // Fan Speed (in RPM)
#define FAN_CMD3_DC_S           16
#define FAN_CMD3_RPM_S          0

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CST3 register.
//
//*****************************************************************************
#define FAN_CST3_COUNT_M        0x07FF0000  // Last Read Tachometer Count
#define FAN_CST3_RPM_M          0x00001FFF  // Last Read RPM Speed Computed
#define FAN_CST3_COUNT_S        16
#define FAN_CST3_RPM_S          0

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CH4 register.
//
//*****************************************************************************
#define FAN_CH4_ASTART          0x00008000  // Auto Restart
#define FAN_CH4_ACCEL           0x00004000  // Acceleration and Deceleration
                                            // Rule
#define FAN_CH4_HYST_M          0x00003800  // Hysteresis Adjustment on PID
                                            // Adjust
#define FAN_CH4_STPER_M         0x00000700  // Start Period
#define FAN_CH4_START_M         0x000000C0  // Fast Start Rule
#define FAN_CH4_START_NOFAST    0x00000000  // No fast start
#define FAN_CH4_START_50DC      0x00000040  // 50% duty cycle
#define FAN_CH4_START_75DC      0x00000080  // 75% duty cycle
#define FAN_CH4_START_100DC     0x000000C0  // 100% duty cycle
#define FAN_CH4_AVG_M           0x00000030  // Averaging of Tachometer
#define FAN_CH4_AVG_0           0x00000000  // No averaging
#define FAN_CH4_AVG_2           0x00000010  // Average 2 edges
#define FAN_CH4_AVG_4           0x00000020  // Average 4 edges
#define FAN_CH4_AVG_8           0x00000030  // Average 8 edges
#define FAN_CH4_PPR_M           0x0000000C  // Pulse per Revolution on
                                            // Tachometer
#define FAN_CH4_PPR_1           0x00000000  // 1 pulse per revolution
#define FAN_CH4_PPR_2           0x00000004  // 2 pulses per revolution
#define FAN_CH4_PPR_4           0x00000008  // 4 pulses per revolution
#define FAN_CH4_PPR_8           0x0000000C  // 8 pulses per revolution
#define FAN_CH4_MAN             0x00000001  // Control Type
#define FAN_CH4_HYST_S          11
#define FAN_CH4_STPER_S         8

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CMD4 register.
//
//*****************************************************************************
#define FAN_CMD4_DC_M           0x01FF0000  // PWM Duty Cycle
#define FAN_CMD4_RPM_M          0x00001FFF  // Fan Speed (in RPM)
#define FAN_CMD4_DC_S           16
#define FAN_CMD4_RPM_S          0

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CST4 register.
//
//*****************************************************************************
#define FAN_CST4_COUNT_M        0x07FF0000  // Last Read Tachometer Count
#define FAN_CST4_RPM_M          0x00001FFF  // Last Read RPM Speed Computed
#define FAN_CST4_COUNT_S        16
#define FAN_CST4_RPM_S          0

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CH5 register.
//
//*****************************************************************************
#define FAN_CH5_ASTART          0x00008000  // Auto Restart
#define FAN_CH5_ACCEL           0x00004000  // Acceleration and Deceleration
                                            // Rule
#define FAN_CH5_HYST_M          0x00003800  // Hysteresis Adjustment on PID
                                            // Adjust
#define FAN_CH5_STPER_M         0x00000700  // Start Period
#define FAN_CH5_START_M         0x000000C0  // Fast Start Rule
#define FAN_CH5_START_NOFAST    0x00000000  // No fast start
#define FAN_CH5_START_50DC      0x00000040  // 50% duty cycle
#define FAN_CH5_START_75DC      0x00000080  // 75% duty cycle
#define FAN_CH5_START_100DC     0x000000C0  // 100% duty cycle
#define FAN_CH5_AVG_M           0x00000030  // Averaging of Tachometer
#define FAN_CH5_AVG_0           0x00000000  // No averaging
#define FAN_CH5_AVG_2           0x00000010  // Average 2 edges
#define FAN_CH5_AVG_4           0x00000020  // Average 4 edges
#define FAN_CH5_AVG_8           0x00000030  // Average 8 edges
#define FAN_CH5_PPR_M           0x0000000C  // Pulse per Revolution on
                                            // Tachometer
#define FAN_CH5_PPR_1           0x00000000  // 1 pulse per revolution
#define FAN_CH5_PPR_2           0x00000004  // 2 pulses per revolution
#define FAN_CH5_PPR_4           0x00000008  // 4 pulses per revolution
#define FAN_CH5_PPR_8           0x0000000C  // 8 pulses per revolution
#define FAN_CH5_MAN             0x00000001  // Control Type
#define FAN_CH5_HYST_S          11
#define FAN_CH5_STPER_S         8

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CMD5 register.
//
//*****************************************************************************
#define FAN_CMD5_DC_M           0x01FF0000  // PWM Duty Cycle
#define FAN_CMD5_RPM_M          0x00001FFF  // Fan Speed (in RPM)
#define FAN_CMD5_DC_S           16
#define FAN_CMD5_RPM_S          0

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CST5 register.
//
//*****************************************************************************
#define FAN_CST5_COUNT_M        0x07FF0000  // Last Read Tachometer Count
#define FAN_CST5_RPM_M          0x00001FFF  // Last Read RPM Speed Computed
#define FAN_CST5_COUNT_S        16
#define FAN_CST5_RPM_S          0

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CH6 register.
//
//*****************************************************************************
#define FAN_CH6_MAN             0x00000001  // Control Type
#define FAN_CH6_PPR_M           0x0000000C  // Pulse per Revolution on
                                            // Tachometer
#define FAN_CH6_PPR_1           0x00000000  // 1 pulse per revolution
#define FAN_CH6_PPR_2           0x00000004  // 2 pulses per revolution
#define FAN_CH6_PPR_4           0x00000008  // 4 pulses per revolution
#define FAN_CH6_PPR_8           0x0000000C  // 8 pulses per revolution
#define FAN_CH6_AVG_M           0x00000030  // Averaging of Tachometer
#define FAN_CH6_AVG_0           0x00000000  // No averaging
#define FAN_CH6_AVG_2           0x00000010  // Average 2 edges
#define FAN_CH6_AVG_4           0x00000020  // Average 4 edges
#define FAN_CH6_AVG_8           0x00000030  // Average 8 edges
#define FAN_CH6_START_M         0x000000C0  // Fast Start Rule
#define FAN_CH6_START_NOFAST    0x00000000  // No fast start
#define FAN_CH6_START_50DC      0x00000040  // 50% duty cycle
#define FAN_CH6_START_75DC      0x00000080  // 75% duty cycle
#define FAN_CH6_START_100DC     0x000000C0  // 100% duty cycle
#define FAN_CH6_STPER_M         0x00000700  // Start Period
#define FAN_CH6_HYST_M          0x00003800  // Hysteresis Adjustment on PID
                                            // Adjust
#define FAN_CH6_ACCEL           0x00004000  // Acceleration and Deceleration
                                            // Rule
#define FAN_CH6_ASTART          0x00008000  // Auto Restart
#define FAN_CH6_STPER_S         8
#define FAN_CH6_HYST_S          11

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CMD6 register.
//
//*****************************************************************************
#define FAN_CMD6_RPM_M          0x00001FFF  // Fan Speed (in RPM)
#define FAN_CMD6_DC_M           0x01FF0000  // PWM Duty Cycle
#define FAN_CMD6_RPM_S          0
#define FAN_CMD6_DC_S           16

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CST6 register.
//
//*****************************************************************************
#define FAN_CST6_RPM_M          0x00001FFF  // Last Read RPM Speed Computed
#define FAN_CST6_COUNT_M        0x07FF0000  // Last Read Tachometer Count
#define FAN_CST6_RPM_S          0
#define FAN_CST6_COUNT_S        16

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CH7 register.
//
//*****************************************************************************
#define FAN_CH7_MAN             0x00000001  // Control Type
#define FAN_CH7_PPR_M           0x0000000C  // Pulse per Revolution on
                                            // Tachometer
#define FAN_CH7_PPR_1           0x00000000  // 1 pulse per revolution
#define FAN_CH7_PPR_2           0x00000004  // 2 pulses per revolution
#define FAN_CH7_PPR_4           0x00000008  // 4 pulses per revolution
#define FAN_CH7_PPR_8           0x0000000C  // 8 pulses per revolution
#define FAN_CH7_AVG_M           0x00000030  // Averaging of Tachometer
#define FAN_CH7_AVG_0           0x00000000  // No averaging
#define FAN_CH7_AVG_2           0x00000010  // Average 2 edges
#define FAN_CH7_AVG_4           0x00000020  // Average 4 edges
#define FAN_CH7_AVG_8           0x00000030  // Average 8 edges
#define FAN_CH7_START_M         0x000000C0  // Fast Start Rule
#define FAN_CH7_START_NOFAST    0x00000000  // No fast start
#define FAN_CH7_START_50DC      0x00000040  // 50% duty cycle
#define FAN_CH7_START_75DC      0x00000080  // 75% duty cycle
#define FAN_CH7_START_100DC     0x000000C0  // 100% duty cycle
#define FAN_CH7_STPER_M         0x00000700  // Start Period
#define FAN_CH7_HYST_M          0x00003800  // Hysteresis Adjustment on PID
                                            // Adjust
#define FAN_CH7_ACCEL           0x00004000  // Acceleration and Deceleration
                                            // Rule
#define FAN_CH7_ASTART          0x00008000  // Auto Restart
#define FAN_CH7_STPER_S         8
#define FAN_CH7_HYST_S          11

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CMD7 register.
//
//*****************************************************************************
#define FAN_CMD7_RPM_M          0x00001FFF  // Fan Speed (in RPM)
#define FAN_CMD7_DC_M           0x01FF0000  // PWM Duty Cycle
#define FAN_CMD7_RPM_S          0
#define FAN_CMD7_DC_S           16

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_CST7 register.
//
//*****************************************************************************
#define FAN_CST7_RPM_M          0x00001FFF  // Last Read RPM Speed Computed
#define FAN_CST7_COUNT_M        0x07FF0000  // Last Read Tachometer Count
#define FAN_CST7_RPM_S          0
#define FAN_CST7_COUNT_S        16

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_IM register.
//
//*****************************************************************************
#define FAN_IM_C5INT1IM         0x00400000  // Channel 5 Interrupt 1 Mask
#define FAN_IM_C5INT0IM         0x00200000  // Channel 5 Interrupt 0 Mask
#define FAN_IM_C5STALLIM        0x00100000  // Channel 5 Stall Interrupt Mask
#define FAN_IM_C4INT1IM         0x00040000  // Channel 4 Interrupt 1 Mask
#define FAN_IM_C4INT0IM         0x00020000  // Channel 4 Interrupt 0 Mask
#define FAN_IM_C4STALLIM        0x00010000  // Channel 4 Stall Interrupt Mask
#define FAN_IM_C3INT1IM         0x00004000  // Channel 3 Interrupt 1 Mask
#define FAN_IM_C3INT0IM         0x00002000  // Channel 3 Interrupt 0 Mask
#define FAN_IM_C3STALLIM        0x00001000  // Channel 3 Stall Interrupt Mask
#define FAN_IM_C2INT1IM         0x00000400  // Channel 2 Interrupt 1 Mask
#define FAN_IM_C2INT0IM         0x00000200  // Channel 2 Interrupt 0 Mask
#define FAN_IM_C2STALLIM        0x00000100  // Channel 2 Stall Interrupt Mask
#define FAN_IM_C1INT1IM         0x00000040  // Channel 1 Interrupt 1 Mask
#define FAN_IM_C1INT0IM         0x00000020  // Channel 1 Interrupt 0 Mask
#define FAN_IM_C1STALLIM        0x00000010  // Channel 1 Stall Interrupt Mask
#define FAN_IM_C0INT1IM         0x00000004  // Channel 0 Interrupt 1 Mask
#define FAN_IM_C0INT0IM         0x00000002  // Channel 0 Interrupt 0 Mask
#define FAN_IM_C0STALLIM        0x00000001  // Channel 0 Stall Interrupt Mask

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_RIS register.
//
//*****************************************************************************
#define FAN_RIS_C5INT1RIS       0x00400000  // Channel 5 Raw Interrupt 1 Status
#define FAN_RIS_C5INT0RIS       0x00200000  // Channel 5 Raw Interrupt 0 Status
#define FAN_RIS_C5STALLRIS      0x00100000  // Channel 5 Raw Stall Interrupt
                                            // Status
#define FAN_RIS_C4INT1RIS       0x00040000  // Channel 4 Raw Interrupt 1 Status
#define FAN_RIS_C4INT0RIS       0x00020000  // Channel 4 Raw Interrupt 0 Status
#define FAN_RIS_C4STALLRIS      0x00010000  // Channel 4 Raw Stall Interrupt
                                            // Status
#define FAN_RIS_C3INT1RIS       0x00004000  // Channel 3 Raw Interrupt 1 Status
#define FAN_RIS_C3INT0RIS       0x00002000  // Channel 3 Raw Interrupt 0 Status
#define FAN_RIS_C3STALLRIS      0x00001000  // Channel 3 Raw Stall Interrupt
                                            // Status
#define FAN_RIS_C2INT1RIS       0x00000400  // Channel 2 Raw Interrupt 1 Status
#define FAN_RIS_C2INT0RIS       0x00000200  // Channel 2 Raw Interrupt 0 Status
#define FAN_RIS_C2STALLRIS      0x00000100  // Channel 2 Raw Stall Interrupt
                                            // Status
#define FAN_RIS_C1INT1RIS       0x00000040  // Channel 1 Raw Interrupt 1 Status
#define FAN_RIS_C1INT0RIS       0x00000020  // Channel 1 Raw Interrupt 0 Status
#define FAN_RIS_C1STALLRIS      0x00000010  // Channel 1 Raw Stall Interrupt
                                            // Status
#define FAN_RIS_C0INT1RIS       0x00000004  // Channel 0 Raw Interrupt 1 Status
#define FAN_RIS_C0INT0RIS       0x00000002  // Channel 0 Raw Interrupt 0 Status
#define FAN_RIS_C0STALLRIS      0x00000001  // Channel 0 Raw Stall Interrupt
                                            // Status

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_MIS register.
//
//*****************************************************************************
#define FAN_MIS_C5INT1MIS       0x00400000  // Channel 5 Masked Interrupt 1
                                            // Status
#define FAN_MIS_C5INT0MIS       0x00200000  // Channel 5 Masked Interrupt 0
                                            // Status
#define FAN_MIS_C5STALLMIS      0x00100000  // Channel 5 Masked Stall Interrupt
                                            // Status
#define FAN_MIS_C54NT1MIS       0x00040000  // Channel 4 Masked Interrupt 1
                                            // Status
#define FAN_MIS_C4INT0MIS       0x00020000  // Channel 4 Masked Interrupt 0
                                            // Status
#define FAN_MIS_C4STALLMIS      0x00010000  // Channel 4 Masked Stall Interrupt
                                            // Status
#define FAN_MIS_C3INT1MIS       0x00004000  // Channel 3 Masked Interrupt 1
                                            // Status
#define FAN_MIS_C3INT0MIS       0x00002000  // Channel 3 Masked Interrupt 0
                                            // Status
#define FAN_MIS_C3STALLMIS      0x00001000  // Channel 3 Masked Stall Interrupt
                                            // Status
#define FAN_MIS_C2INT1MIS       0x00000400  // Channel 2 Masked Interrupt 1
                                            // Status
#define FAN_MIS_C2INT0MIS       0x00000200  // Channel 2 Masked Interrupt 0
                                            // Status
#define FAN_MIS_C2STALLMIS      0x00000100  // Channel 2 Masked Stall Interrupt
                                            // Status
#define FAN_MIS_C1INT1MIS       0x00000040  // Channel 1 Masked Interrupt 1
                                            // Status
#define FAN_MIS_C1INT0MIS       0x00000020  // Channel 1 Masked Interrupt 0
                                            // Status
#define FAN_MIS_C1STALLMIS      0x00000010  // Channel 1 Masked Stall Interrupt
                                            // Status
#define FAN_MIS_C0INT1MIS       0x00000004  // Channel 0 Masked Interrupt 1
                                            // Status
#define FAN_MIS_C0INT0MIS       0x00000002  // Channel 0 Masked Interrupt 0
                                            // Status
#define FAN_MIS_C0STALLMIS      0x00000001  // Channel 0 Masked Stall Interrupt
                                            // Status

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_IC register.
//
//*****************************************************************************
#define FAN_IC_C5INT1IC         0x00400000  // Channel 5 Interrupt 1 Clear
#define FAN_IC_C5INT0IC         0x00200000  // Channel 5 Interrupt 0 Clear
#define FAN_IC_C5STALLIC        0x00100000  // Channel 5 Stall Interrupt Clear
#define FAN_IC_C4INT1IC         0x00040000  // Channel 4 Interrupt 1 Clear
#define FAN_IC_C4INT0IC         0x00020000  // Channel 4 Interrupt 0 Clear
#define FAN_IC_C4STALLIC        0x00010000  // Channel 4 Stall Interrupt Clear
#define FAN_IC_C3INT1IC         0x00004000  // Channel 3 Interrupt 1 Clear
#define FAN_IC_C53INT0IC        0x00002000  // Channel 3 Interrupt 0 Clear
#define FAN_IC_C3STALLIC        0x00001000  // Channel 3 Stall Interrupt Clear
#define FAN_IC_C2INT1IC         0x00000400  // Channel 2 Interrupt 1 Clear
#define FAN_IC_C2INT0IC         0x00000200  // Channel 2 Interrupt 0 Clear
#define FAN_IC_C2STALLIC        0x00000100  // Channel 2 Stall Interrupt Clear
#define FAN_IC_C1INT1IC         0x00000040  // Channel 1 Interrupt 1 Clear
#define FAN_IC_C1INT0IC         0x00000020  // Channel 1 Interrupt 0 Clear
#define FAN_IC_C1STALLIC        0x00000010  // Channel 1 Stall Interrupt Clear
#define FAN_IC_C0INT1IC         0x00000004  // Channel 0 Interrupt 1 Clear
#define FAN_IC_C0INT0IC         0x00000002  // Channel 0 Interrupt 0 Clear
#define FAN_IC_C0STALLIC        0x00000001  // Channel 0 Stall Interrupt Clear

//*****************************************************************************
//
// The following are defines for the bit fields in the FAN_O_PP register.
//
//*****************************************************************************
#define FAN_PP_CHAN_M           0x0000000F  // Channel Count
#define FAN_PP_CHAN_S           0

#endif // __HW_FAN_H__