電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>大電流高邊開(kāi)關(guān)屏蔽BTS7002 1EPP開(kāi)源

大電流高邊開(kāi)關(guān)屏蔽BTS7002 1EPP開(kāi)源

2022-10-31 | zip | 0.11 MB | 次下載 | 免費(fèi)

資料介紹

描述

盾牌到底是怎么回事?

這個(gè) Arduino 擴(kuò)展板帶有 4 個(gè)高側(cè)開(kāi)關(guān)BTS7002-1EPP (每個(gè)輸出的標(biāo)稱電流為 21A)。為了演示繼電器和保險(xiǎn)絲的更換,該屏蔽可用于控制和保護(hù) 12V 電源的輸出、打開(kāi)/關(guān)閉負(fù)載(例如燈泡、加熱電阻器、電機(jī)驅(qū)動(dòng)器)、測(cè)量負(fù)載電流和檢測(cè)空載條件。PROFET? +2 12V 系列針對(duì)大電流汽車應(yīng)用(例如 ECU 電源、輔助電源插座、加熱器)。

解剖盾牌

poYBAGNYuNKAczOLAArC_seAyV0977.png
?

引腳定義和功能

Push button digital: Push button digital (optional).
IN4: Input PROFET?+2 device U4.
LED1: Indicator LED 1.
LED2: Indicator LED 2.
DEN 1+3: Diagnosis enable PROFET?+2 device U1+U3.
OLOFF: Option for Open Load in OFF detection.
DEN 2+4: Diagnosis enable PROFET?+2 device U2+U4.
IN1: Input PROFET?+2 device U1.
IN2: Input PROFET?+2 device U2.
IN3: Input PROFET?+2 device U3.
LED3: Indicator LED 3.
LED4: Indicator LED 4.
VIN: Supply voltage.
Push button analog: Push button analog (optional).
VBAT: Measuring of VBAT via voltage divider.
IS 1+2: Current sense of PROFET?+2 device U1+U2.
IS 3+4: Current sense of PROFET?+2 device U3+U4.

軟件端

將插入屏蔽板的 Arduino 連接到您的計(jì)算機(jī)后,啟動(dòng) Arduino IDE 并安裝高端開(kāi)關(guān) ino 庫(kù)。為此,請(qǐng)單擊 Sketch,然后將鼠標(biāo)懸停在 Include Library 上,然后單擊 Manage Libraries... 在搜索欄中:鍵入 high side switch ino,然后您將找到安裝庫(kù)的選項(xiàng)。

poYBAGNYuNaAWfCmAABlFZvH03A166.png
?

現(xiàn)在該庫(kù)已正確安裝,您可以選擇探索各種預(yù)先編寫的代碼示例。為此:只需單擊文件,然后將鼠標(biāo)懸停在示例和高端開(kāi)關(guān)上,然后選擇您想要的任何示例代碼片段。

poYBAGNYuNmAUymmAACPli67C1w677.png
?

該庫(kù)實(shí)質(zhì)上為您省去了手動(dòng)尋址代碼中的每個(gè)引腳和控制屏蔽的麻煩,包括用于通道控制的模擬輸出信號(hào)、用于啟用診斷功能的數(shù)字輸出以及用于使用英飛凌電流感應(yīng)診斷功能的模擬輸入。

設(shè)置代碼

我們首先包含我們的庫(kù),然后使用 hss 命名空間

#include 
using namespace hss;

因此,我們用我們想要的任何名稱來(lái)實(shí)例化一個(gè)屏蔽對(duì)象(在我們當(dāng)前擁有的代碼片段的情況下:它是 HSS)。此外,我們還實(shí)例化了一個(gè)錯(cuò)誤變量,其中設(shè)置了一個(gè)名為 OK 的定義的值(您將在下面知道原因)。

Bts700xShieldIno HSS = Bts700xShieldIno(&BTS7002);
Error_t err = OK;

進(jìn)入我們的設(shè)置函數(shù):我們所要做的就是初始化我們剛剛使用 init() 函數(shù)實(shí)例化的 HSS 對(duì)象。此函數(shù)返回一個(gè)錯(cuò)誤代碼,我們將與我們最初分配給錯(cuò)誤變量的值(OK 定義)進(jìn)行比較。為確保一切正常,您可以檢查控制器告訴我們初始化是否成功的串行監(jiān)視器。如果您遵循所有這些,您的代碼現(xiàn)在應(yīng)該如下所示:

