TI社のBLDCモータードライバDRV8301を コントロールするためのユーティリティのようなクラスです。 できるだけユーザーにわかりやすく レジスタの設定・読み取りなどを行います。 尚、データシートは必須の模様。
Dependents: BLDC1Axis_DRV8301CTRL
DRV8301CTRL.h@0:72d833823fd5, 2016-08-31 (annotated)
- Committer:
- Yajirushi
- Date:
- Wed Aug 31 17:03:35 2016 +0000
- Revision:
- 0:72d833823fd5
FIRST COMMIT
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Yajirushi | 0:72d833823fd5 | 1 | /* Copyright (c) 2016 Yajirushi(Cursor) |
Yajirushi | 0:72d833823fd5 | 2 | * |
Yajirushi | 0:72d833823fd5 | 3 | * Released under the MIT license |
Yajirushi | 0:72d833823fd5 | 4 | * http://opensource.org/licenses/mit-license.php |
Yajirushi | 0:72d833823fd5 | 5 | * |
Yajirushi | 0:72d833823fd5 | 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy |
Yajirushi | 0:72d833823fd5 | 7 | * of this software and associated documentation files (the "Software"), to deal |
Yajirushi | 0:72d833823fd5 | 8 | * in the Software without restriction, including without limitation the rights |
Yajirushi | 0:72d833823fd5 | 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
Yajirushi | 0:72d833823fd5 | 10 | * copies of the Software, and to permit persons to whom the Software is |
Yajirushi | 0:72d833823fd5 | 11 | * furnished to do so, subject to the following conditions: |
Yajirushi | 0:72d833823fd5 | 12 | * |
Yajirushi | 0:72d833823fd5 | 13 | * The above copyright notice and this permission notice shall be included in |
Yajirushi | 0:72d833823fd5 | 14 | * all copies or substantial portions of the Software. |
Yajirushi | 0:72d833823fd5 | 15 | * |
Yajirushi | 0:72d833823fd5 | 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
Yajirushi | 0:72d833823fd5 | 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
Yajirushi | 0:72d833823fd5 | 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
Yajirushi | 0:72d833823fd5 | 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
Yajirushi | 0:72d833823fd5 | 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
Yajirushi | 0:72d833823fd5 | 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
Yajirushi | 0:72d833823fd5 | 22 | * THE SOFTWARE. |
Yajirushi | 0:72d833823fd5 | 23 | */ |
Yajirushi | 0:72d833823fd5 | 24 | #include "mbed.h" |
Yajirushi | 0:72d833823fd5 | 25 | |
Yajirushi | 0:72d833823fd5 | 26 | #ifndef DRV8301CTRL_H |
Yajirushi | 0:72d833823fd5 | 27 | #define DRV8301CTRL_H |
Yajirushi | 0:72d833823fd5 | 28 | |
Yajirushi | 0:72d833823fd5 | 29 | // ##### BEGIN:ここからユーザーが変更する部分(Change setting, if you need.) #### |
Yajirushi | 0:72d833823fd5 | 30 | |
Yajirushi | 0:72d833823fd5 | 31 | //DRV8301 SPI FREQUENCY(SPIの周波数:Max=5MHz) |
Yajirushi | 0:72d833823fd5 | 32 | #define DRV8301CTRL_FREQ 1000000 |
Yajirushi | 0:72d833823fd5 | 33 | |
Yajirushi | 0:72d833823fd5 | 34 | // ##### END:ここまで ##### |
Yajirushi | 0:72d833823fd5 | 35 | |
Yajirushi | 0:72d833823fd5 | 36 | //STATUS & CONTROL REGISTERS |
Yajirushi | 0:72d833823fd5 | 37 | #define DRV8301REG_WRITEMODE 0x0000 |
Yajirushi | 0:72d833823fd5 | 38 | #define DRV8301REG_READMODE 0x8000 |
Yajirushi | 0:72d833823fd5 | 39 | #define DRV8301REG_STATUS1 0x0000 |
Yajirushi | 0:72d833823fd5 | 40 | #define DRV8301REG_STATUS2 0x0800 |
Yajirushi | 0:72d833823fd5 | 41 | #define DRV8301REG_CTRL1 0x1000 |
Yajirushi | 0:72d833823fd5 | 42 | #define DRV8301REG_CTRL2 0x1800 |
Yajirushi | 0:72d833823fd5 | 43 | |
Yajirushi | 0:72d833823fd5 | 44 | //ENUM STATUS & CONTROL VALUES |
Yajirushi | 0:72d833823fd5 | 45 | enum CTRL1_GATE_CURRENT{ |
Yajirushi | 0:72d833823fd5 | 46 | GATE_CURRENT_PEAKCURRENT_1_7A = 0x0000, |
Yajirushi | 0:72d833823fd5 | 47 | GATE_CURRENT_PEAKCURRENT_0_7A = 0x0001, |
Yajirushi | 0:72d833823fd5 | 48 | GATE_CURRENT_PEAKCURRENT_0_25A = 0x0002, |
Yajirushi | 0:72d833823fd5 | 49 | GATE_CURRENT_PEAKCURRENT_RESERVED = 0x0003 |
Yajirushi | 0:72d833823fd5 | 50 | }; |
Yajirushi | 0:72d833823fd5 | 51 | enum CTRL1_GATE_RESET{ |
Yajirushi | 0:72d833823fd5 | 52 | GATE_RESET_NORMAL = 0x0000, |
Yajirushi | 0:72d833823fd5 | 53 | GATE_RESET_RESETGATE_LATCHED_FAULT = 0x0004 |
Yajirushi | 0:72d833823fd5 | 54 | }; |
Yajirushi | 0:72d833823fd5 | 55 | enum CTRL1_PWM_MODE{ |
Yajirushi | 0:72d833823fd5 | 56 | PWM_MODE_PWMLINES_6 = 0x0000, |
Yajirushi | 0:72d833823fd5 | 57 | PWM_MODE_PWMLINES_3 = 0x0008 |
Yajirushi | 0:72d833823fd5 | 58 | }; |
Yajirushi | 0:72d833823fd5 | 59 | enum CTRL1_OCP_MODE{ |
Yajirushi | 0:72d833823fd5 | 60 | OCP_MODE_CURRENTLIMIT = 0x0000, |
Yajirushi | 0:72d833823fd5 | 61 | OCP_MODE_OC_LATCH_SHUTDOWN = 0x0010, |
Yajirushi | 0:72d833823fd5 | 62 | OCP_MODE_REPORTONLY = 0x0020, |
Yajirushi | 0:72d833823fd5 | 63 | OCP_MODE_OC_DISABLE = 0x0030 |
Yajirushi | 0:72d833823fd5 | 64 | }; |
Yajirushi | 0:72d833823fd5 | 65 | enum CTRL1_OC_ADJ{ |
Yajirushi | 0:72d833823fd5 | 66 | OC_ADJ_SET_ADJUST_0_060=0x0000, |
Yajirushi | 0:72d833823fd5 | 67 | OC_ADJ_SET_ADJUST_0_068=0x0040, |
Yajirushi | 0:72d833823fd5 | 68 | OC_ADJ_SET_ADJUST_0_076=0x0080, |
Yajirushi | 0:72d833823fd5 | 69 | OC_ADJ_SET_ADJUST_0_086=0x00C0, |
Yajirushi | 0:72d833823fd5 | 70 | OC_ADJ_SET_ADJUST_0_097=0x0100, |
Yajirushi | 0:72d833823fd5 | 71 | OC_ADJ_SET_ADJUST_0_109=0x0140, |
Yajirushi | 0:72d833823fd5 | 72 | OC_ADJ_SET_ADJUST_0_123=0x0180, |
Yajirushi | 0:72d833823fd5 | 73 | OC_ADJ_SET_ADJUST_0_138=0x01C0, |
Yajirushi | 0:72d833823fd5 | 74 | OC_ADJ_SET_ADJUST_0_155=0x0200, |
Yajirushi | 0:72d833823fd5 | 75 | OC_ADJ_SET_ADJUST_0_175=0x0240, |
Yajirushi | 0:72d833823fd5 | 76 | OC_ADJ_SET_ADJUST_0_197=0x0280, |
Yajirushi | 0:72d833823fd5 | 77 | OC_ADJ_SET_ADJUST_0_222=0x02C0, |
Yajirushi | 0:72d833823fd5 | 78 | OC_ADJ_SET_ADJUST_0_250=0x0300, |
Yajirushi | 0:72d833823fd5 | 79 | OC_ADJ_SET_ADJUST_0_282=0x0340, |
Yajirushi | 0:72d833823fd5 | 80 | OC_ADJ_SET_ADJUST_0_317=0x0380, |
Yajirushi | 0:72d833823fd5 | 81 | OC_ADJ_SET_ADJUST_0_358=0x03C0, |
Yajirushi | 0:72d833823fd5 | 82 | OC_ADJ_SET_ADJUST_0_403=0x0400, |
Yajirushi | 0:72d833823fd5 | 83 | OC_ADJ_SET_ADJUST_0_454=0x0440, |
Yajirushi | 0:72d833823fd5 | 84 | OC_ADJ_SET_ADJUST_0_511=0x0480, |
Yajirushi | 0:72d833823fd5 | 85 | OC_ADJ_SET_ADJUST_0_576=0x04C0, |
Yajirushi | 0:72d833823fd5 | 86 | OC_ADJ_SET_ADJUST_0_648=0x0500, |
Yajirushi | 0:72d833823fd5 | 87 | OC_ADJ_SET_ADJUST_0_730=0x0540, |
Yajirushi | 0:72d833823fd5 | 88 | OC_ADJ_SET_ADJUST_0_822=0x0580, |
Yajirushi | 0:72d833823fd5 | 89 | OC_ADJ_SET_ADJUST_0_926=0x05C0, |
Yajirushi | 0:72d833823fd5 | 90 | OC_ADJ_SET_ADJUST_1_043=0x0600, |
Yajirushi | 0:72d833823fd5 | 91 | OC_ADJ_SET_ADJUST_1_175=0x0640, |
Yajirushi | 0:72d833823fd5 | 92 | OC_ADJ_SET_ADJUST_1_324=0x0680, |
Yajirushi | 0:72d833823fd5 | 93 | OC_ADJ_SET_ADJUST_1_491=0x06C0, |
Yajirushi | 0:72d833823fd5 | 94 | OC_ADJ_SET_ADJUST_1_679=0x0700, |
Yajirushi | 0:72d833823fd5 | 95 | OC_ADJ_SET_ADJUST_1_892=0x0740, |
Yajirushi | 0:72d833823fd5 | 96 | OC_ADJ_SET_ADJUST_2_131=0x0780, |
Yajirushi | 0:72d833823fd5 | 97 | OC_ADJ_SET_ADJUST_2_400=0x07C0 |
Yajirushi | 0:72d833823fd5 | 98 | }; |
Yajirushi | 0:72d833823fd5 | 99 | enum CTRL2_OCTW_MODE{ |
Yajirushi | 0:72d833823fd5 | 100 | OCTW_MODE_REPORT_OT_OC_BOTH = 0x0000, |
Yajirushi | 0:72d833823fd5 | 101 | OCTW_MODE_REPORT_OVERTEMP_ONLY = 0x0001, |
Yajirushi | 0:72d833823fd5 | 102 | OCTW_MODE_REPORT_OVERCURRENT_ONLY = 0x0002, |
Yajirushi | 0:72d833823fd5 | 103 | OCTW_MODE_REPORT_RESERVED = 0x0003 |
Yajirushi | 0:72d833823fd5 | 104 | }; |
Yajirushi | 0:72d833823fd5 | 105 | enum CTRL2_SHUNTGAIN{ |
Yajirushi | 0:72d833823fd5 | 106 | SHUNTGAIN_GAIN_10V_PER_V = 0x0000, |
Yajirushi | 0:72d833823fd5 | 107 | SHUNTGAIN_GAIN_20V_PER_V = 0x0004, |
Yajirushi | 0:72d833823fd5 | 108 | SHUNTGAIN_GAIN_40V_PER_V = 0x0008, |
Yajirushi | 0:72d833823fd5 | 109 | SHUNTGAIN_GAIN_80V_PER_V = 0x000C |
Yajirushi | 0:72d833823fd5 | 110 | }; |
Yajirushi | 0:72d833823fd5 | 111 | enum CTRL2_DC_CAL_CH1{ |
Yajirushi | 0:72d833823fd5 | 112 | DC_CAL_CH1_ENABLE = 0x0000, |
Yajirushi | 0:72d833823fd5 | 113 | DC_CAL_CH1_DISABLE = 0x0010 |
Yajirushi | 0:72d833823fd5 | 114 | }; |
Yajirushi | 0:72d833823fd5 | 115 | enum CTRL2_DC_CAL_CH2{ |
Yajirushi | 0:72d833823fd5 | 116 | DC_CAL_CH2_ENABLE = 0x0000, |
Yajirushi | 0:72d833823fd5 | 117 | DC_CAL_CH2_DISABLE = 0x0020 |
Yajirushi | 0:72d833823fd5 | 118 | }; |
Yajirushi | 0:72d833823fd5 | 119 | enum CTRL2_OC_TOFF{ |
Yajirushi | 0:72d833823fd5 | 120 | OC_TOFF_CYCLE_BY_CYCLE = 0x0000, |
Yajirushi | 0:72d833823fd5 | 121 | OC_TOFF_OFF_TIME_CONTROL = 0x0040 |
Yajirushi | 0:72d833823fd5 | 122 | }; |
Yajirushi | 0:72d833823fd5 | 123 | |
Yajirushi | 0:72d833823fd5 | 124 | //DRV8301 Control Class ======================================================== |
Yajirushi | 0:72d833823fd5 | 125 | class drv8301ctrl{ |
Yajirushi | 0:72d833823fd5 | 126 | public: |
Yajirushi | 0:72d833823fd5 | 127 | //Constructor (Overload +3) |
Yajirushi | 0:72d833823fd5 | 128 | drv8301ctrl(Serial *serial, SPI *spi, PinName csel, PinName en_gate); |
Yajirushi | 0:72d833823fd5 | 129 | drv8301ctrl(Serial *serial, SPI *spi, DigitalOut *csel, DigitalOut *en_gate); |
Yajirushi | 0:72d833823fd5 | 130 | drv8301ctrl(SPI *spi, PinName csel, PinName en_gate); |
Yajirushi | 0:72d833823fd5 | 131 | drv8301ctrl(SPI *spi, DigitalOut *csel, DigitalOut *en_gate); |
Yajirushi | 0:72d833823fd5 | 132 | |
Yajirushi | 0:72d833823fd5 | 133 | //Destructor |
Yajirushi | 0:72d833823fd5 | 134 | ~drv8301ctrl(); |
Yajirushi | 0:72d833823fd5 | 135 | |
Yajirushi | 0:72d833823fd5 | 136 | private: |
Yajirushi | 0:72d833823fd5 | 137 | Serial *pc; |
Yajirushi | 0:72d833823fd5 | 138 | SPI *si; |
Yajirushi | 0:72d833823fd5 | 139 | DigitalOut *cs, *gate; |
Yajirushi | 0:72d833823fd5 | 140 | |
Yajirushi | 0:72d833823fd5 | 141 | bool hasSerial; |
Yajirushi | 0:72d833823fd5 | 142 | unsigned short writeValue1, writeValue2; |
Yajirushi | 0:72d833823fd5 | 143 | unsigned char devID; |
Yajirushi | 0:72d833823fd5 | 144 | |
Yajirushi | 0:72d833823fd5 | 145 | //SPI read/write command |
Yajirushi | 0:72d833823fd5 | 146 | int spi_cmd(int val, bool debug=true); |
Yajirushi | 0:72d833823fd5 | 147 | |
Yajirushi | 0:72d833823fd5 | 148 | public: |
Yajirushi | 0:72d833823fd5 | 149 | |
Yajirushi | 0:72d833823fd5 | 150 | //initialize:初期化 |
Yajirushi | 0:72d833823fd5 | 151 | void init(bool reset_iface=true); |
Yajirushi | 0:72d833823fd5 | 152 | |
Yajirushi | 0:72d833823fd5 | 153 | //read status register1:(ステータスレジスタ1の読み取り) |
Yajirushi | 0:72d833823fd5 | 154 | //FAULT, GVDD_UV, PVDD_UV, OTSD, OTW, |
Yajirushi | 0:72d833823fd5 | 155 | //FETHA_OC, FETLA_OC, FETHB_OC, FETLB_OC, FETHC_OC, FETLC_OC |
Yajirushi | 0:72d833823fd5 | 156 | unsigned short readStatus1(); |
Yajirushi | 0:72d833823fd5 | 157 | |
Yajirushi | 0:72d833823fd5 | 158 | //read status register2:(ステータスレジスタ2の読み取り) |
Yajirushi | 0:72d833823fd5 | 159 | //GVDD_OV, DEVICE_ID |
Yajirushi | 0:72d833823fd5 | 160 | unsigned short readStatus2(); |
Yajirushi | 0:72d833823fd5 | 161 | |
Yajirushi | 0:72d833823fd5 | 162 | //read status:FAULT |
Yajirushi | 0:72d833823fd5 | 163 | bool readFault(); |
Yajirushi | 0:72d833823fd5 | 164 | //read status:GVDD_UV(GVDD under voltage) |
Yajirushi | 0:72d833823fd5 | 165 | bool readGVDD_UV(); |
Yajirushi | 0:72d833823fd5 | 166 | //read status:PVDD_UV(PVDD under voltage) |
Yajirushi | 0:72d833823fd5 | 167 | bool readPVDD_UV(); |
Yajirushi | 0:72d833823fd5 | 168 | //read status:OTSD(Over Temperature ShutDown: over 150 degree C) |
Yajirushi | 0:72d833823fd5 | 169 | bool readOTSD(); |
Yajirushi | 0:72d833823fd5 | 170 | //read status:OTW(Over Temperature Warning: over 130 degree C) |
Yajirushi | 0:72d833823fd5 | 171 | bool readOTW(); |
Yajirushi | 0:72d833823fd5 | 172 | //read status:FETHA_OC(MOSFET A High-Side Over Current: ref OC_ADJ) |
Yajirushi | 0:72d833823fd5 | 173 | bool readFETHA_OC(); |
Yajirushi | 0:72d833823fd5 | 174 | //read status:FETLA_OC(MOSFET A Low-Side Over Current: ref OC_ADJ) |
Yajirushi | 0:72d833823fd5 | 175 | bool readFETLA_OC(); |
Yajirushi | 0:72d833823fd5 | 176 | //read status:FETHB_OC(MOSFET B High-Side Over Current: ref OC_ADJ) |
Yajirushi | 0:72d833823fd5 | 177 | bool readFETHB_OC(); |
Yajirushi | 0:72d833823fd5 | 178 | //read status:FETLB_OC(MOSFET B Low-Side Over Current: ref OC_ADJ) |
Yajirushi | 0:72d833823fd5 | 179 | bool readFETLB_OC(); |
Yajirushi | 0:72d833823fd5 | 180 | //read status:FETHC_OC(MOSFET C High-Side Over Current: ref OC_ADJ) |
Yajirushi | 0:72d833823fd5 | 181 | bool readFETHC_OC(); |
Yajirushi | 0:72d833823fd5 | 182 | //read status:FETLC_OC(MOSFET C Low-Side Over Current: ref OC_ADJ) |
Yajirushi | 0:72d833823fd5 | 183 | bool readFETLC_OC(); |
Yajirushi | 0:72d833823fd5 | 184 | //read status:GVDD_OV(GVDD over voltage) |
Yajirushi | 0:72d833823fd5 | 185 | bool readGVDD_OV(); |
Yajirushi | 0:72d833823fd5 | 186 | //read status:DEVICE_ID |
Yajirushi | 0:72d833823fd5 | 187 | unsigned char readDEVICE_ID(); |
Yajirushi | 0:72d833823fd5 | 188 | |
Yajirushi | 0:72d833823fd5 | 189 | //read control register1:(コントロールレジスタ1の読み取り) |
Yajirushi | 0:72d833823fd5 | 190 | //GATE_CURRENT, GATE_RESET, PWM_MODE, OCP_MODE, OC_ADJ_SET |
Yajirushi | 0:72d833823fd5 | 191 | unsigned short readCtrl1(); |
Yajirushi | 0:72d833823fd5 | 192 | |
Yajirushi | 0:72d833823fd5 | 193 | //read control register2:(コントロールレジスタ2の読み取り) |
Yajirushi | 0:72d833823fd5 | 194 | //OCTW_MODE, GAIN, DC_CAL_CH1, DC_CAL_CH2, OC_TOFF |
Yajirushi | 0:72d833823fd5 | 195 | unsigned short readCtrl2(); |
Yajirushi | 0:72d833823fd5 | 196 | |
Yajirushi | 0:72d833823fd5 | 197 | //read settings:GATE_CURRENT(MOSFET Gate drive peak current) |
Yajirushi | 0:72d833823fd5 | 198 | unsigned char readGATE_CURRENT(); //HexValue |
Yajirushi | 0:72d833823fd5 | 199 | float readValGATE_CURRENT(); //RealValue |
Yajirushi | 0:72d833823fd5 | 200 | //read settings:GATE_RESET(MOSFET Gate reset mode) |
Yajirushi | 0:72d833823fd5 | 201 | bool readGATE_RESETisNormal(); |
Yajirushi | 0:72d833823fd5 | 202 | //read settings:PWM_MODE(6-pwm or 3-pwm) |
Yajirushi | 0:72d833823fd5 | 203 | bool readPWM_MODEis6PWM(); |
Yajirushi | 0:72d833823fd5 | 204 | //read settings:OCP_MODE(Over Current Protection mode) |
Yajirushi | 0:72d833823fd5 | 205 | unsigned char readOCP_MODE(); |
Yajirushi | 0:72d833823fd5 | 206 | //read settings:OC_ADJ_SET(Over Curent Adjust set) |
Yajirushi | 0:72d833823fd5 | 207 | unsigned char readOC_ADJ_SET(); //HexValue |
Yajirushi | 0:72d833823fd5 | 208 | float readValOC_ADJ_SET(); //RealValue |
Yajirushi | 0:72d833823fd5 | 209 | //read settings:OCTW_MODE(Over Current and Temperature Warning mode) |
Yajirushi | 0:72d833823fd5 | 210 | unsigned char readOCTW_MODE(); |
Yajirushi | 0:72d833823fd5 | 211 | //read settings:GAIN(Shunt amp gain) |
Yajirushi | 0:72d833823fd5 | 212 | unsigned char readGAIN(); |
Yajirushi | 0:72d833823fd5 | 213 | //read settings:DC_CAL_CH1(Calibration Shunt amp CH-1) |
Yajirushi | 0:72d833823fd5 | 214 | bool readDC_CAL_CH1isEnabled(); |
Yajirushi | 0:72d833823fd5 | 215 | //read settings:DC_CAL_CH2(Calibration Shunt amp CH-2) |
Yajirushi | 0:72d833823fd5 | 216 | bool readDC_CAL_CH2isEnabled(); |
Yajirushi | 0:72d833823fd5 | 217 | //read settings:OC_TOFF(Over Current MOSFET gate off mode) |
Yajirushi | 0:72d833823fd5 | 218 | bool readOC_TOFFisCycleByCycle(); |
Yajirushi | 0:72d833823fd5 | 219 | |
Yajirushi | 0:72d833823fd5 | 220 | //write control register1:(コントロールレジスタ1へ書き込み) |
Yajirushi | 0:72d833823fd5 | 221 | bool writeCtrl1(unsigned short val=0xffff); |
Yajirushi | 0:72d833823fd5 | 222 | |
Yajirushi | 0:72d833823fd5 | 223 | //write control register2:(コントロールレジスタ2へ書き込み) |
Yajirushi | 0:72d833823fd5 | 224 | bool writeCtrl2(unsigned short val=0xffff); |
Yajirushi | 0:72d833823fd5 | 225 | |
Yajirushi | 0:72d833823fd5 | 226 | //writeValue clear:(内部に保持しているレジスタの仮の値を消去) |
Yajirushi | 0:72d833823fd5 | 227 | void resetWriteValue1(); |
Yajirushi | 0:72d833823fd5 | 228 | void resetWriteValue2(); |
Yajirushi | 0:72d833823fd5 | 229 | |
Yajirushi | 0:72d833823fd5 | 230 | //writeValue direct update:(内部に保持しているレジスタの仮の値を更新) |
Yajirushi | 0:72d833823fd5 | 231 | void updateWriteValue1(unsigned short val); |
Yajirushi | 0:72d833823fd5 | 232 | void updateWriteValue2(unsigned short val); |
Yajirushi | 0:72d833823fd5 | 233 | |
Yajirushi | 0:72d833823fd5 | 234 | //set value:GATE_CURRENT(MOSFET Gate drive peak current) |
Yajirushi | 0:72d833823fd5 | 235 | void setGATE_CURRENT(unsigned char hexVal); |
Yajirushi | 0:72d833823fd5 | 236 | void setGATE_CURRENT(float realVal); |
Yajirushi | 0:72d833823fd5 | 237 | //set value:GATE_RESET(MOSFET Gate reset mode) |
Yajirushi | 0:72d833823fd5 | 238 | void setGATE_RESET(bool isNormal); |
Yajirushi | 0:72d833823fd5 | 239 | //set value:PWM_MODE(6-pwm or 3-pwm) |
Yajirushi | 0:72d833823fd5 | 240 | void setPWM_MODE(bool is6PWM); |
Yajirushi | 0:72d833823fd5 | 241 | //set value:OCP_MODE(Over Current Protection mode) |
Yajirushi | 0:72d833823fd5 | 242 | void setOCP_MODE(unsigned char val); |
Yajirushi | 0:72d833823fd5 | 243 | //set value:OC_ADJ_SET(Over Curent Adjust set) |
Yajirushi | 0:72d833823fd5 | 244 | void setOC_ADJ(unsigned char hexVal); |
Yajirushi | 0:72d833823fd5 | 245 | void setOC_ADJ(float realVal); |
Yajirushi | 0:72d833823fd5 | 246 | //set value:OCTW_MODE(Over Current and Temperature Warning mode) |
Yajirushi | 0:72d833823fd5 | 247 | void setOCTW_MODE(unsigned char val); |
Yajirushi | 0:72d833823fd5 | 248 | //set value:GAIN(Shunt amp gain) |
Yajirushi | 0:72d833823fd5 | 249 | void setGAIN(unsigned char val); |
Yajirushi | 0:72d833823fd5 | 250 | //set value:DC_CAL_CH1(Calibration Shunt amp CH-1) |
Yajirushi | 0:72d833823fd5 | 251 | void setDC_CAL_CH1_Enabled(bool enable); |
Yajirushi | 0:72d833823fd5 | 252 | //set value:DC_CAL_CH2(Calibration Shunt amp CH-2) |
Yajirushi | 0:72d833823fd5 | 253 | void setDC_CAL_CH2_Enabled(bool enable); |
Yajirushi | 0:72d833823fd5 | 254 | //set value:OC_TOFF(Over Current MOSFET gate off mode) |
Yajirushi | 0:72d833823fd5 | 255 | void setOC_TOFF_CycleByCycle(bool enable); |
Yajirushi | 0:72d833823fd5 | 256 | |
Yajirushi | 0:72d833823fd5 | 257 | //EN_GATE on,off:(EN_GATEピンの状態セット) |
Yajirushi | 0:72d833823fd5 | 258 | void gateEnable(); |
Yajirushi | 0:72d833823fd5 | 259 | void gateDisable(); |
Yajirushi | 0:72d833823fd5 | 260 | void gateReset(); |
Yajirushi | 0:72d833823fd5 | 261 | }; |
Yajirushi | 0:72d833823fd5 | 262 | |
Yajirushi | 0:72d833823fd5 | 263 | #endif |