12-Channel LED Driver With Gray scale Adaptive Pulse Density Modulation Control IC Library. maker MY-Semi

Dependents:   Library_MY9221

Committer:
suupen
Date:
Sun Oct 22 00:22:18 2017 +0000
Revision:
1:60440eb16f81
Parent:
0:3a18655ada14
Child:
2:4d9aee0bd724
?????????;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
suupen 0:3a18655ada14 1 #ifndef MBED_MY9221_H
suupen 0:3a18655ada14 2 #define MBED_MY9221_H
suupen 0:3a18655ada14 3
suupen 0:3a18655ada14 4 #include "mbed.h"
suupen 0:3a18655ada14 5 #include "MY9221.h"
suupen 0:3a18655ada14 6
suupen 0:3a18655ada14 7
suupen 0:3a18655ada14 8 /**
suupen 0:3a18655ada14 9 * LED driver MY9221
suupen 0:3a18655ada14 10 */
suupen 0:3a18655ada14 11
suupen 0:3a18655ada14 12
suupen 0:3a18655ada14 13 /**
suupen 0:3a18655ada14 14 * @class MY9221
suupen 0:3a18655ada14 15 * @brief nothine
suupen 0:3a18655ada14 16 */
suupen 0:3a18655ada14 17 class MY9221
suupen 0:3a18655ada14 18 {
suupen 0:3a18655ada14 19
suupen 0:3a18655ada14 20 public:
suupen 0:3a18655ada14 21
suupen 0:3a18655ada14 22 /** Create a MY9221 port, connected to the specified IC pins
suupen 0:3a18655ada14 23 * @param DI pin
suupen 0:3a18655ada14 24 * @param DCKI pin
suupen 0:3a18655ada14 25 * @param IC serial connection number :min = 1(default)
suupen 0:3a18655ada14 26 * @note nothing
suupen 0:3a18655ada14 27 */
suupen 1:60440eb16f81 28 MY9221(PinName di, PinName dcki, uint8_t number);
suupen 0:3a18655ada14 29
suupen 0:3a18655ada14 30
suupen 0:3a18655ada14 31 //=========================
suupen 0:3a18655ada14 32 // command data description
suupen 0:3a18655ada14 33 //=========================
suupen 0:3a18655ada14 34 // 0x0000にクリアした上で、下記の定義をorしていく
suupen 0:3a18655ada14 35
suupen 0:3a18655ada14 36 // CMD[10] 0000 0x00 0000 0000 lout Tr/Tf select
suupen 0:3a18655ada14 37 #define LOUT_SLOW_MODE (0x0000)
suupen 0:3a18655ada14 38 #define LOUT_FAST_MODE (0x0400)
suupen 0:3a18655ada14 39
suupen 0:3a18655ada14 40 // CMD[9:8] 0000 00xx 0000 0000 Gryascale resolution select
suupen 0:3a18655ada14 41 #define GRAYSCALE_8BIT (0x0000)
suupen 0:3a18655ada14 42 #define GRAYSCALE_12BIT (0x0100)
suupen 0:3a18655ada14 43 #define GRAYSCALE_14BIT (0x0200)
suupen 0:3a18655ada14 44 #define GRAYSCALE_16BIT (0x0300)
suupen 0:3a18655ada14 45
suupen 0:3a18655ada14 46 // CMD[7:5] 0000 0000 xxx0 0000 Internal oscillator freq select
suupen 0:3a18655ada14 47 #define ORIGINAL_FREQ1 (0x0000)
suupen 0:3a18655ada14 48 #define ORIGINAL_FREQ2 (0x0020)
suupen 0:3a18655ada14 49 #define ORIGINAL_FREQ4 (0x0040)
suupen 0:3a18655ada14 50 #define ORIGINAL_FREQ8 (0x0060)
suupen 0:3a18655ada14 51 #define ORIGINAL_FREQ16 (0x0080)
suupen 0:3a18655ada14 52 #define ORIGINAL_FREQ64 (0x00a0)
suupen 0:3a18655ada14 53 #define ORIGINAL_FREQ128 (0x00c0)
suupen 0:3a18655ada14 54 #define ORIGINAL_FREQ256 (0x00e0)
suupen 0:3a18655ada14 55
suupen 0:3a18655ada14 56 // CMD[4] 0000 0000 000x 0000 Output waveform select
suupen 0:3a18655ada14 57 #define WAVE_MYPWM (0x0000) // Only Grayscale = 8bit
suupen 0:3a18655ada14 58 #define WAVE_APDM (0x0010)
suupen 0:3a18655ada14 59
suupen 0:3a18655ada14 60 // CMD[3] 0000 0000 0000 x000 Grayscale clock source select
suupen 0:3a18655ada14 61 #define GCLOCK_INTERNAL (0x0000)
suupen 0:3a18655ada14 62 #define GCLOCK_EXTERNAL (0x0008)
suupen 0:3a18655ada14 63
suupen 0:3a18655ada14 64 // CMD[2] 0000 0000 0000 0x00 Output polarity select
suupen 0:3a18655ada14 65 #define WORK_LED (0x0000)
suupen 0:3a18655ada14 66 #define WORK_MYPWM (0x0004)
suupen 0:3a18655ada14 67
suupen 0:3a18655ada14 68 // CMD[1] 0000 0000 0000 00x0 Counter reset select
suupen 0:3a18655ada14 69 #define COUNTER_FREE (0x0000)
suupen 0:3a18655ada14 70 #define COUNTER_RESET (0x0002)
suupen 0:3a18655ada14 71
suupen 0:3a18655ada14 72 // CMD[0] 0000 0000 0000 000x One-shot select
suupen 0:3a18655ada14 73 #define SHOT_REPEAT (0x0000)
suupen 0:3a18655ada14 74 #define SHOT_SHOT (0x0001)
suupen 0:3a18655ada14 75
suupen 0:3a18655ada14 76 // commandData_t D[]の配列番号
suupen 0:3a18655ada14 77 // MY9221のOUTxの番号と配列番号をあわせるための定義
suupen 0:3a18655ada14 78 #define OUT3 (0)
suupen 0:3a18655ada14 79 #define OUT2 (1)
suupen 0:3a18655ada14 80 #define OUT1 (2)
suupen 0:3a18655ada14 81 #define OUT0 (3)
suupen 0:3a18655ada14 82
suupen 0:3a18655ada14 83 //=========================
suupen 0:3a18655ada14 84 // MY9221 command data 定義
suupen 0:3a18655ada14 85 //=========================
suupen 0:3a18655ada14 86 typedef struct {
suupen 0:3a18655ada14 87 uint16_t DA;
suupen 0:3a18655ada14 88 uint16_t DB;
suupen 0:3a18655ada14 89 uint16_t DC;
suupen 0:3a18655ada14 90 } dataSet_t;
suupen 0:3a18655ada14 91
suupen 0:3a18655ada14 92 typedef struct {
suupen 0:3a18655ada14 93 uint16_t CMD;
suupen 0:3a18655ada14 94 dataSet_t D[4]; // [0]:OUT3 [1]:OUT2 [2]:OUT1 [3]:OUT0
suupen 0:3a18655ada14 95 } commandData_t;
suupen 0:3a18655ada14 96
suupen 1:60440eb16f81 97 void initialTest(void);
suupen 1:60440eb16f81 98 void test(void);
suupen 0:3a18655ada14 99
suupen 0:3a18655ada14 100
suupen 0:3a18655ada14 101 //----------------------------------------------------------
suupen 0:3a18655ada14 102 private:
suupen 1:60440eb16f81 103
suupen 0:3a18655ada14 104
suupen 0:3a18655ada14 105 /** send one word data
suupen 0:3a18655ada14 106 * @param uint16_t data : send data
suupen 0:3a18655ada14 107 * @param return none
suupen 0:3a18655ada14 108 */
suupen 0:3a18655ada14 109 void sendWord(uint16_t data);
suupen 0:3a18655ada14 110
suupen 0:3a18655ada14 111 /** data latch & display
suupen 0:3a18655ada14 112 * @param none
suupen 0:3a18655ada14 113 * @param return none
suupen 0:3a18655ada14 114 */
suupen 0:3a18655ada14 115 void latch(void);
suupen 0:3a18655ada14 116
suupen 1:60440eb16f81 117 /** send brock data
suupen 1:60440eb16f81 118 * @param commandData_t *data : MY9221 Data
suupen 1:60440eb16f81 119 * @param uint8_t number : connection number (min=1)
suupen 1:60440eb16f81 120 * @param none
suupen 1:60440eb16f81 121 */
suupen 1:60440eb16f81 122 void sendBrock(commandData_t *data, uint8_t number);
suupen 1:60440eb16f81 123
suupen 1:60440eb16f81 124
suupen 1:60440eb16f81 125
suupen 1:60440eb16f81 126
suupen 1:60440eb16f81 127
suupen 1:60440eb16f81 128
suupen 0:3a18655ada14 129 DigitalOut _di;
suupen 0:3a18655ada14 130 DigitalOut _dcki;
suupen 1:60440eb16f81 131
suupen 0:3a18655ada14 132 int8_t _number;
suupen 1:60440eb16f81 133
suupen 1:60440eb16f81 134 commandData_t MY9221_data[10];//_number];
suupen 1:60440eb16f81 135
suupen 0:3a18655ada14 136
suupen 1:60440eb16f81 137
suupen 0:3a18655ada14 138 };
suupen 1:60440eb16f81 139 #undef _MY9221_C
suupen 0:3a18655ada14 140 #endif // MBED_PCA9547_H