Jakub Tomanek / Mbed 2 deprecated TPS92520_TEST_v2

Dependencies:   mbed

Committer:
pinnarelo
Date:
Mon Dec 10 09:19:37 2018 +0000
Revision:
7:a52c300451ed
TPS92520

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pinnarelo 7:a52c300451ed 1 /***************************************************************************//**
pinnarelo 7:a52c300451ed 2 * @file TPS92520.h
pinnarelo 7:a52c300451ed 3 * @brief TPS92520 header file.
pinnarelo 7:a52c300451ed 4 * @devices TPS92520-Q1
pinnarelo 7:a52c300451ed 5 *
pinnarelo 7:a52c300451ed 6 ********************************************************************************
pinnarelo 7:a52c300451ed 7 * Copyright 2018(c) Automotive Lighting
pinnarelo 7:a52c300451ed 8 *
pinnarelo 7:a52c300451ed 9 * All rights reserved.
pinnarelo 7:a52c300451ed 10 *
pinnarelo 7:a52c300451ed 11 * Redistribution and use in source and binary forms, with or without modification,
pinnarelo 7:a52c300451ed 12 * are permitted provided that the following conditions are met:
pinnarelo 7:a52c300451ed 13 * - Redistributions of source code must retain the above copyright
pinnarelo 7:a52c300451ed 14 * notice, this list of conditions and the following disclaimer.
pinnarelo 7:a52c300451ed 15 * - Redistributions in binary form must reproduce the above copyright
pinnarelo 7:a52c300451ed 16 * notice, this list of conditions and the following disclaimer in
pinnarelo 7:a52c300451ed 17 * the documentation and/or other materials provided with the
pinnarelo 7:a52c300451ed 18 * distribution.
pinnarelo 7:a52c300451ed 19 * - Neither the name of Automotive Lighting nor the names of its
pinnarelo 7:a52c300451ed 20 * contributors may be used to endorse or promote products derived
pinnarelo 7:a52c300451ed 21 * from this software without specific prior written permission.
pinnarelo 7:a52c300451ed 22 * - The use of this software may or may not infringe the patent rights
pinnarelo 7:a52c300451ed 23 * of one or more patent holders. This license does not release you
pinnarelo 7:a52c300451ed 24 * from the requirement that you obtain separate licenses from these
pinnarelo 7:a52c300451ed 25 * patent holders to use this software.
pinnarelo 7:a52c300451ed 26 * - Use of the software either in source or binary form, must be run
pinnarelo 7:a52c300451ed 27 * on or directly connected to an Automotive Lighting component.
pinnarelo 7:a52c300451ed 28 *
pinnarelo 7:a52c300451ed 29 * THIS SOFTWARE IS PROVIDED BY AUTOMOTIVE LIGHTING "AS IS" AND ANY EXPRESS OR
pinnarelo 7:a52c300451ed 30 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT,
pinnarelo 7:a52c300451ed 31 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
pinnarelo 7:a52c300451ed 32 * IN NO EVENT SHALL AUTOMOTIVE LIGHTING BE LIABLE FOR ANY DIRECT, INDIRECT,
pinnarelo 7:a52c300451ed 33 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
pinnarelo 7:a52c300451ed 34 * INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
pinnarelo 7:a52c300451ed 35 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
pinnarelo 7:a52c300451ed 36 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
pinnarelo 7:a52c300451ed 37 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
pinnarelo 7:a52c300451ed 38 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
pinnarelo 7:a52c300451ed 39 *******************************************************************************/
pinnarelo 7:a52c300451ed 40
pinnarelo 7:a52c300451ed 41 #ifndef __TPS92520_H__
pinnarelo 7:a52c300451ed 42 #define __TPS92520_H__
pinnarelo 7:a52c300451ed 43
pinnarelo 7:a52c300451ed 44 /******************************************************************************/
pinnarelo 7:a52c300451ed 45 /***************************** Include Files **********************************/
pinnarelo 7:a52c300451ed 46 /******************************************************************************/
pinnarelo 7:a52c300451ed 47 #include "mbed.h"
pinnarelo 7:a52c300451ed 48 #include <stdint.h>
pinnarelo 7:a52c300451ed 49
pinnarelo 7:a52c300451ed 50
pinnarelo 7:a52c300451ed 51 /** TPS92520 class
pinnarelo 7:a52c300451ed 52 *
pinnarelo 7:a52c300451ed 53 * TPS92520: A library
pinnarelo 7:a52c300451ed 54 *
pinnarelo 7:a52c300451ed 55 * TPS92520 is an LED Driver
pinnarelo 7:a52c300451ed 56 * @endcode
pinnarelo 7:a52c300451ed 57 */
pinnarelo 7:a52c300451ed 58
pinnarelo 7:a52c300451ed 59 class TPS92520
pinnarelo 7:a52c300451ed 60 {
pinnarelo 7:a52c300451ed 61 public:
pinnarelo 7:a52c300451ed 62
pinnarelo 7:a52c300451ed 63 /** Create a TPS92520 instance
pinnarelo 7:a52c300451ed 64 * which is connected to specified SPI pins
pinnarelo 7:a52c300451ed 65 *
pinnarelo 7:a52c300451ed 66 * @param mosi SPI MOSI pin
pinnarelo 7:a52c300451ed 67 * @param miso SPI MISO pin
pinnarelo 7:a52c300451ed 68 * @param sclk SPI SCLK pin
pinnarelo 7:a52c300451ed 69 */
pinnarelo 7:a52c300451ed 70 TPS92520(PinName mosi, PinName miso, PinName sclk, PinName cs, PinName pwr_en);
pinnarelo 7:a52c300451ed 71
pinnarelo 7:a52c300451ed 72 /** Destructor of BME280
pinnarelo 7:a52c300451ed 73 */
pinnarelo 7:a52c300451ed 74 virtual ~TPS92520();
pinnarelo 7:a52c300451ed 75
pinnarelo 7:a52c300451ed 76 void init(void);
pinnarelo 7:a52c300451ed 77
pinnarelo 7:a52c300451ed 78 int readRegs(int addr, int *pData);
pinnarelo 7:a52c300451ed 79
pinnarelo 7:a52c300451ed 80 int writeRegs(int addr, int data, int *response);
pinnarelo 7:a52c300451ed 81
pinnarelo 7:a52c300451ed 82 int reset(void);
pinnarelo 7:a52c300451ed 83
pinnarelo 7:a52c300451ed 84 int setPWMduty(uint8_t channel,uint16_t duty);
pinnarelo 7:a52c300451ed 85
pinnarelo 7:a52c300451ed 86 char* status(void);
pinnarelo 7:a52c300451ed 87
pinnarelo 7:a52c300451ed 88 char* temp(void);
pinnarelo 7:a52c300451ed 89
pinnarelo 7:a52c300451ed 90 private:
pinnarelo 7:a52c300451ed 91
pinnarelo 7:a52c300451ed 92 SPI my_spi;
pinnarelo 7:a52c300451ed 93 DigitalOut my_pin;
pinnarelo 7:a52c300451ed 94 DigitalOut pwr_en_pin;
pinnarelo 7:a52c300451ed 95
pinnarelo 7:a52c300451ed 96 int TPS92520::parity(uint16_t frame);
pinnarelo 7:a52c300451ed 97 };
pinnarelo 7:a52c300451ed 98
pinnarelo 7:a52c300451ed 99 /* TPS92520-Q1 Register Map */
pinnarelo 7:a52c300451ed 100 #define SYSCFG1 0x00
pinnarelo 7:a52c300451ed 101 #define SYSCFG2 0x01
pinnarelo 7:a52c300451ed 102 #define CMWTAP 0x02
pinnarelo 7:a52c300451ed 103 #define STATUS1 0x03
pinnarelo 7:a52c300451ed 104 #define STATUS2 0x04
pinnarelo 7:a52c300451ed 105 #define STATUS3 0x05
pinnarelo 7:a52c300451ed 106 #define TWLMT 0x06
pinnarelo 7:a52c300451ed 107 #define SLEEP 0x07
pinnarelo 7:a52c300451ed 108 #define CH1IADJL 0x08
pinnarelo 7:a52c300451ed 109 #define CH1IADJH 0x09
pinnarelo 7:a52c300451ed 110 #define CH2IADJL 0x0A
pinnarelo 7:a52c300451ed 111 #define CH2IADJH 0x0B
pinnarelo 7:a52c300451ed 112 #define PWMDIV 0x0C
pinnarelo 7:a52c300451ed 113 #define CH1PWML 0x0D
pinnarelo 7:a52c300451ed 114 #define CH1PWMH 0x0E
pinnarelo 7:a52c300451ed 115 #define CH2PWML 0x0F
pinnarelo 7:a52c300451ed 116 #define CH2PWMH 0x10
pinnarelo 7:a52c300451ed 117 #define CH1TON 0x11
pinnarelo 7:a52c300451ed 118 #define CH2TON 0x12
pinnarelo 7:a52c300451ed 119 #define CH1VIN 0x13
pinnarelo 7:a52c300451ed 120 #define CH1VLED 0x14
pinnarelo 7:a52c300451ed 121 #define CH1VLEDON 0x15
pinnarelo 7:a52c300451ed 122 #define CH1VLEDOFF 0x16
pinnarelo 7:a52c300451ed 123 #define CH2VIN 0x17
pinnarelo 7:a52c300451ed 124 #define CH2VLED 0x18
pinnarelo 7:a52c300451ed 125 #define CH2VLEDON 0x19
pinnarelo 7:a52c300451ed 126 #define CH2VLEDOFF 0x1A
pinnarelo 7:a52c300451ed 127 #define TEMPL 0x1B
pinnarelo 7:a52c300451ed 128 #define TEMPH 0x1C
pinnarelo 7:a52c300451ed 129 #define V5D 0x1D
pinnarelo 7:a52c300451ed 130 #define LHCFG1 0x1E
pinnarelo 7:a52c300451ed 131 #define LHCFG2 0x1F
pinnarelo 7:a52c300451ed 132 #define LHIL 0x20
pinnarelo 7:a52c300451ed 133 #define LHIH 0x21
pinnarelo 7:a52c300451ed 134 #define LH1IADJL 0x22
pinnarelo 7:a52c300451ed 135 #define LH1IADJH 0x23
pinnarelo 7:a52c300451ed 136 #define LH2IADJL 0x24
pinnarelo 7:a52c300451ed 137 #define LH2IADJH 0x25
pinnarelo 7:a52c300451ed 138 #define LHCH1PWML 0x26
pinnarelo 7:a52c300451ed 139 #define LHCH1PWMH 0x27
pinnarelo 7:a52c300451ed 140 #define LHCH2PWML 0x28
pinnarelo 7:a52c300451ed 141 #define LHCH2PWMH 0x29
pinnarelo 7:a52c300451ed 142 #define LH1TON 0x2A
pinnarelo 7:a52c300451ed 143 #define LH2TON 0x2B
pinnarelo 7:a52c300451ed 144 #define RESET 0x2C
pinnarelo 7:a52c300451ed 145
pinnarelo 7:a52c300451ed 146 /* System Config Register bits */
pinnarelo 7:a52c300451ed 147 #define FPINSRT (0 << 7)
pinnarelo 7:a52c300451ed 148
pinnarelo 7:a52c300451ed 149 /* Status Register bits */
pinnarelo 7:a52c300451ed 150
pinnarelo 7:a52c300451ed 151
pinnarelo 7:a52c300451ed 152 #define SPI_ERROR (1 << 15)
pinnarelo 7:a52c300451ed 153
pinnarelo 7:a52c300451ed 154 #define TRUE 1
pinnarelo 7:a52c300451ed 155 #define FALSE 0
pinnarelo 7:a52c300451ed 156
pinnarelo 7:a52c300451ed 157
pinnarelo 7:a52c300451ed 158 #endif /* __TPS92520_H__ */