Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
TPS92520/TPS92520.h@7:a52c300451ed, 2018-12-10 (annotated)
- Committer:
- pinnarelo
- Date:
- Mon Dec 10 09:19:37 2018 +0000
- Revision:
- 7:a52c300451ed
TPS92520
Who changed what in which revision?
| User | Revision | Line number | New 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__ */ |