#include 
using namespace hss;
Bts700xShieldIno HSS = Bts700xShieldIno(&BTS7002);
Error_t err = OK;

void setup()
{
    Serial.begin(9600);
    Serial.println("Serial initialized");

    err = HSS.init();
    if(OK!=err)
    {
        Serial.println("Initialization failed!");
    }
    else
        Serial.println("Initialization successful!");
}

可能返回的錯(cuò)誤代碼有:

OK:No error
INTF_ERROR: Interface error
CONF_ERROR: Configuration error
READ_ERROR: Read error
WRITE_ERROR: Write error
NULLPTR_ERROR: Null pointer error
INVALID_CH_ERROR: Invalid channel error
UNSUPPORTED_OP_ERROR: Invalid channel error INIT_ERROR: Not initialized

活動(dòng)軟件組件

現(xiàn)在設(shè)置已完全完成,我們可以選擇實(shí)際控制開(kāi)關(guān)通道并檢查通道的診斷。對(duì)于我們的高端開(kāi)關(guān)通道控制,我們有兩個(gè)主要功能,即switchesHxOn(bool out1= false, bool out2= false, bool out3= false, bool out4= false)switchesHxOff(bool out1= false, bool out2= false, bool out3= false, bool out4= false)

這兩個(gè)函數(shù)采用 4 個(gè)值(0s 或 1s / true 或 false)表示它們的目標(biāo)操作通道。switchHxOff()您還可以使用或函數(shù)一次打開(kāi)/關(guān)閉單個(gè)通道switchHxOn(),其中兩者都采用目標(biāo)輸出通道號(hào)。

以下代碼片段將所有屏蔽通道打開(kāi)三秒鐘,然后將它們?cè)俅侮P(guān)閉連續(xù)三秒鐘。

void loop(){
HSS.switchesHxOn(1,1,1,1);
delay(3000);
HSS.switchesHxOff(1,1,1,1);
delay(3000);
}

診斷:

我們用于診斷的庫(kù)的 MVP 函數(shù)是 readDiagx(uint8_t x) 函數(shù)。此函數(shù)返回 DiagStatus_t 類型值。它接受一個(gè)從 1 到 4 的數(shù)字,代表輸出通道號(hào)。

返回的診斷狀態(tài)可能是:

DIAG_READ_ERROR: Read Error
NOT_ENABLED: Diagnosis not enabled
NORMAL Switch works correctly
FAULT: Switch is in fault condition (Is_fault at IS pin), which can mean “Short to GND”, “Overtemperature” or “Overload”
FAULT_OL_IC: Switch is either in Open Load (whit enable channel) or inverse current is flowing
SHORT_TO_GND_OR_OT: Short to the ground or Overtemperature detected SHORT_TO_VSS: Short to the supply voltage
OPEN_LOAD: Open load detected

另一個(gè)診斷功能是英飛凌的電流感應(yīng)功能,它使我們能夠找出流過(guò)負(fù)載的電流值。負(fù)責(zé)讀取電流的功能是readIsx()。readIsx()函數(shù)以浮點(diǎn)數(shù)的形式返回電流值,單位為安培。

為了增加交易,該readVss()函數(shù)讀取 vBAT 引腳上的電壓(檢查上圖)并以浮點(diǎn)形式以伏特為單位返回。

以下代碼片段取自庫(kù)中的 BTS700x-hss-advanced 代碼示例片段。自定義函數(shù) getSwitchParams() 具有三個(gè)內(nèi)置自定義函數(shù),每個(gè)函數(shù)都使用本節(jié)中提到的函數(shù)提供診斷信息

void getSwitchParams(int switch_no)
{
    Serial.println("Reading the current, battery voltage and diagnosis status of switch ...");
    /** Read current value */
    readCurrent(switch_no);
    /** Get diagnosis result */
    readDiagnosis(switch_no);
    /** Read battery voltage */
    readBatteryVoltage();
}


/**
 * @brief       Read current flowing through the switch
 * @param   switch_no  Switch number
 */
void readCurrent(int switch_no)
{
    float readAmps = 0.0;
    readAmps = HSS.readIsx(switch_no);
    Serial.print("Current flowing through the switch: ");
    Serial.print(readAmps);
    Serial.println(" A");
    return;
}

/**
 * @brief       Read diagnosis status of the switch
 * @param   switch_no  Switch number
 */
