Mini board PCU9669 evaluation kit library

PCx9955_reg.h

Committer:
nxp_ip
Date:
2012-03-28
Revision:
2:9a1d020f6233
Parent:
1:dd16429c98bb
Child:
3:61ba368b0de4

File content as of revision 2:9a1d020f6233:

/** A sample code for "mini board PCU9669/PCA9665"
 *
 *  @author  Akifumi (Tedd) OKANO, NXP Semiconductors
 *  @version 1.01
 *  @date    26-Mar-2012
 *
 *  Released under the MIT License: http://mbed.org/license/mit
 *
 *  An operation sample of PCU9669/PCA9665 I2C bus controller.
 *  The mbed accesses the bus controller's parallel port (8/2 bit address and 8 bit data) by bit-banging.
 *  The bit-banging is poerformed by PortInOut function of mbed library.
 *
 *    To make the code porting easier, all codes are partitioned into layers to abstract other parts.
 *    The mbed specific parts are concentrated in lowest layer: "hardware_abs.*".
 *    This module may need to be modified for the porting.
 *
 *    All other upper layers are writen in standard-C.
 *
 *    base code is written from 05-Sep-2011 to 09-Sep-2011.
 *    And demo code has been build on 11-Sep-2011.
 *    Debug and code adjustment has been done on 08-Sep-2011.
 *    Small sanitization for main.cpp. All mbed related codes are moved in to "hardware_abs.*". 13-Oct-2011
 *    hardware_abs are moved into parallel_bus library folder, 3 LED driver operation sample 13-Feb.-2012
 *    PCU9669 and PCA9665 codes are packed in a project 14-Feb-2012. 
 *    
 *    Before builidng the code, please edit the file mini_board_PCU9669/config.h
 *    Un-comment the target name what you want to target. 
 */


/** PCx9955 (PCU9955 and PCA9955) related definitions
 *  
 *  PCx9955's internal register name and address definitions, I2C address difinitions
 */

#ifndef MINIBOARD_PCx9955_REG__
#define MINIBOARD_PCx9955_REG__

/** @var Register names
 *
 *  PCx9955 internal register name and addesses
 */
typedef enum {
    MODE1   = 0x00,
    MODE2,
    LEDOUT0,
    LEDOUT1,
    LEDOUT2,
    LEDOUT3,
    GRPPWM  = 0x08,
    GRPFREQ,
    PWM0    = 0x0A,
    PWM1,
    PWM2,
    PWM3,
    PWM4,
    PWM5,
    PWM6,
    PWM7,
    PWM8,
    PWM9,
    PWM10,
    PWM11,
    PWM12,
    PWM13,
    PWM14,
    PWM15,
    IREF0   = 0x22,
    IREF1,
    IREF2,
    IREF3,
    IREF4,
    IREF5,
    IREF6,
    IREF7,
    IREF8,
    IREF9,
    IREF10,
    IREF11,
    IREF12,
    IREF13,
    IREF14,
    IREF15,
    OFFSET  = 0x3A,
    SUBADR1,
    SUBADR2,
    SUBADR3,
    ALLCALLADR,
    RESERVED1,
    RESERVED2,
    RESERVED3,
    PWMALL,
    IREFALL,
    EFLAG0,
    EFLAG1,

    REGISTER_START          = MODE1,
    LEDOUT_REGISTER_START   = LEDOUT0,
    PWM_REGISTER_START      = PWM0,
    IREF_REGISTER_START     = IREF0,
}
PCx9955_reg;

/** @var PCx9955 I2C bus addresses
 */
typedef enum {
    PCx9955_ADDR0   = 0xC0,
    PCx9955_ADDR1   = 0xC2,
    PCx9955_ADDR2   = 0xC4,
    PCx9955_ADDR3   = 0xC6,
    PCx9955_ADDR4   = 0xC8,
    PCx9955_ADDR5   = 0xCA,
    PCx9955_ADDR6   = 0xCC,
    PCx9955_ADDR7   = 0xCE,
    PCx9955_ADDR8   = 0xD0,
    PCx9955_ADDR9   = 0xD2,
    PCx9955_ADDRA   = 0xD4,
    PCx9955_ADDRB   = 0xD6,
    PCx9955_ADDRC   = 0xD8,
    PCx9955_ADDRD   = 0xDA,
    PCx9955_ADDRE   = 0xDC,
    PCx9955_ADDRF   = 0xDE
}
pcx9955_addr;


/** @def PWM_INIT / IREF_INIT
 *
 *  Initial value for the PWMn and IREFn registers
 */
#define     PWM_INIT        0x00
#define     IREF_INIT       0xFF

#endif  //  MINIBOARD_PCx9955_REG__