void readDiagnosis(int switch_no)
{
    DiagStatus_t switchStatus;

    for(int i = 0; i<10; i++){
        switchStatus = HSS.readDiagx(switch_no);            // Read the diagnosis function more than once to make sure the IS value is correct (internal exponential filter)
    }

    if(switchStatus == OPEN_LOAD)
    {
        Serial.println("Openload detected!");
    }
    if(switchStatus == FAULT)
    {
        Serial.println("Short circuit to ground detected, Overtemperature or Overload detected!");
    }
    if(switchStatus == FAULT_OL_IC)
    {
        Serial.println("Open load with active switch or inverse current detected!");
    }
    if(switchStatus == SHORT_TO_VSS)
    {
        Serial.println("Short circuit to Vss detected!");
    }
    if(switchStatus == NORMAL)
    {
        Serial.println("Normal operation!");
    }
    return;
}

/**
 * @brief       Reads the current battery voltage
 */
void readBatteryVoltage()
{
    float batteryVoltage = 0.0;
    for(int i = 0; i<10; i++){
        batteryVoltage = HSS.readVss();                 // Measure more than once to make use of the internal exponential filter
    }
    Serial.print("Current battery voltage : ");
    Serial.print(batteryVoltage);
    Serial.println(" V");
    return;
}

使用盾牌的按鈕功能

poYBAGNYuNyADUs2AAKuGRKEmN0068.png
?

還提供在占位符 S1 處焊接 SMD 按鈕的選項(xiàng)。此外,還需要一個(gè)電阻器 (RS1= 82 kOhm) 和一個(gè)電容器 (CS1 = 100 nF) 來(lái)對(duì)開(kāi)關(guān)進(jìn)行去抖動(dòng)處理。此外,根據(jù)跳線 J2/J3 的設(shè)置,按鈕可用于數(shù)字輸入 D2 (P1.4) 或模擬輸入 A0 (P2.6)。

哪里使用數(shù)字輸入焊接跳線J3,而使用模擬輸入焊接跳線J2

您實(shí)際上可以同時(shí)焊接跳線 J2 和 J3,這將允許您同時(shí)使用analogReadButton()digitalReadButton()功能

下面的代碼片段演示了analogReadButton()和digitalReadbutton()函數(shù)的使用,如果按鈕被按下,Arduino板串行打印“按下”,如果不是,則打印“未按下”:

void loop(){
if (HSS.digitalReadButton()){
    Serial.println("digital: pressed");
    }
 else {
       Serial.println("digital: not pressed");
       }
if (HSS.analogReadButton()){
    Serial.println("analog: pressed");
    }
 else {
       Serial.println("analog: not pressed");
       }
    delay(1000);
}
pYYBAGNYuN-AP4NkAACmInWnxKc189.png
?

LED控制

屏蔽層的 LED 在操作各自的輸出通道號(hào)時(shí)亮起(當(dāng)您使用 HxSwitchesOn/HxSwitchOn 功能時(shí)),但是,如果只是通過(guò)向其引腳發(fā)送 PWM 信號(hào)來(lái)操作開(kāi)關(guān),它們不會(huì)亮起。要手動(dòng)控制 LED:只需將數(shù)字高邏輯信號(hào)發(fā)送到四個(gè) LED 引腳中的任何一個(gè)。

以下代碼片段通過(guò)手動(dòng)操作輸出 3 的開(kāi)關(guān)并同時(shí)打開(kāi) LED 1、2 和 4 來(lái)手動(dòng)演示這一點(diǎn)。

//-------------PIN DEFINITIONS------------------------------
const int IN4 = 3;
const int LED1 = 4;
const int LED2 = 5;
const int DEN1_DEN3 = 6;
const int OLOFF = 7;
const int DEN2_DEN4 = 8;
const int IN1 = 9;
const int IN2 = 10;
const int IN3 = 11;
const int LED3 = 12;
const int LED4 = 13;
const int Button = A0;
const int IS_U1U2 = A2;
const int IS_U3U4 = A3;
//-------------END OF PIN DEFINITIONS------------------------
void setup() {
//------------- PIN MODE SETUP-------------------------------
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
pinMode(Button,INPUT);
pinMode(IS_U1U2,INPUT);
pinMode(IS_U3U4,INPUT);
pinMode(DEN1_DEN3,OUTPUT);
pinMode(DEN2_DEN4,OUTPUT);
pinMode(OLOFF,OUTPUT);
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
//-----------------END OF PIN MODE SETUP--------------------
}
void loop(){
analogWrite(IN3,255);
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED4,HIGH);
}

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開(kāi)發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)