ST-လိုဂို

STMicroelectronics UM3469 X-CUBE-ISO1 ဆော့ဖ်ဝဲလ် ချဲ့ထွင်ခြင်း။

STMicroelectronics-UM3469-X-CUBE-ISO1-ဆော့ဖ်ဝဲလ်-ချဲ့ထွင်မှု

နိဒါန်း

STM32Cube အတွက် X-CUBE-ISO1 တိုးချဲ့ဆော့ဖ်ဝဲလ်ပက်ကေ့ဂျ်သည် STM32 တွင်အလုပ်လုပ်ပြီး X-NUCLEO-ISO1A1 အတွက် ဖိုင်းဝဲပါဝင်သည်။ ဆော့ဖ်ဝဲလ်သည် X-NUCLEO မှပံ့ပိုးပေးသော အခြေခံ PLC စက်ပစ္စည်းတစ်ခုဖွံ့ဖြိုးတိုးတက်မှုအတွက် လွယ်ကူသောဖြေရှင်းချက်တစ်ခုပေးပါသည်။ တိုးချဲ့မှုသည် မတူညီသော STM32 မိုက်ခရိုကွန်ထရိုလာများတစ်လျှောက် သယ်ဆောင်ရလွယ်ကူစေရန် STM32Cube ဆော့ဖ်ဝဲလ်နည်းပညာဖြင့် တည်ဆောက်ထားသည်။

ဆော့ဖ်ဝဲသည် NUCLEO-G071RB ဖွံ့ဖြိုးတိုးတက်မှုဘုတ်အဖွဲ့ (သို့မဟုတ် NUCLEO-G0B1RE သို့မဟုတ် NUCLEO-G070RB) နှင့် ချိတ်ဆက်ထားသော X-NUCLEO-ISO1A1 တိုးချဲ့ဘုတ်ပေါ်တွင် လုပ်ဆောင်နေသည့် အကောင်အထည်ဖော်မှုတစ်ခု ပါရှိသည်။ ယခုမှစ၍ စာရွက်စာတမ်းတွင် NUCLEO-G071RB ကိုသာ ရိုးရိုးရှင်းရှင်း ဖော်ပြပါမည်။
X-NUCLEO-ISO1A1 ဘုတ်အဖွဲ့သည် အဝင်နှင့် အထွက်စွမ်းရည်များကို တိုးချဲ့ရန်အတွက် သင့်လျော်သော jumper ဆက်တင်များဖြင့် ဘုတ်နှစ်ခုကို တန်းစီခြင်းကို ပံ့ပိုးရန် ဒီဇိုင်းထုတ်ထားသည်။

အတိုကောက်များနှင့် အတိုကောက်များ

ဇယား ၁။ အတိုကောက်များစာရင်း

အတိုကောက် ဖော်ပြချက်
PLC ပရိုဂရမ်မာဂျစ်ထိန်းချုပ်ကိရိယာ
API အက်ပ်ပရိုဂရမ်းမင်း အင်တာဖေ့စ်
PWM Pulse width modulation
GPIO ယေဘူယျ ရည်ရွယ်ချက် အဝင်/အထွက်။
HAL Hardware abstraction အလွှာ
PC ကိုယ်ပိုင်ကွန်ပျူတာ
FW Firmware

STM32Cube ဆိုတာဘာလဲ။

STM32Cube™ သည် ဖွံ့ဖြိုးတိုးတက်မှုကြိုးပမ်းမှု၊ အချိန်နှင့် ကုန်ကျစရိတ်များကို လျှော့ချခြင်းဖြင့် developer များ၏ဘဝပိုမိုလွယ်ကူစေရန် STMicroelectronics ပဏာမခြေလှမ်းကို ကိုယ်စားပြုသည်။ STM32Cube သည် STM32 အစုစုကို အကျုံးဝင်သည်။
STM32Cube ဗားရှင်း 1.x တွင်-

  • STM32CubeMX သည် graphical wizards များကို အသုံးပြု၍ C အစပျိုးကုဒ်၏ မျိုးဆက်ကို ခွင့်ပြုသည့် ဂရပ်ဖစ်ဆော့ဖ်ဝဲ ဖွဲ့စည်းမှုပုံစံတူးလ်။
  • စီးရီးတစ်ခုစီအတွက် ကျယ်ကျယ်ပြန့်ပြန့်ထည့်သွင်းထားသောဆော့ဖ်ဝဲပလပ်ဖောင်းတစ်ခု (ဥပမာ STM32G0 စီးရီးအတွက် STM32CubeG0 ကဲ့သို့သော)၊
    • STM32Cube HAL သည် မြှုပ်နှံထားသော abstraction-layer software သည် STM32 အစုစုတစ်လျှောက် သယ်ဆောင်ရလွယ်ကူစေသည်
    • RTOS၊ USB၊ TCP/IP နှင့် ဂရပ်ဖစ်ကဲ့သို့သော အလယ်အလတ်ဆော့ဖ်ဝဲ အစိတ်အပိုင်းများ အစုအဝေးတစ်ခု
    • ex အစုံအလင်ဖြင့် မြှုပ်သွင်းထားသော software utilities များအားလုံးamples

STM32Cube ဗိသုကာ
STM32Cube firmware ဖြေရှင်းချက်သည် အောက်ဖော်ပြပါ ပုံတွင်ဖော်ပြထားသည့်အတိုင်း တစ်ခုနှင့်တစ်ခု လွယ်ကူစွာ အပြန်အလှန်တုံ့ပြန်နိုင်သော သီးခြားအဆင့်သုံးဆင့်ဖြင့် တည်ဆောက်ထားသည်။

STMicroelectronics-UM3469-X-CUBE-ISO1-ဆော့ဖ်ဝဲ-တိုးချဲ့-1

STM32Cube အတွက် X-CUBE-ISO1 ဆော့ဖ်ဝဲလ် တိုးချဲ့မှု

ကျော်view
X-NUCLEO-ISO1A1၊ စက်မှုအထီးကျန် အဝင်/အထွက် တိုးချဲ့ဘုတ်အတွက်၊ STM32 ပတ်၀န်းကျင်နှင့် ဒစ်ဂျစ်တိုက်များပတ်လည်တွင် တီထွင်ထားသည့် ဖာမ်းဝဲလ်သည် ဒစ်ဂျစ်တယ်ဝင်ပေါက်များ၊ အထွက်များနှင့်အတူ dynamic လက်ရှိကန့်သတ်ချက်နှင့် PWM အချက်ပြထုတ်လုပ်ခြင်းတို့ကို စီမံရန် STM32 ၏ စွမ်းဆောင်ရည်မြင့် MCU များကို အသုံးချသည်။ ၎င်းတွင် ပုံသေနှင့် အလှည့်ကျအခြေအနေများအတွက် မူဘောင်များ၊ ကြိုတင်စကေးတန်ဖိုးများသတ်မှတ်ခြင်းအတွက် မက်ခရိုများနှင့် GPIO ဆိပ်ကမ်းများနှင့် ပင်များအတွက် အဓိပ္ပါယ်ဖွင့်ဆိုချက်များ အပါအဝင် ပြည့်စုံသောဘုတ်ဖွဲ့စည်းပုံနှင့် ထိန်းချုပ်မှုပါရှိသည်။

အမျိုးမျိုးသော s ကိုထောက်ခံပါတယ်။ampတိုက်ရိုက်အသုံးပြု၍ အလွယ်တကူ စိတ်ကြိုက်ချဲ့ထွင်နိုင်ပြီး အလွယ်တကူ စိတ်ကြိုက်ချဲ့ထွင်နိုင်သည့် ဒစ်ဂျစ်တယ်ထည့်သွင်းမှု ကဲ့သို့သော အပလီကေးရှင်းများတွင် အသုံးပြုသည့် ကိစ္စများ။

API သည် မတူညီသောမုဒ်များတွင် ဘုတ်နှစ်ခုကို တစ်ပြိုင်နက်လည်ပတ်ရန်အတွက် ဖွဲ့စည်းမှုဆက်တင်များနှင့်အတူ ဒစ်ဂျစ်တယ်အဝင်/အထွက်ထိန်းချုပ်မှု၊ အမှားရှာဖွေတွေ့ရှိမှုနှင့် ဘုတ်အဖွဲ့အခြေအနေအပ်ဒိတ်များအတွက် ခိုင်ခံ့သောလုပ်ဆောင်ချက်များကို ပံ့ပိုးပေးပါသည်။ တိကျသော API လုပ်ဆောင်ချက်များသည် ဒစ်ဂျစ်တယ်အထွက်ချန်နယ်များအတွက် PWM အချက်ပြမှုများကို အစပြုခြင်း၊ စတင်ခြင်း၊ ရပ်တန့်ခြင်းနှင့် ပြင်ဆင်သတ်မှတ်ခြင်းတို့အတွက် ရနိုင်ပါသည်။

ဘုတ်အဖွဲ့ ပံ့ပိုးမှု ပက်ကေ့ချ်တွင် IPS1025H-32 နှင့် ချိတ်ဆက်ထားသော GPIO ပင်များကို ထိန်းချုပ်ရန်နှင့် စောင့်ကြည့်ရန် လုပ်ဆောင်ချက်များ ပါ၀င်ပြီး ဒစ်ဂျစ်တယ် အထီးကျန်စနစ်မှတစ်ဆင့် CLT03-2Q3 နှင့် ချိတ်ဆက်ထားသော GPIO ပင်များ၏ အခြေအနေကို ဖတ်ပါ။
STM32CubeIDE၊ IAR Systems နှင့် Keil® ကိရိယာများက ပံ့ပိုးပေးသော ဖွံ့ဖြိုးတိုးတက်မှုနှင့် အမှားရှာပြင်ခြင်းဆိုင်ရာ STM32CubeMX ပေါ်တွင် အခြေခံထားခြင်းနှင့် ပြင်ဆင်ခြင်းတို့ကို အခြေခံထားသည်။

ဗိသုကာပညာ
X-NUCLEO-ISO1A1 အတွက် ဆော့ဖ်ဝဲကို စနစ်၏ လုပ်ဆောင်ချက်အမျိုးမျိုးအတွက် တာဝန်ရှိသည့် တစ်ခုစီသည် သီးခြားလုပ်ဆောင်မှုဆိုင်ရာ ဘလောက်များစွာဖြင့် ခွဲခြားနိုင်သည်-

STMicroelectronics-UM3469-X-CUBE-ISO1-ဆော့ဖ်ဝဲ-တိုးချဲ့-2

  • ဘုတ်ဖွဲ့စည်းပုံနှင့် ထိန်းချုပ်မှု-
    • board_config.h file ပုံသေ သို့မဟုတ် အလှည့်ကျအခြေအနေများတွင် လုပ်ဆောင်ရန် သို့မဟုတ် နှစ်ခုလုံးအတွက် ဘုတ်ကို configure လုပ်ရန် macros ပါရှိသည်။ ၎င်းတွင် pre-scaler တန်ဖိုးများနှင့် GPIO port များနှင့် pins များအတွက် အဓိပ္ပါယ်ဖွင့်ဆိုချက်များလည်း ပါဝင်သည်။
    • ဤဘလောက်သည် ဘုတ်အဖွဲ့အား အလိုရှိသော လည်ပတ်မှုအခြေအနေများအတွက် မှန်ကန်စွာသတ်မှတ်ထားကြောင်းနှင့် လိုအပ်သော ဟာ့ဒ်ဝဲဖွဲ့စည်းပုံများအားလုံးကို နေရာချထားကြောင်း သေချာစေသည်။
  • လျှောက်လွှာအသုံးပြုမှုကိစ္စများ-
    • st_iso_app.h နှင့် st_iso_app.c fileဘုတ်အဖွဲ့၏ အမျိုးမျိုးသော လုပ်ဆောင်ချက်များကို စမ်းသပ်ရန် ဒီဇိုင်းထုတ်ထားသော အက်ပလီကေးရှင်းအသုံးပြုမှုကိစ္စများ ပါရှိသည်။
    • ဤအသုံးပြုမှုကိစ္စများတွင် ဒစ်ဂျစ်တယ်ထည့်သွင်းခြင်း ၊ အမှားရှာဖွေစစ်ဆေးခြင်း နှင့် PWM အချက်ပြထုတ်လုပ်ခြင်း တို့ ပါဝင်သည်။
    • Example configurations များသည် မတူညီသောမုဒ်များတွင် ဘုတ်နှစ်ခုကို တစ်ပြိုင်နက်လည်ပတ်ရန်အတွက် ထောက်ပံ့ပေးထားပြီး firmware ၏ စွယ်စုံရနှင့် လိုက်လျောညီထွေရှိမှုကို ပြသသည်။
  • API လုပ်ဆောင်ချက်များ-
    • iso1a1.h နှင့် iso1a1.c files သည် အမျိုးမျိုးသော လုပ်ဆောင်ချက်များကို ပံ့ပိုးရန် ပြည့်စုံသော APIs အစုံကို ပံ့ပိုးပေးသည်။
    • ဤ API များတွင် ဒစ်ဂျစ်တယ် အဝင်/အထွက် ထိန်းချုပ်မှု၊ အမှားရှာဖွေခြင်း နှင့် ဘုတ်အဖွဲ့ အခြေအနေ အပ်ဒိတ်များအတွက် လုပ်ဆောင်ချက်များ ပါဝင်သည်။
    • APIs များသည် ရိုးရှင်းပြီး အလိုလိုသိမြင်လာစေရန် ဒီဇိုင်းထုတ်ထားသောကြောင့် သုံးစွဲသူများအတွက် ဘုတ်အဖွဲ့နှင့် အပြန်အလှန်ဆက်သွယ်နိုင်ပြီး လိုအပ်သောလုပ်ဆောင်မှုများကို လုပ်ဆောင်ရန် လွယ်ကူစေသည်။
  • PWM အချက်ပြထိန်းချုပ်မှု-
    • pwm_api.h နှင့် pwm_api.c files တွင် PWM အချက်ပြထုတ်လုပ်ခြင်းဆိုင်ရာ သီးခြား API လုပ်ဆောင်ချက်များ ပါရှိသည်။
    • ဤလုပ်ဆောင်ချက်များသည် ဒစ်ဂျစ်တယ်အထွက်ချန်နယ်များအတွက် PWM အချက်ပြမှုများကို အစပြုခြင်း၊ စီစဉ်သတ်မှတ်ခြင်း၊ စတင်ခြင်းနှင့် ရပ်တန့်ခြင်းတို့ကို ခွင့်ပြုသည်။
    • PWM လုပ်ဆောင်ချက်သည် ပုံသေရွေးချယ်မှုမဟုတ်ပါ။ ဒါတွေကိုဖွင့်ဖို့အတွက် ဘုတ်အဖွဲ့ဖွဲ့စည်းပုံကို ပြင်ဆင်ပြီးပါပြီ။ အသေးစိတ်အချက်အလက်များအတွက် အပိုင်း 3.5- APIs ကို ကိုးကားပါ။
  • ဘုတ်အဖွဲ့ ပံ့ပိုးမှု ပက်ကေ့ချ်-
    • Board Support Package လည်း ပါဝင်ပါတယ်။ files သည် IPS1025H-32 နှင့် ချိတ်ဆက်ထားသော GPIO ပင်များကို ထိန်းချုပ်ခြင်းနှင့် စောင့်ကြည့်ခြင်းအတွက် CLT03-2Q3 နှင့် ချိတ်ဆက်ထားသော GPIO ပင်များ၏ အခြေအနေကို ဖတ်ခြင်း။
    • ips1025h_32.h နှင့် ips1025h_32.c files သည် IPS1025H-32 နှင့် ချိတ်ဆက်ထားသော GPIO pins များတွင် အမှားအယွင်းများကို သတ်မှတ်ရန်၊ ရှင်းလင်းရန်နှင့် ရှာဖွေရန် လုပ်ဆောင်ချက်များကို ပံ့ပိုးပေးပါသည်။
    • clt03_2q3.h နှင့် clt03_2q3.c files သည် CLT03-2Q3 နှင့် ချိတ်ဆက်ထားသော GPIO ပင်များ၏ အခြေအနေကို ဖတ်ရန် လုပ်ဆောင်ချက်များကို ပေးသည်။

သရုပ်ပြ firmware သည် စနစ်၏ စွမ်းဆောင်ရည်များကို ပြသရန်အတွက် ရိုးရှင်းသော အသုံးပြုမှုကိစ္စများကို လုပ်ဆောင်ပေးပါသည်။ ဤအသုံးပြုမှုကိစ္စများနှင့် အသုံးပြုသူ API များကို ချောမွေ့သောလုပ်ဆောင်ချက်နှင့် တိကျသောရလဒ်များရရှိစေရန်အတွက် ပေါင်းစပ်ထားသောပုံစံဖြင့် လုပ်ဆောင်ပါသည်။ ဗိသုကာလက်ရာကို အလွယ်တကူ ချဲ့ထွင်နိုင်စေရန် ဒီဇိုင်းထုတ်ထားပြီး အသုံးပြုသူများအား လုပ်ဆောင်ချက်အသစ်များနှင့် လိုအပ်သလို အသုံးပြုမှုကိစ္စများကို ထည့်သွင်းနိုင်စေမည်ဖြစ်သည်။ ဒစ်ဂျစ်တယ်စက်မှုလုပ်ငန်း IO များပါရှိသော ဘုတ်ပြားတစ်ခုအား အသုံးပြုရန်အတွက် မူရင်းဖွဲ့စည်းမှုပုံစံကို ပံ့ပိုးပေးထားသည်။ Jumper ဆက်တင်သည် ဇယား 2 တွင်ဖော်ပြထားသည့်အတိုင်း ပုံသေမုဒ်တွင်ရှိနေရန်လည်း လိုအပ်ပါသည်။ ဒစ်ဂျစ်တယ်ထည့်သွင်းသည့် Digital out mirroring (DIDO) သည် ပုံသေ firmware အပလီကေးရှင်းအသုံးပြုမှုကိစ္စရပ်ဖြစ်သည်။

ဖိုလ်ဖွဲ့စည်းပုံ

STMicroelectronics-UM3469-X-CUBE-ISO1-ဆော့ဖ်ဝဲ-တိုးချဲ့-3

အောက်ပါဖိုင်တွဲများကို ဆော့ဖ်ဝဲပက်ကေ့ချ်တွင် ထည့်သွင်းထားပါသည်။

  • စာရွက်စာတမ်းတွင် စုစည်းထားသော HTML ပါရှိသည်။ file ဆော့ဖ်ဝဲလ် အစိတ်အပိုင်းများနှင့် API များကို အသေးစိတ်ဖော်ပြသည့် အရင်းအမြစ်ကုဒ်မှ ထုတ်ပေးသည်။
  • ယာဉ်မောင်းများ ပါဝင်သည်-
    • STM32G0xx_HAL_Driver ဖိုင်တွဲခွဲများတွင် တည်ရှိသော STM32Cube HAL ဖိုင်တွဲ။ ဒါတွေ files သည် X-CUBE-ISO1 ဆော့ဖ်ဝဲလ်အတွက် သီးခြားမဟုတ်သော်လည်း STM32Cube မူဘောင်မှ တိုက်ရိုက်လာသောကြောင့် ဤနေရာတွင် ဖော်ပြမထားပါ။
    • Cortex® မိုက်ခရိုကွန်ထရိုလာဆော့ဖ်ဝဲ အင်တာဖေ့စ်စံပါဝင်သည့် CMSIS ဖိုင်တွဲ files လက်မောင်းမှ။ ဒါတွေ files သည် Cortex®-M ပရိုဆက်ဆာစီးရီးအတွက် ရောင်းချသူ-အမှီအခိုကင်းသော ဟာ့ဒ်ဝဲလ် abstraction အလွှာဖြစ်သည်။ ဤဖိုင်တွဲသည် STM32Cube မူဘောင်မှလည်း မပြောင်းလဲပါ။
    • IPS1025H-32 နှင့် CLT03-2Q3 နှင့် X-NUCLEO-ISO1A1 နှင့်ဆက်စပ်သော APIs အစိတ်အပိုင်းများအတွက် ကုဒ်များပါရှိသော BSP ဖိုင်တွဲ။
  • အပလီကေးရှင်းတွင် main.c ပါ၀င်သော အသုံးပြုသူဖိုင်တွဲပါရှိသည်။ fileအပလီကေးရှင်းအသုံးပြုမှုကိစ္စ၊ file, st_iso_app.c နှင့် board_config.h fileNUCLEO-G071RB ပလပ်ဖောင်းအတွက် ထောက်ပံ့ပေးသည်။

BSP ဖိုင်တွဲ
X-CUBE-ISO1 ဆော့ဖ်ဝဲလ်သည် မတူညီသော အစိတ်အပိုင်းနှစ်ခုကို အသုံးပြုသည်။ files၊ BSP/Components အတွင်းပါရှိသော-

IPS1025
ips1025h_32.h နှင့် ips1025h_32.c files သည် pins အားလုံးကို ထိန်းချုပ်ရန်နှင့် ချို့ယွင်းချက်များကို ရှာဖွေခြင်းအတွက် ပြီးပြည့်စုံသော လုပ်ဆောင်နိုင်စွမ်း အပါအဝင် IPS1025H-32 နှင့် ချိတ်ဆက်ထားသော GPIO pins များအတွက် ပြည့်စုံသော driver အကောင်အထည်ဖော်မှုကို ပံ့ပိုးပေးပါသည်။ ဒါတွေ files စက်ပစ္စည်းကို အစပြုခြင်း၊ ချန်နယ်အခြေအနေကို သတ်မှတ်ခြင်းနှင့် ရှင်းလင်းခြင်း၊ ချွတ်ယွင်းမှုအခြေအနေများကို ရှာဖွေခြင်းနှင့် PWM လုပ်ဆောင်ချက်ကို စီမံခန့်ခွဲခြင်းတို့အတွက် လုပ်ဆောင်ချက်များကို အကောင်အထည်ဖော်ပါ။ ယာဉ်မောင်းသည် ချန်နယ်တစ်ခုချင်း သို့မဟုတ် အုပ်စုတစ်ခုအတွက် ပြီးပြည့်စုံသောစွမ်းရည်များဖြင့် စက်များနှင့် ချန်နယ်များစွာကို ပံ့ပိုးပေးသည်။

CLT03
clt03_2q3.h နှင့် clt03_2q3.c files CLT03-2Q3 နှင့် ချိတ်ဆက်ထားသော GPIO pins များအတွက် အင်္ဂါရပ်အပြည့်ရှိသော ဒရိုက်ဘာကို အကောင်အထည်ဖော်ပြီး pin state အားလုံးကိုဖတ်ရန် ပြီးပြည့်စုံသောစွမ်းရည်များပါရှိသည်။ ယာဉ်မောင်းသည် စက်ပစ္စည်းကို အစပြုရန်၊ ချန်နယ်တစ်ခုချင်းစီ၏ အခြေအနေအား ဖတ်ပြရန်နှင့် ချန်နယ်အားလုံးအတွက် အခြေအနေအချက်အလက်များကို တစ်ပြိုင်နက်ရယူရန် လုပ်ဆောင်ချက်များကို ပံ့ပိုးပေးပါသည်။ ၎င်းသည် များစွာသော စက်ဖွဲ့စည်းပုံများကို ပံ့ပိုးပေးပြီး ထိရောက်သော ချန်နယ်စီမံခန့်ခွဲမှုအတွက် အတွင်းပိုင်းအခြေအနေကို ထိန်းသိမ်းထားသည်။

X-CUBE-ISO1 ဆော့ဖ်ဝဲလ် API များကို အဓိကအရင်းအမြစ်နှစ်ခုအဖြစ် ပိုင်းခြားထားသည်။ files၊ ISO1A1 ဖိုင်တွဲခွဲအတွင်း ရှိသည်-

ISO1A1
ISO1A1 fileဘုတ်အဖွဲ့ဖွဲ့စည်းပုံဖွဲ့စည်းပုံ၊ အစိတ်အပိုင်းအပြန်အလှန်တုံ့ပြန်မှုနှင့် အမှားအယွင်းစီမံခန့်ခွဲမှုအတွက် ဒီဇိုင်းထုတ်ထားသည့် ပြည့်စုံသော API လုပ်ဆောင်ချက်အစုံကို လွှမ်းခြုံထားသည်။ ဤလုပ်ဆောင်ချက်များသည် စာဖတ်ခြင်းနှင့် စာရေးခြင်းလုပ်ငန်းများကို လွယ်ကူချောမွေ့စေပြီး အမှားအယွင်းရှာဖွေတွေ့ရှိခြင်းနှင့် အပ်ဒိတ်များကို လွယ်ကူချောမွေ့စေပြီး မူလ API လုပ်ဆောင်ချက်များကို ပံ့ပိုးရန် အထောက်အကူပေးသည့် အသုံးဝင်မှုများ အမျိုးမျိုးပါဝင်သည်။ ထို့ အပြင်၊ files သည် LED ထိန်းချုပ်မှု၊ GPIO ကနဦးလုပ်ဆောင်မှု၊ အနှောက်အယှက်ဖြစ်စေသော ကိုင်တွယ်မှုနှင့် UART ဆက်သွယ်ရေးအတွက် လုပ်ဆောင်နိုင်စွမ်းကို ပေးသည်။

PWM API
PWM API သည် PWM အချက်ပြမှုများကို အစပြုခြင်း၊ ပြင်ဆင်ခြင်း၊ စတင်ခြင်းနှင့် ရပ်တန့်ခြင်းအတွက် လုပ်ဆောင်ချက်များကို ပံ့ပိုးပေးပါသည်။ ၎င်းသည် သတ်မှတ်ထားသော timer pins အတွက် PWM ကြိမ်နှုန်းနှင့် တာဝန်စက်ဝန်းကို သတ်မှတ်ပေးကာ PWM လည်ပတ်မှုများကို တိကျစွာ ထိန်းချုပ်နိုင်စေပါသည်။

လျှောက်လွှာဖိုင်တွဲ
Application folder တွင် main ပါရှိသည်။ fileheaders နှင့် source အပါအဝင် firmware အတွက် လိုအပ်ပါသည်။ file၎။ အောက်တွင်ဖော်ပြထားသောအသေးစိတ်ဖော်ပြချက်ဖြစ်ပါသည်။ fileဤဖိုင်တွဲတွင် s-

  • board_config.h- ဘုတ်အတွက် ဖွဲ့စည်းမှု မက်ခရို။
  • main.c: ပင်မပရိုဂရမ် (ex ၏ကုဒ်ampISO1A1 အတွက် စာကြည့်တိုက်ကို အခြေခံထားသည့် le)။
  • st_iso_app.c- ဘုတ်အဖွဲ့စမ်းသပ်ခြင်းနှင့် ဖွဲ့စည်းမှုပုံစံအတွက် အက်ပ်လီကေးရှင်းလုပ်ဆောင်ချက်များ။
  • stm32g0xx_hal_msp.c- HAL အစပြုခြင်း လုပ်ရိုးလုပ်စဉ်များ။
  • stm32g0xx_it.c- ကြားဖြတ်ကိုင်တွယ်သူ။
  • syscalls.c- စနစ်ခေါ်ဆိုမှု အကောင်အထည်ဖော်မှုများ။
  • sysmem.c- စနစ်မှတ်ဉာဏ်စီမံခန့်ခွဲမှု။
  • system_stm32g0xx.c- စနစ်စတင်ခြင်း။

Software အရင်းအမြစ်များ လိုအပ်သည်။
Nucleo ကိရိယာသည် GPIO များမှတစ်ဆင့် X-NUCLEO-ISO1A1 ဘုတ်အဖွဲ့နှင့် ဆက်သွယ်သည်။ ၎င်းသည် X-NUCLEO-ISO1A1 ဘုတ်တွင်ပါရှိသော စက်မှု IO စက်ပစ္စည်းများ၏ အဝင်၊ အထွက်နှင့် အမှားအယွင်းများကို ထောက်လှမ်းရန်အတွက် GPIO အများအပြားကို အသုံးပြုရန်လိုအပ်သည်။ အသေးစိတ်အချက်အလက်များနှင့် jumper configurations များအတွက် ဟာ့ဒ်ဝဲအသုံးပြုသူလက်စွဲ UM3483 ကို ကိုးကားပါ။

ဘုတ်ဖွဲ့စည်းပုံ (board_config.h)
board_config.h file board configuration အရ software ကို configure လုပ်ရန်အတွက် အသုံးပြုထားသော အရင်းအမြစ်များနှင့် configurational macro ကို သတ်မှတ်သည်။ ၎င်းသည် ပျဉ်ပြားနှစ်ခုအထိ ကိုင်တွယ်နိုင်သည် (ဥပမာ ဘုတ်ပြားနှစ်ချပ်)။
ဆော့ဖ်ဝဲလ်၏ DEFAULT ဖွဲ့စည်းမှုပုံစံသည် ပုံသေအနေအထားများတွင် ၎င်း၏ jumpers များဖြင့် X-NUCLEO-ISO1A1 တိုးချဲ့ဘုတ်နှင့် ချိန်ညှိထားသည်။ ၎င်း၏ မူရင်းဆက်တင်တွင် X-NUCLEO-ISO1A1 အတွက် ဆော့ဖ်ဝဲကို ပြင်ဆင်သတ်မှတ်ရန်၊ BOARD_ID_DEFAULT မက်ခရိုကို board_config.h တွင် မှတ်ချက်မပေးဘဲ file.

ဆော့ဖ်ဝဲ ALTERNATE ဖွဲ့စည်းမှုပုံစံကို board_config.h တွင် BOARD_ID_ALTERNATE မက်ခရိုကို မှတ်ချက်မပေးဘဲ သတ်မှတ်ပေးခြင်းဖြင့် သတ်မှတ်သည် file ဘုတ်ပေါ်ရှိ jumper ရာထူးများကို ပြောင်းလဲပါ။
ဘုတ်နှစ်ခုကို အစုအစည်းပုံစံဖွဲ့စည်းမှုတွင် တစ်ပြိုင်နက်အသုံးပြုရန်၊ BOARD_ID_DEFAULT နှင့် BOARD_ID_ALTERNATE မက်ခရိုနှစ်ခုလုံးကို မှတ်ချက်မပေးဘဲ ဘုတ်တစ်ခု၏ jumpers များသည် ပုံသေအနေအထားတွင်ရှိပြီး နောက်တစ်ခုသည် အလှည့်ကျအနေအထားတွင်ရှိကြောင်း သေချာပါစေ။ ဘုတ်နှစ်ခုလုံးသည် တူညီသောဖွဲ့စည်းပုံတွင်ရှိခြင်း (ပုံသေတွင်ဖြစ်စေ သို့မဟုတ် နှစ်မျိုးလုံးအတွက်ဖြစ်စေ) သည် မထောက်ခံပါ၊ မလိုလားအပ်သောအပြုအမူများဖြစ်ပေါ်လာနိုင်သည်ကို သတိပြုပါ။
ဘုတ်တစ်ခုသာလည်ပတ်သည့်အခါ၊ ဆော့ဖ်ဝဲသည် တစ်ခုတည်းသောဖွဲ့စည်းပုံအတွက် စီစဉ်သတ်မှတ်ထားကြောင်း သေချာစေပြီး အခြားဖွဲ့စည်းပုံနှင့်သက်ဆိုင်သည့် မက်ခရိုကို မှတ်ချက်ပေးထားသည်။

STMicroelectronics-UM3469-X-CUBE-ISO1-ဆော့ဖ်ဝဲ-တိုးချဲ့-4

ကြေးကြို
သင့်လျော်သော မက်ခရိုများကို သတ်မှတ်ခြင်းဖြင့် PWM အထွက်အတွက် မတူညီသော ကြိမ်နှုန်းအကွာအဝေးများကို ရရှိရန်အတွက် board_config.h တွင် ကြိုတင်စကေးချဲ့သည့်တန်ဖိုးများကို ကျွန်ုပ်တို့ configure လုပ်နိုင်ပါသည်။ ကြိုတင်စကေးတန်ဖိုးကို အသုံးပြုရန် သက်ဆိုင်ရာ မက်ခရိုကို မှတ်ချက်မပေးဘဲ အခြားသူများကို မှတ်ချက်ပေးပါ။ မူရင်းအားဖြင့်၊ DEFAULT_PRESCALAR ကို အသုံးပြုသည်။

  • PRESCALER_1
  • PRESCALER_2
  • DEFAULT_PRESCALER

တိုင်မာများကို အသုံးပြုနေချိန်တွင်သာ ကြိုတင်စကေးတန်ဖိုးများကို အသုံးပြုပြီး အခြေခံ I/O လုပ်ဆောင်ချက်အတွက် မလိုအပ်ပါ။ pre-scalar macro ၏ တန်ဖိုးများနှင့် ၎င်းတို့၏ သက်ဆိုင်ရာ ကြိမ်နှုန်းအပိုင်းအခြားများကို ကုဒ်စာရွက်စာတမ်းများတွင် သို့မဟုတ် ကုဒ်ကိုယ်တိုင် ကြည့်ရှုနိုင်ပါသည်။

နှလုံးခုန် LED
ကျွန်ုပ်တို့သည် NUCLEO-G071RB ဘုတ်သို့ သင့်လျော်သောချိတ်ဆက်မှုအတွက် စမ်းသပ်မှုအဖြစ် နှလုံးခုန်ပုံစံဖြင့် မျက်တောင်ခတ်ရန် အစိမ်းရောင်အသုံးပြုသူ LED၊ D7 ကို ပြင်ဆင်သတ်မှတ်နိုင်ပါသည်။ မှတ်ချက်မပေးသည့်အခါ HEARTBEAT_LED မက်ခရိုသည် NUCLEO နှင့်ချိတ်ဆက်သောအခါတွင် X-NUCLEO-ISO1A1 ရှိ အစိမ်းရောင် LED ကိုမှိတ်တုတ်မှိတ်တုတ်ပြသည်။ အချိန်ကို တိုင်မာများဖြင့် ဂရုစိုက်ခြင်းဖြင့် ၎င်းသည် 1 စက္ကန့်နှင့် 2 စက္ကန့်ကြာ ပိတ်နေပါသည်။ ၎င်းကို အသုံးမပြုပါက သို့မဟုတ် LEDs များပါ၀င်သည့် လုပ်ဆောင်ချက်တစ်ခုခုကို ခေါ်သည့်အခါ၊ မက်ခရိုကို မှတ်ချက်မပေးသင့်ပါ။

GPIO ဖွဲ့စည်းမှုပုံစံ ထည့်သွင်းခြင်းနှင့် ထုတ်ပေးခြင်း။
X-NUCLEO-ISO1A1 ဘုတ်တစ်ခုစီတွင် အဝင်ပေါက်နှစ်ခုနှင့် အထွက်ပေါက်နှစ်ခုပါရှိသည်။ X-NUCLEO-ISO1A1 ဘုတ်နှစ်ခုကို တစ်ခုနှင့်တစ်ခု ထိပ်တွင် တန်းစီထားခြင်းဖြင့် ဘုတ်အဖွဲ့၏ စွမ်းဆောင်ရည်များကို ချဲ့ထွင်နိုင်ကာ ဒစ်ဂျစ်တယ် အဝင်ပေါက်လေးခုနှင့် ဒစ်ဂျစ်တယ် အထွက်ပေါက် လေးခုတို့ကို အသုံးပြုနိုင်သည်။ ပံ့ပိုးပေးထားသည့်ဆော့ဖ်ဝဲလ်တွင် ကျယ်ကျယ်ပြန့်ပြန့်ဖတ်ရှုရန်၊ ဆက်တင်နှင့် ဆိပ်ကမ်းများကို ရှင်းလင်းပေးသည့် API များ ပါဝင်သည်။ ထို့အပြင်၊ API များသည် port အားလုံးကို တစ်ပြိုင်နက်တည်း ဆက်တင်၊ ဖတ်ခြင်း သို့မဟုတ် ရှင်းလင်းခြင်းအတွက် ခွင့်ပြုပေးသည်။ API လုပ်ဆောင်ချက်များနှင့်ပတ်သက်သော အသေးစိတ်အချက်အလက်များကို ကုဒ်စာတမ်းပြုစုခြင်းအပြင် ဤစာရွက်စာတမ်း၏ API ကဏ္ဍတွင် ရရှိနိုင်ပါသည်။

STMicroelectronics-UM3469-X-CUBE-ISO1-ဆော့ဖ်ဝဲ-တိုးချဲ့-5

ဤနေရာတွင် ရှေ့ဆက် DI သည် ဒစ်ဂျစ်တယ် အဝင်ပေါက်ကို ညွှန်ပြပြီး DO သည် ဒစ်ဂျစ်တယ် အထွက်ပေါက်ကို ညွှန်ပြသည်။ အစားထိုးဖွဲ့စည်းမှုအတွက်၊ ဆော့ဖ်ဝဲသည် ပူးတွဲပါရှိသော _alt နောက်ဆက်တွဲဖြင့် တူညီသောအမည်ပေးသည့်သဘောတူညီချက်များကို အသုံးပြုသည်။
အောက်ပါဇယားသည် IO port အမျိုးမျိုးနှင့်သက်ဆိုင်သည့်ဆော့ဖ်ဝဲလ်တွင်သတ်မှတ်ထားသော GPIO မက်ခရိုကိုအသေးစိတ်ဖော်ပြသည်-

ဇယား 2။ ပုံသေနှင့် အခြားဆော့ဖ်ဝဲဖွဲ့စည်းပုံများအတွက် ခွဲဝေပေးထားသည့် GPIO များ

နာမည် လုပ်ဆောင်ချက် ပုံသေဖွဲ့စည်းမှု အလှည့်ကျဖွဲ့စည်းမှု
ပင်နံပါတ် ထည့်သွင်းပါ။ ထည့်သွင်းရန် ပင်နံပါတ် ၁ GPIOC၊ IA0_IN_1_PIN GPIOD၊ IA0_IN_1_PIN
ထည့်သွင်းရန် ပင်နံပါတ် ၁ GPIOD၊ IA1_IN_2_PIN GPIOC၊ IA1_IN_1_PIN
ပင်နံပါတ်ကို ထုတ်ပါ။ အထွက် ပင်နံပါတ် ၁ GPIOC၊ QA0_CNTRL_1_PIN GPIOD၊ QA0_CNTRL_1_PIN
အထွက် ပင်နံပါတ် ၁ GPIOC၊ QA1_CNTRL_2_PIN GPIOC၊ QA1_CNTRL_2_PIN
မှားယွင်းသော ပင်နံပါတ် ပြတ်ရွေ့ pin ၁ GPIOC၊ FLT1_QA0_2_OT_PIN GPIOD၊ FLT1_QA0_1_OT_PIN
ပြတ်ရွေ့ pin ၁ GPIOC၊ FLT2_QA0_2_OL_PIN GPIOD၊ FLT2_QA0_1_OL_PIN
ပြတ်ရွေ့ pin ၁ GPIOC၊ FLT1_QA1_2_OT_PIN GPIOC၊ FLT1_QA1_1_OT_PIN
ပြတ်ရွေ့ pin ၁ GPIOC၊ FLT2_QA1_1_OL_PIN GPIOD၊ FLT2_QA1_2_OL_PIN
ပြင်ဆင်မှု MACRO BOARD_ID_DEFAULT BOARD_ID_ALTERNATE

Timers နှင့် PWM
သတ်မှတ်ထားသော pins အတွက် PWM အချက်ပြမှုများကို ထုတ်လုပ်ရန်အတွက် တိုင်မာများကို X-CUBE-ISO1 Firmware တွင် အသုံးပြုနိုင်သည်။ မူရင်းအားဖြင့်၊ Timers များသည် TIM3 မှလွဲ၍ အစပျိုးခြင်းမဟုတ်ပါ။ PWM အချက်ပြမှုများကို မထုတ်ပေးမီ သက်ဆိုင်ရာ timers များကို ကနဦးစတင်သင့်ပြီး သက်ဆိုင်ရာ output port များကို PWM မုဒ်တွင် စတင်လုပ်ဆောင်ရပါမည်။
ပုံမှန် GPIO အဝင်/အထွက် လုပ်ဆောင်ချက်များအတွက်၊ ပုံမှန်အားဖြင့် ၎င်းကို ဂရုစိုက်သောကြောင့် မည်သည့် timer သို့မဟုတ် output port ကိုမဆို configure လုပ်ရန် မလိုအပ်ပါ။ သို့သော်လည်း၊ အထွက် pin များကို PWM မုဒ်တွင် သတ်မှတ်ပြီးသည်နှင့်၊ ၎င်းတို့ကို GPIO ပင်များအဖြစ် အသုံးပြုရန်အတွက် ၎င်းတို့ကို GPIO မုဒ်တွင် ပြန်လည်ပြင်ဆင်ရန် လိုအပ်ပါသည်။

မှတ်ချက် - PWM မျိုးဆက်အတွက် အထွက် pins များကို အသုံးပြုသောအခါ၊ GPIO အထွက်ကို ပိတ်လိုက်သည်၊ လုပ်ဆောင်ချက် နှစ်ခုလုံးကို တပြိုင်နက် အကောင်အထည် ဖော်နိုင်မည် မဟုတ်ပါ။ PWM အသုံးပြုပြီးနောက် GPIO ကို ပြန်လည်ဖွင့်ရန်၊ တစ်ဦးသည် GPIO အပေါက်နှင့် ပင်နံပါတ်တစ်ခုဖြင့် ဆိပ်ကမ်းအားလုံးကို တပ်ဆင်ရန်အတွက် API လုပ်ဆောင်ချက် ST_ISO_BoardConfigureDefault() သို့မဟုတ် ST_ISO_InitGPIO() ကို ခေါ်ဆိုနိုင်ပါသည်။

အထက်တွင်ဖော်ပြခဲ့သည့်အတိုင်း၊ ဆော့ဖ်ဝဲသည် သုံးစွဲသူ LED အချိန်ချိန်ခြင်း၊ နာရီနှင့် UART အချိန်ကိုက်ခြင်းအကောင်အထည်ဖော်မှုအတွက် အသုံးပြုသည့် TIM3 ကို ပုံသေအားဖြင့် အချိန်တိုင်းကိရိယာတစ်ခုကိုလည်း အသုံးပြုပါသည်။ ၎င်းကို ပုံမှန်အားဖြင့် 1 စက္ကန့်ကြာအောင် စီစဉ်သတ်မှတ်ထားသည်။
အောက်ပါဇယားတွင် ကျွန်ုပ်တို့၏ကုဒ်ရှိ ပင်တစ်ခုစီအတွက် ရနိုင်သော အချိန်တိုင်းကိရိယာများကို အသေးစိတ်ဖော်ပြထားသည်-

ဇယား 3။ ပင်တစ်ခုစီအတွက် တိုင်မာများ ရနိုင်ပါသည်။

ပင်အမည် Software ကိုယ်စားပြုမှု အချိန်တိုင်း တိုင်မာချန်နယ် အစားထိုးလုပ်ဆောင်ချက်
QA0_CNTRL_1_PIN QA_0 TIM2 TIM_CHANNEL_4 GPIO_AF2_TIM2
QA1_CNTRL_2_PIN QA_1 TIM1 TIM_CHANNEL_3 GPIO_AF2_TIM1
QA0_CNTRL_2_PIN QA_0_ALT TIM1 TIM_CHANNEL_4 GPIO_AF2_TIM1
QA1_CNTRL_1_PIN QA_1_ALT TIM17 TIM_CHANNEL_1 GPIO_AF2_TIM17

Firmware ၏နောက်ထပ်အသုံးဝင်မှုများ
Firmware တွင် X-NUCLEO-ISO1A1 အကဲဖြတ်ဘုတ်၏ လုပ်ဆောင်နိုင်စွမ်းကို မြှင့်တင်ရန် နောက်ထပ် အသုံးဝင်မှုများ ပါဝင်သည်။ အချို့ကို အောက်တွင် ဖော်ပြထားပါသည်။

UART
UART ဆက်သွယ်ရေးအင်္ဂါရပ်သည် TeraTerm၊ PuTTY နှင့် အခြားအလားတူ အပလီကေးရှင်းများကဲ့သို့သော PC utilities များမှတစ်ဆင့် ဘုတ်အခြေနေကို အချိန်နှင့်တစ်ပြေးညီ စောင့်ကြည့်စစ်ဆေးခြင်းနှင့် အမှားရှာပြင်ခြင်းအတွက် ခွင့်ပြုပေးပါသည်။ ဆော့ဖ်ဝဲလ်သည် NUCLEO-G071RB ဘုတ်တွင်ရှိသော UART မှတဆင့် UART ဒေတာ ထုတ်လွှင့်မှုကို လုပ်ဆောင်ပေးသည်။ `ST_ISO_UART` လုပ်ဆောင်ချက်သည် စနစ်ဖွင့်ချိန်၊ ဖာမ်းဝဲလ်ဖွဲ့စည်းပုံနှင့် အမှားအယွင်းအခြေအနေများအပါအဝင် UART တွင် အသေးစိတ်ဘုတ်အဖွဲ့အခြေအနေအချက်အလက်ကို ပေးပို့သည်။ ဒီအချက်က ဖြစ်နိုင်ပါတယ်။ viewTeraTerm ကဲ့သို့သော မည်သည့် serial port အပလီကေးရှင်းကိုမဆို အသုံးပြု၍ ed ။ `ST_ISO_APP_DIDOandUART` လုပ်ဆောင်ချက်သည် ဒစ်ဂျစ်တယ် အဝင်/အထွက် လုပ်ဆောင်ချက်များကို UART ဆက်သွယ်ရေးနှင့် ပေါင်းစပ်ပြီး သတ်မှတ်ထားသော အကွာအဝေးတွင် အဝင်နှင့် အထွက်ချန်နယ်များအားလုံး၏ အခြေအနေကို ထုတ်လွှင့်သည်။ အောက်တွင် configuration settings နှင့် as များဖြစ်သည်။ampTeraTerm တွင် ဒေတာပေါ်လာပုံ။ အသုံးပြုနေသည့် စနစ်နှင့် အမှတ်စဉ် ပို့တ်ပေါ်မူတည်၍ ဆိပ်ကမ်းအမည်သည် ကွဲပြားနိုင်သည်။

STMicroelectronics-UM3469-X-CUBE-ISO1-ဆော့ဖ်ဝဲ-တိုးချဲ့-6

STMicroelectronics-UM3469-X-CUBE-ISO1-ဆော့ဖ်ဝဲ-တိုးချဲ့-7

IO ပင်မုဒ် ဖွဲ့စည်းမှု
IO pin မုဒ် ဖွဲ့စည်းမှုစနစ် အသုံးဝင်မှုသည် အသုံးပြုသူများအား ST_ISO_BoardConfigure() လုပ်ဆောင်ချက်ကို အသုံးပြု၍ ဘုတ်၏ အဝင်နှင့် အထွက်ပေါက်များကို သတ်မှတ်ခွင့်ပြုသည်။ ဤလုပ်ဆောင်ချက်သည် အထွက်ပေါက်ပေါက်နှစ်ခု (QA0၊ QA1) နှင့် အဝင်ပေါက်နှစ်ခု (IA0၊ IA1) အား အဝင်/အထွက်မုဒ်၊ PWM အထွက်မုဒ် သို့မဟုတ် နှောင့်ယှက်ထည့်သွင်းမှုမုဒ်သို့ ပံ့ပိုးပေးပါသည်။ ဘောင်များကို ချိန်ညှိပြီး ဤလုပ်ဆောင်ချက်ကို ခေါ်ဆိုခြင်းဖြင့်၊ အသုံးပြုသူများသည် သီးခြားလိုအပ်ချက်များနှင့် ကိုက်ညီရန် ဘုတ်အဖွဲ့၏ IO ဖွဲ့စည်းမှုပုံစံကို အလွယ်တကူ စိတ်ကြိုက်ပြင်ဆင်နိုင်သည်။

အဝင်/အထွက်မုဒ်တွင်၊ အသုံးဝင်မှုသည် အထွေထွေရည်ရွယ်ချက် ဒစ်ဂျစ်တယ်လုပ်ဆောင်ချက်များအတွက် GPIO ပင်များကို အစပြုသည်။ PWM အထွက်မုဒ်တွင်၊ တိကျသော PWM အချက်ပြထိန်းချုပ်မှုအတွက် အချိန်တိုင်းကိရိယာကို တပ်ဆင်ပေးသည်။ Interrupt input mode တွင်ရှိသည့်အခါ၊ utility သည် တုံ့ပြန်မှု event-driven programming ကို ခွင့်ပြုပေးသည့် interrupts များကို ကိုင်တွယ်ရန် ပင်များကို configure လုပ်သည်။

ကိုင်တွယ်မှုကို အနှောင့်အယှက်ပေးသည်။
FAULT အချက်ပြမှုများကို ကိုင်တွယ်ရန်အတွက်၊ ဆော့ဖ်ဝဲလ်သည် တုံ့ပြန်မှုဖြစ်စဉ်-မောင်းနှင်သည့် ပရိုဂရမ်များကို ခွင့်ပြုပေးသည့် ဆက်စပ်ကြားဖြတ်လိုင်းများကို ဖွင့်ပေးသည်။ စိတ်ကြိုက်ကိုင်တွယ်သူသည် ဤကြားဖြတ်မှုများနှင့် ဆက်စပ်နိုင်ပါသည်။
API တွင် သတ်မှတ်ထားသော HAL_GPIO_EXTI_Rising_Callback လုပ်ဆောင်ချက်။ ဆော့ဖ်ဝဲလ်တွင် ST_ISO_BoardConfigure လုပ်ဆောင်ချက်မှတစ်ဆင့် GPIO ပင်နံပါတ်များကို အနှောက်အယှက်ဖြစ်စေသည့်မုဒ်တွင် အစပြုခြင်းနှင့် EXTI IRQ လက်ကိုင်ကိရိယာများတွင် သီးခြားလုပ်ဆောင်ချက်များကို ပုံဖော်ခြင်းစသည့် အင်္ဂါရပ်များ ပါဝင်သည်။ ၎င်းသည် အသုံးပြုသူများအား ဘုတ်အဖွဲ့မှ ပြင်ပဖြစ်ရပ်များကို တုံ့ပြန်ပုံအား စိတ်ကြိုက်ပြင်ဆင်နိုင်စေပြီး အမျိုးမျိုးသော အမှားအယွင်းအခြေအနေများနှင့် အစပျိုးမှုများကို ထိထိရောက်ရောက် စီမံခန့်ခွဲနိုင်ကြောင်း သေချာစေပါသည်။

API များ
X-CUBE-ISO1 ဆော့ဖ်ဝဲလ် API သည် X-NUCLEO-ISO1A1 ဘုတ်အား PWM အချက်ပြထုတ်လုပ်ခြင်းနှင့် GPIO လုပ်ဆောင်ချက်များအပါအဝင် X-NUCLEO-ISO1A1 ဘုတ်အဖွဲ့အား ထိန်းချုပ်ရန်နှင့် စောင့်ကြည့်ရန် ပြည့်စုံသောလုပ်ဆောင်ချက်များကို ပံ့ပိုးပေးပါသည်။ API ကို အသုံးပြုရလွယ်ကူပြီး ဘုတ်အဖွဲ့၏လုပ်ဆောင်နိုင်စွမ်းအပေါ် လိုက်လျောညီထွေရှိပြီး ထိန်းချုပ်မှုပေးစွမ်းနိုင်စေရန် အမျိုးမျိုးသောအပလီကေးရှင်းများတွင် ပေါင်းစည်းရန် ဒီဇိုင်းထုတ်ထားသည်။

X-CUBE-ISO1 ဆော့ဖ်ဝဲ API ကို BSP/ISO1A1 ဖိုင်တွဲတွင် သတ်မှတ်ထားသည်။ ၎င်း၏လုပ်ဆောင်ချက်များကို ST_ISO ဖြင့် ရှေ့ဆက်ထားသည်။ iso1a1.c နှင့် pwm_api.c မှတဆင့် အပလီကေးရှင်းများ မြင်နိုင်သော API files သည် ကိန်းသေများ၊ ဒေတာဖွဲ့စည်းပုံများနှင့် လုပ်ဆောင်ချက်များ ပေါင်းစပ်မှုဖြစ်သည်။
Sample firmware အပလီကေးရှင်းများသည် ဤလုပ်ဆောင်ချက်များ၏ ဖြစ်နိုင်ချေရှိသော အသုံးပြုမှုများကို ပြသရန် ဤ API များကို အသုံးပြုသည်။

X-CUBE-ISO1 ဆော့ဖ်ဝဲလ်ပက်ကေ့ဂျ်သည် API နှစ်စုံကို ပံ့ပိုးပေးသည်-

  • ISO1A1 API
  • PWM API

ISO1A1 API
ISO1A1 API ကို iso1a1.h နှင့် iso1a1.c တွင် သတ်မှတ်ထားသည်။ file၎။ ၎င်းသည် GPIO အဝင်/အထွက် လုပ်ဆောင်ချက်များနှင့် အမှားရှာဖွေခြင်း အပါအဝင် ISO1A1 ဘုတ်အဖွဲ့အား ပြင်ဆင်သတ်မှတ်ခြင်းနှင့် ထိန်းချုပ်ရန် လုပ်ဆောင်ချက်များကို ပံ့ပိုးပေးသည်။

အဓိကလုပ်ဆောင်ချက်များ

  • ST_ISO_BoardConfigureDefault- ဘုတ်အဖွဲ့၏ IO အပေါက်များကို မူရင်း GPIO ဖွဲ့စည်းမှုဖြင့် စီစဉ်သတ်မှတ်သည်။
  • ST_ISO_BoardConfigure- ဘုတ်အဖွဲ့အတွက် အဝင်နှင့် အထွက်ပေါက်များ ၏မုဒ်ကို သတ်မှတ်ပေးသည်။
  • ST_ISO_BoardInit- ဘုတ်ဟာ့ဒ်ဝဲကို အစပြုသည်။
  • ST_ISO_BoardMapInit- ချန်နယ်ကို ကိုင်တွယ်ဖွဲ့စည်းမှုပုံစံကို အခြေခံ၍ ဘုတ်အဖွဲ့၏ လုပ်ဆောင်နိုင်စွမ်းကို စတင်သည်။
  • ST_ISO_GetFWVersion- လက်ရှိ firmware ဗားရှင်းကို ပြန်ပေးသည်။
  • ST_ISO_GetChannelHandle- သတ်မှတ်ထားသောချန်နယ်အမည်အတွက် ချန်နယ်လက်ကိုင်ကို ထုတ်ယူသည်။
  • ST_ISO_InitGPIO- သတ်မှတ်ထားသော GPIO ပင်ကို ပေးထားသော module ID ဖြင့် အစပြုသည်။
  • ST_ISO_InitInitInterrupt- သတ်မှတ်ထားသော GPIO ပင်ကို အနှောက်အယှက်အဖြစ် ပေးထားသည့် မော်ဂျူး ID ဖြင့် စတင်သည်။
  • ST_ISO_EnableFaultInterrupt- ပြတ်တောက်နေသော GPIO ပင်များကို ကြားဖြတ်မုဒ်တွင် စတင်လုပ်ဆောင်သည်။
  • ST_ISO_SetChannelStatus- သတ်မှတ်ထားသောချန်နယ်တစ်ခု၏ အခြေအနေကို သတ်မှတ်သည်။
  • ST_ISO_SetOne_DO- ဒစ်ဂျစ်တယ် အထွက်ချန်နယ် တစ်ခုတည်းကို သတ်မှတ်သည်။
  • ST_ISO_ClearOne_DO- ဒစ်ဂျစ်တယ် အထွက်ချန်နယ် တစ်ခုတည်းကို ရှင်းလင်းသည်။
  • ST_ISO_WriteAllChannels- ဒစ်ဂျစ်တယ် အထွက်ချန်နယ်များအားလုံးသို့ ဒေတာကို ရေးသားသည်။
  • ST_ISO_GetOne_DI- ဒစ်ဂျစ်တယ်ထည့်သွင်းသည့်ချန်နယ်တစ်ခု၏ အခြေအနေကို ရယူသည်။
  • ST_ISO_ReadAllChannel- ထည့်သွင်းချန်နယ်အားလုံး၏ အခြေအနေကို ဖတ်သည်။
  • ST_ISO_ReadAllOutputChannel- အထွက်ချန်နယ်အားလုံး၏ အခြေအနေကို ဖတ်သည်။
  • ST_ISO_ReadFaultStatus- ချို့ယွင်းချက်ရှာဖွေခြင်း ပို့တ်များအားလုံးမှ အမှားအယွင်းအခြေအနေကို ဖတ်သည်။
  • ST_ISO_ReadFaultStatusPolling- မဲရုံမုဒ်တွင် ဘုတ်များ၏ ချို့ယွင်းချက်ရှာဖွေခြင်းကို စမ်းသပ်သည်။
  • ST_ISO_DisableOutputChannel- ထိုချန်နယ်အတွက် အထွက်ကို ပိတ်ပါ။
  • ST_ISO_UpdateBoardStatusInfo- ဘုတ်အဖွဲ့အခြေအနေ အချက်အလက်ကို အပ်ဒိတ်လုပ်သည်။
  • ST_ISO_UpdateFaultStatus- သီးခြားချန်နယ်တစ်ခုအတွက် အမှားအယွင်းအခြေအနေကို အပ်ဒိတ်လုပ်သည်။
  • ST_ISO_BlinkLed- သတ်မှတ်ထားသော LED ကို နှောင့်နှေးမှုတစ်ခုဖြင့် မှိတ်တုတ်ပြပြီး ထပ်ခါတလဲလဲ ရေတွက်ပါ။
  • ST_ISO_UART- UART မှ ဘုတ်အဖွဲ့ အခြေအနေ အချက်အလက်ကို ပေးပို့သည်။
  • ST_ISO_SwitchInit- ခလုတ်အစိတ်အပိုင်းများကို စတင်လုပ်ဆောင်သည်။
  • ST_ISO_SwitchDeInit- switch instance ကို de-initialize လုပ်သည်။
  • ST_ISO_DigitalInputInit- ဒစ်ဂျစ်တယ်ထည့်သွင်းမှု အစိတ်အပိုင်းများကို စတင်လုပ်ဆောင်သည်။
  • ST_ISO_DigitalInputDeInit- ဒစ်ဂျစ်တယ်ထည့်သွင်းမှု စံနှုန်းကို ဖျက်သိမ်းသည်။

PWM API
PWM API ကို pwm_api.h နှင့် pwm_api.c တွင် သတ်မှတ်ထားသည်။ file၎။ ၎င်းသည် သတ်မှတ်ထားသော pins အတွက် PWM အချက်ပြမှုများကို စတင်ရန်နှင့် ထိန်းချုပ်ရန်အတွက် အောက်ပါလုပ်ဆောင်ချက်များကို ပံ့ပိုးပေးပါသည်။

  • ST_ISO_Init_PWM_Signal- တိုင်မာများနှင့် PWM အချက်ပြမှုအတွက် သီးခြားပင်နံပါတ်ကို စတင်လုပ်ဆောင်သည်။
  • ST_ISO_Set_PWM_Frequency- သတ်မှတ်ထားသော ပင်အတွက် PWM ကြိမ်နှုန်းကို သတ်မှတ်သည်။
  • ST_ISO_Set_PWM_Duty_Cycle- သတ်မှတ်ထားသော ပင်အတွက် PWM တာဝန်စက်ဝန်းကို သတ်မှတ်သည်။
  • ST_ISO_Start_PWM_Signal- သတ်မှတ်ထားသော ပင်နံပါတ်ပေါ်တွင် PWM အချက်ပြမှုကို စတင်သည်။
  • ST_ISO_Stop_PWM_Signal- သတ်မှတ်ထားသော ပင်နံပါတ်ပေါ်ရှိ PWM အချက်ပြမှုကို ရပ်သည်။

သက်ဆိုင်ရာချန်နယ်တစ်ခုတွင် PWM အချက်ပြမှုတစ်ခုစတင်ရန် ဦးစွာ ST_ISO_Init_PWM_Signal လုပ်ဆောင်ချက်ကိုခေါ်ဆိုပါ၊ ထို့နောက် ST_ISO_Set_PWM_Frequency ကိုခေါ်ဆိုခြင်းဖြင့် အလိုရှိသောကြိမ်နှုန်းနှင့် တာဝန်စက်ဝန်းကို သတ်မှတ်၍ လည်းကောင်း၊
ST_ISO_Set_PWM_Duty_Cycle လုပ်ဆောင်ချက်များကို အသီးသီးလုပ်ဆောင်ပြီးနောက် ST_ISO_Start_PWM_Signal လုပ်ဆောင်ချက်ကိုခေါ်ဆိုပြီး ST_ISO_Stop_PWM_Signal ကိုခေါ်ဆိုခြင်းဖြင့် ရပ်ခြင်းဖြင့် PWM အချက်ပြမှုကို စတင်နိုင်ပါသည်။

ဇယား 3 တွင်ဖော်ပြထားသောအသေးစိတ်အချက်အလက်များကိုသက်ဆိုင်ရာပင်အမည်နှင့်ရရှိနိုင်သည့်အချိန်တိုင်းကိရိယာများဖြင့်ခေါ်ဆိုရန်လိုအပ်သည်။ မတူညီသောအထွက်ချန်နယ်များကို မတူညီသောကြိမ်နှုန်းများနှင့် တာဝန်လည်ပတ်မှုများဖြင့်သတ်မှတ်နိုင်သည်။ ပြောင်းလဲနေသောကြိမ်နှုန်း သို့မဟုတ် တာဝန်စက်ဝန်းသည် အခြားတစ်ဖက်ကို မထိခိုက်စေပါ၊ ၎င်းသည် အတူတူပင်ဖြစ်ပါသည်။
အသုံးပြုသူရရှိနိုင်သည့် API များအကြောင်း အသေးစိတ်နည်းပညာအချက်အလက်များကို စုစည်းထားသော HTML တွင် တွေ့ရှိနိုင်ပါသည်။ file လုပ်ဆောင်ချက်များနှင့် ကန့်သတ်ချက်များအားလုံးကို အပြည့်အစုံဖော်ပြထားသည့် ဆော့ဖ်ဝဲပက်ကေ့ခ်ျ၏ “စာရွက်စာတမ်းပြုစုခြင်း” ဖိုဒါအတွင်းတွင် တည်ရှိသည်။

လျှောက်လွှာဖော်ပြချက်
သရုပ်ပြအက်ပလီကေးရှင်းသည် ရိုးရှင်းသောအသုံးပြုမှုများစွာကို လုပ်ဆောင်သည်။ st_iso_app နှင့် board_config fileဘုတ်အဖွဲ့နှင့် ၎င်း၏ အပလီကေးရှင်းလုပ်ဆောင်ချက်များကို တည်ထောင်ခြင်းနှင့် အသုံးပြုခြင်းတွင် အရေးကြီးသော အခန်းကဏ္ဍမှ ပါဝင်ပါသည်။ ဤလုပ်ဆောင်ချက်များကို အသုံးမပြုမီ ဘုတ်အဖွဲ့နှင့် ဆော့ဖ်ဝဲ၏ဖွဲ့စည်းပုံများသည် တစ်ခုနှင့်တစ်ခု ထပ်တူကျကြောင်း သေချာပါစေ။

အပလီကေးရှင်းလုပ်ဆောင်ချက်များ (st_iso_app.h နှင့် st_iso_app.c)
အပလီကေးရှင်းလုပ်ဆောင်ချက်များကို ST_ISO_APP မှ ရှေ့ဆက်ထားသည်။ ၎င်းတို့သည် ၎င်းတို့၏ အကောင်အထည်ဖော်မှုအတွက် API လုပ်ဆောင်ချက်များကို ခေါ်ဝေါ်သည့် သုံးစွဲသူမှ မြင်နိုင်သော ထိပ်တန်းအဆင့်လုပ်ဆောင်ချက်များဖြစ်သည်။ အပလီကေးရှင်းလုပ်ဆောင်ချက်များကို main.c တွင် ခေါ်နိုင်သည်။ file သူတို့ရဲ့လုပ်ဆောင်ချက်တွေအတွက်။

  • ဖြစ်ရပ်ရွေးချယ်မှုကို အသုံးပြုပါ- အသုံးပြုသူသည် st_iso_app.c တွင် လိုချင်သောအသုံးပြုမှု မက်ခရိုကို မှတ်ချက်ပေးနိုင်ပါသည်။ file. main.c တွင် ခေါ်သော ST_ISO_APP_SelectUseCaseMacro() လုပ်ဆောင်ချက်သည် ၎င်းကို အသုံးပြုသည့်ကိစ္စရပ်ကို အစပြုပြီး ST_ISO_APP_SelectedFunction() လုပ်ဆောင်ချက်သည် ၎င်းကို main.c တွင် အကောင်အထည်ဖော်သည်။ ဤချဉ်းကပ်မှုသည် ရွေးချယ်ထားသောအသုံးပြုမှုကိစ္စအပေါ်အခြေခံ၍ သင့်လျော်သောလုပ်ဆောင်နိုင်စွမ်းကို အကောင်အထည်ဖော်ကြောင်းသေချာစေခြင်းဖြင့် macro အဓိပ္ပါယ်ဖွင့်ဆိုချက်များကို ရိုးရှင်းစွာမွမ်းမံခြင်းဖြင့် လုပ်ငန်းလည်ပတ်မှုမုဒ်ကို လွယ်ကူသောပုံစံဖွဲ့စည်းမှုပြုလုပ်နိုင်စေပါသည်။ ပုံမှန်အားဖြင့်၊ အသုံးပြုမှုကိစ္စ DIDO ကို ရွေးချယ်ထားပြီး၊ အသုံးပြုသူသည် ၎င်းကို အကောင်အထည်ဖော်ရန် ကုဒ်ကို အပြောင်းအလဲပြုလုပ်ရန် မလိုအပ်ပါ။
  • Digital Output Mirroring သို့ Digital Input to Digital Input Mirroring (ST_ISO_APP_UsecaseDIDO)- ဤလုပ်ဆောင်ချက်သည် input ချန်နယ်များအားလုံး၏ အခြေအနေကို ဖတ်ပြီး အထွက်ချန်နယ်အားလုံးသို့ တူညီသော အခြေအနေကို ရေးပေးသည်။ ဒစ်ဂျစ်တယ် သွင်းအားစုများကို ဒစ်ဂျစ်တယ် အထွက်များသို့ ထင်ဟပ်စေခြင်းအတွက် ၎င်းသည် အသုံးဝင်သည်။
  • UART (ST_ISO_APP_DIDOandUART) ဖြင့် ဒစ်ဂျစ်တယ်အဝင်အား ဒစ်ဂျစ်တယ်အထွက်ကြေးမုံပြန်ခြင်း- ဤလုပ်ဆောင်ချက်သည် ST_ISO_APP_UsecaseDIDO လုပ်ဆောင်ချက်ကဲ့သို့ ဒစ်ဂျစ်တယ်အဝင်များကို ဒစ်ဂျစ်တယ်အထွက်များအဖြစ် ထင်ဟပ်စေသည်။ ထို့အပြင်၊ ၎င်းသည် Nucleo စက်ပစ္စည်းပေါ်ရှိ UART interface မှတဆင့် board status ကို ပေးပို့ပြီး အခြေအနေကို ခွင့်ပြုပေးပါသည်။ viewTera Term ကဲ့သို့သော အပလီကေးရှင်းများကို အသုံးပြု၍ နံပါတ်စဉ်အပေါက်တွင် ed လုပ်ထားသည်။
  • Test Case Function (ST_ISO_APP_TestCase): ဤလုပ်ဆောင်ချက်သည် ဘုတ်အဖွဲ့ဖွဲ့စည်းပုံအပေါ်အခြေခံ၍ စမ်းသပ်မှုများနှင့် လုပ်ဆောင်ချက်များကို ဆက်တိုက်လုပ်ဆောင်သည်။ ၎င်းသည် အမှားအယွင်းအခြေအနေကို စစ်ဆေးပေးကာ ဒစ်ဂျစ်တယ်ထည့်သွင်းသည့်ချန်နယ်နှစ်ခု၏ အခြေအနေကိုဖတ်ကာ ၎င်းတို့၏တန်ဖိုးများအပေါ်အခြေခံ၍ လုပ်ဆောင်ချက်များကို လုပ်ဆောင်သည်။ ဤလုပ်ဆောင်ချက်သည် ဘုတ်အဖွဲ့၏ စွမ်းဆောင်ရည်နှင့် လုပ်ဆောင်နိုင်စွမ်းကို လျင်မြန်စွာ အကဲဖြတ်ပြီး မတူညီသော LED ပုံစံများဖြင့် အမြင်အာရုံတုံ့ပြန်ချက်ရယူရာတွင် ကူညီပေးပါသည်။ board_config.h ရှိ HEARTBEAT_LED မက်ခရိုကို သေချာပါစေ။ file သင့်လျော်သော LED ပုံစံများကို စောင့်ကြည့်ရန် မှတ်ချက်ပေးထားသည်။
  • PWM မျိုးဆက် (ST_ISO_APP_PWM _OFFSET): ဤလုပ်ဆောင်ချက်သည် ကြိမ်နှုန်း 1 Hz နှင့် တာဝန်လည်ပတ်မှု 50% ဖြင့် အထွက်ချန်နယ်နှစ်ခုလုံးတွင် PWM အချက်ပြမှုကို စတင်သည်။ ၎င်းသည် PWM အချက်ပြမှုကို အစပြုပြီး ကြိမ်နှုန်းနှင့် တာဝန်စက်ဝန်းကို သတ်မှတ်ကာ သတ်မှတ်ထားသော ဘုတ် ID အတွက် PWM အချက်ပြမှုကို စတင်သည်။ PWM အချက်ပြမှုကို ချန်နယ်နှစ်ခုကြားရှိ အော့ဖ်ဆက်တစ်ခုဖြင့် ထုတ်ပေးသောကြောင့် ၎င်းတို့သည် အဆင့်တွင်မပါဝင်ပါ။
  • Fault Detection Test (ST_ISO_APP_FaultTest)- ဤလုပ်ဆောင်ချက်သည် smart output module IPS1025 ၏ inbuilt diagnostic pins များကို မော်တာဖြင့် အကဲဖြတ်သည်။ မဲရုံ သို့မဟုတ် နှောင့်ယှက်သည့်မုဒ်တွင် ဖြစ်စေ၊ ၎င်းသည် အမှားရှာဖွေခြင်းမုဒ်ကို စီစဉ်သတ်မှတ်ပေးသည်၊ အမှားရှာဖွေတွေ့ရှိမှုကို အစပြုကာ ရွေးချယ်ထားသည့်မုဒ်အပေါ် အခြေခံ၍ အမှားအယွင်းအခြေအနေတည်ဆောက်ပုံကို အပ်ဒိတ်လုပ်သည်။ ချို့ယွင်းချက်များကို ထိရောက်စွာရှာဖွေပြီး ကိုင်တွယ်ခြင်းဖြင့် ဘုတ်အဖွဲ့၏ ယုံကြည်စိတ်ချရမှုနှင့် ဘေးကင်းမှုကို သေချာစေရန် ဤလုပ်ဆောင်ချက်သည် အရေးကြီးပါသည်။ ၎င်းသည် မဲရုံမုဒ်တွင် ရှိနေသောအခါ၊ အချိန်တိုင်းကိရိယာ၏အကူအညီဖြင့် အမှားအယွင်းအခြေအနေကို စက္ကန့်တိုင်း အပ်ဒိတ်လုပ်ကာ ဖွဲ့စည်းပုံ defaultBoardFaultStatus သို့မဟုတ် alternateBoardFaultStatus တွင် ထင်ဟပ်နေပါသည်။ ၎င်းသည် နှောင့်ယှက်သည့်မုဒ်တွင် ရှိနေသည့်အခါ၊ အမှားအယွင်း အခြေအနေကို အပ်ဒိတ်လုပ်ပြီးမှသာ သက်ဆိုင်ရာ အထွက်ပေါက်ကို ရှင်းလင်းရန် ဆော့ဖ်ဝဲလ်ကို အစပျိုးစေသည်။
  • PWM ကွဲလွဲမှုစမ်းသပ်ခြင်း (ST_ISO_APP_PwmVariationTest)- ဤလုပ်ဆောင်ချက်သည် ဘုတ်ဖွဲ့စည်းမှုပုံစံအပေါ် အခြေခံ၍ မတူညီသော အထွက်ချန်နယ်များပေါ်တွင် PWM (Pulse Width Modulation) အချက်ပြမှုများကို စမ်းသပ်ရန် ဒီဇိုင်းပြုလုပ်ထားသည်။ ၎င်းသည် default နှင့် alternate board configuration နှစ်ခုလုံးအတွက် PWM အချက်ပြမှုများကို အစပြုကာ ၎င်းတို့၏ကြိမ်နှုန်းကို 100 Hz နှင့် ကနဦးတာဝန်လည်ပတ်မှု 0% သို့ သတ်မှတ်ပေးသည်။ ထို့နောက် လုပ်ဆောင်ချက်သည် 0% မှ 100% သို့ 5% တိုးကာ ဂျူတီစက်ဝန်းကို ကွဲပြားစေပြီး 100% မှ 0% သို့ 5% အလျှော့အတင်းလုပ်ကာ အဆင့်တစ်ခုစီကြား 2 စက္ကန့်နှောင့်နှေးမှုဖြင့် ပြန်သွားပါသည်။ ဤထိန်းချုပ်ထားသော ကွဲလွဲမှုသည် ပုံသေဘုတ်အတွက် QA_0 နှင့် QA_1 ချန်နယ်များပေါ်တွင် PWM အချက်ပြအမူအကျင့်ကို စောင့်ကြည့်အကဲဖြတ်နိုင်စေရန်နှင့် အစားထိုးဘုတ်အတွက် QA_0_ALT နှင့် QA_1_ALT တို့ကို ခွင့်ပြုပေးပါသည်။

ဤဖွဲ့စည်းပုံများကို လိုက်နာပြီး ပေးထားသော အက်ပ်လုပ်ဆောင်ချက်များကို အသုံးချခြင်းဖြင့်၊ သင်သည် အမျိုးမျိုးသော သရုပ်ပြအသုံးပြုမှုကိစ္စများအတွက် X-NUCLEO-ISO1A1 ဘုတ်အား ထိထိရောက်ရောက် စနစ်ထည့်သွင်းပြီး အသုံးပြုနိုင်ပါသည်။

စနစ်ထည့်သွင်းခြင်းလမ်းညွှန်

Hardware ၏ရှင်းလင်းချက်

STM32 Nucleo ပလပ်ဖောင်း
STM32 Nucleo ဖွံ့ဖြိုးတိုးတက်ရေးဘုတ်များသည် သုံးစွဲသူများအတွက် တတ်နိုင်သောနှင့် လိုက်လျောညီထွေရှိသော နည်းလမ်းတစ်ခုဖြစ်ပြီး STM32 မိုက်ခရိုကွန်ထရိုးလိုင်းဖြင့် ရှေ့ပြေးပုံစံများကို ဖန်တီးပေးပါသည်။
Arduino® ချိတ်ဆက်မှု ပံ့ပိုးမှု နှင့် ST morpho ချိတ်ဆက်မှုများသည် ရွေးချယ်ရန် အထူးပြုတိုးချဲ့ဘုတ်များ အများအပြားဖြင့် STM32 Nucleo အဖွင့်ဖွံ့ဖြိုးရေးပလပ်ဖောင်း၏ လုပ်ဆောင်နိုင်စွမ်းကို လွယ်ကူစွာ ချဲ့ထွင်နိုင်စေပါသည်။

STM32 Nucleo ဘုတ်သည် ST-LINK/V2-1 debugger/programmer တို့ကို ပေါင်းစပ်ထားသောကြောင့် သီးခြား probes မလိုအပ်ပါ။
STM32 Nucleo board သည် စုံလင်သော STM32 ဆော့ဖ်ဝဲလ် HAL စာကြည့်တိုက်နှင့်အတူ ထုပ်ပိုးထားသော ဆော့ဖ်ဝဲလ်ဟောင်းများနှင့်အတူ ပါရှိသည်။amples

STMicroelectronics-UM3469-X-CUBE-ISO1-ဆော့ဖ်ဝဲ-တိုးချဲ့-8

STM32 Nucleo ဘုတ်နှင့် ပတ်သက်သည့် အချက်အလက်ကို တွင် ရရှိနိုင်ပါသည်။ www.st.com/stm32nucleo

X-NUCLEO-ISO1A1 တိုးချဲ့ဘုတ်
X-NUCLEO-ISO1A1 သည် STM32 Nucleo ဘုတ်အား ချဲ့ထွင်ပြီး micro-PLC လုပ်ဆောင်နိုင်စွမ်းကို ပံ့ပိုးပေးရန်အတွက် ဒီဇိုင်းထုတ်ထားသော သီးခြားစက်မှုအဝင်/အထွက်ပါရှိသော အကဲဖြတ်ဘုတ်တစ်ခုဖြစ်သည်။ X-NUCLEO-ISO1A1 ဘုတ်နှစ်ခုကို STM32 Nucleo ဘုတ်၏ထိပ်တွင် GPIO အင်တာဖေ့စ်များတွင် ပဋိပက္ခမဖြစ်စေရန် တိုးချဲ့ဘုတ်ပေါ်ရှိ jumpers များကို သင့်လျော်သောရွေးချယ်မှုဖြင့် တွဲထားနိုင်သည်။ UL1577 အသိအမှတ်ပြု ဒစ်ဂျစ်တယ် အထီးကျန်များ STISO620 နှင့် STISO621 တို့သည် ယုတ္တိဗေဒနှင့် လုပ်ငန်းစဉ်ဘေးထွက် အစိတ်အပိုင်းများကြားတွင် သီးခြားခွဲထုတ်ခြင်းကို ပေးပါသည်။ လုပ်ငန်းစဉ်ဘက်မှ လက်ရှိကန့်သတ်ထားသော high-side inputs နှစ်ခုကို CLT03-2Q3 မှတဆင့် နားလည်သည်။ CLT03-2Q3 သည် IEC61000-4-2၊ IEC61000-4-4 နှင့် IEC61000-4-5 ကဲ့သို့သော စံချိန်စံညွှန်းများနှင့်ပြည့်မီရန် ဒီဇိုင်းထုတ်ထားသော စက်မှုအခြေအနေများအတွက် အကာအကွယ်၊ အထီးကျန်မှုနှင့် စွမ်းအင်နည်းပါးသောအခြေအနေညွှန်ပြမှုကို ပေးပါသည်။ High-side switches တစ်ခုစီတွင် IPS1025H-32/HQ-32 သည် ရောဂါရှာဖွေမှုများနှင့် စမတ်ကျကျမောင်းနှင်မှုအင်္ဂါရပ်များဖြင့် 5.6 A အထိ ကာကွယ်ထားသော output ကို ပေးပါသည်။ ၎င်းတို့သည် capacitive၊ resistive သို့မဟုတ် inductive load များကို မောင်းနှင်နိုင်သည်။ X-NUCLEO-ISO1A1 သည် X-CUBE-ISO1 ဆော့ဖ်ဝဲလ်ပက်ကေ့ခ်ျကို အသုံးပြု၍ onboard IC များကို လျင်မြန်စွာ အကဲဖြတ်နိုင်စေပါသည်။

STMicroelectronics-UM3469-X-CUBE-ISO1-ဆော့ဖ်ဝဲ-တိုးချဲ့-9

ဟာ့ဒ်ဝဲတပ်ဆင်မှု
အောက်ပါ ဟာ့ဒ်ဝဲ အစိတ်အပိုင်းများ လိုအပ်သည် ။

  1. STM32 Nucleo ဖွံ့ဖြိုးတိုးတက်ရေး ပလပ်ဖောင်းတစ်ခု (အကြံပြုထားသော အော်ဒါကုဒ်- NUCLEO-GO71RB)
  2. စက်မှုဒစ်ဂျစ်တယ်အထွက် တိုးချဲ့ဘုတ်တစ်ခု (မှာယူမှုကုဒ်- X-NUCLEO-ISO1A1)
  3. STM32 Nucleo ကို PC သို့ချိတ်ဆက်ရန် USB အမျိုးအစား A မှ Micro USB ကြိုးတစ်ခု
  4. X-NUCLEO-ISO1A1 တိုးချဲ့ဘုတ်အား ထောက်ပံ့ရန်အတွက် ပြင်ပပါဝါထောက်ပံ့မှု (24 V) နှင့် ဆက်စပ်ဝါယာကြိုးများ။

ဆော့ဖ်ဝဲထည့်သွင်းခြင်း။
X-NUCLEO-ISO1A1 တိုးချဲ့ဘုတ်ပါရှိသော STM32 Nucleo အတွက် အပလီကေးရှင်းများ ဖန်တီးရန်အတွက် သင့်လျော်သော ဖွံ့ဖြိုးတိုးတက်မှုပတ်ဝန်းကျင်ကို သတ်မှတ်ရန် အောက်ပါဆော့ဖ်ဝဲ အစိတ်အပိုင်းများကို လိုအပ်သည်-

  • X-CUBE-ISO1- X-NUCLEO-ISO1A1 ဘုတ်ကို အသုံးပြုရန်လိုအပ်သည့် အပလီကေးရှင်းဖွံ့ဖြိုးတိုးတက်မှုအတွက် ရည်ညွှန်းထားသော STM32Cube အတွက် တိုးချဲ့မှုတစ်ခု။ X-CUBE-ISO1 Firmware နှင့် ဆက်စပ်စာရွက်စာတမ်းများကို တွင်ရနိုင်သည်။ www.st.com
  • Development toolchain နှင့် Compiler- STM32Cube တိုးချဲ့ဆော့ဖ်ဝဲသည် အောက်ပါပတ်ဝန်းကျင်သုံးခုကို ပံ့ပိုးပေးသည်-
    • ARM® (IAR-EWARM) toolchain အတွက် IAR Embedded Workbench
    • အစစ်အမှန်View Microcontroller Development Kit (MDK-ARM-STM32) toolchain
    • STM32CubeIDE

ဘုတ်တပ်ဆင်ခြင်း။
ဟာ့ဒ်ဝဲအသုံးပြုသူလက်စွဲ (UM3483) တွင် ဖော်ပြထားသည့်အတိုင်း ဘုတ်အဖွဲ့အား သင့်လျော်သော jumper ဆက်တင်များဖြင့် ပြင်ဆင်သတ်မှတ်ရပါမည်။ ဤလမ်းညွှန်ချက်များကို ဂရုတစိုက်လိုက်နာခြင်းသည် သင့်လျော်သောလုပ်ဆောင်နိုင်စွမ်းကိုသေချာစေရန်နှင့် ဖြစ်လာနိုင်သောပြဿနာများကိုရှောင်ရှားရန် မရှိမဖြစ်လိုအပ်ပါသည်။

စနစ်ထည့်သွင်းခြင်းလမ်းညွှန်
ဤအပိုင်းတွင် STM32 Nucleo ၊ NUCLEO-G071RB ဘုတ်ပေါ်တွင် အက်ပလီကေးရှင်းကို မတီထွင်မီတွင် မတူညီသော ဟာ့ဒ်ဝဲအစိတ်အပိုင်းများကို မည်သို့တပ်ဆင်ရမည်ကို ဖော်ပြထားပါသည်။

STMicroelectronics-UM3469-X-CUBE-ISO1-ဆော့ဖ်ဝဲ-တိုးချဲ့-10

STMicroelectronics-UM3469-X-CUBE-ISO1-ဆော့ဖ်ဝဲ-တိုးချဲ့-11

X-CUBE-ISO1 တိုးချဲ့ပက်ကေ့ချ်အတွက် စနစ်ထည့်သွင်းပါ။
သင်ဘုတ်အဖွဲ့ကိုလည်ပတ်နေသည့်ဖွဲ့စည်းပုံအပေါ်မူတည်၍ X-NUCLEO-ISO1A1 သည် သီးခြား jumper ရာထူးများနှင့် configure လုပ်ရပါမည်။ ဟာ့ဒ်ဝဲလက်စွဲစာအုပ်တွင် မည်သည့်အသေးစိတ်အချက်အလက်များကို ကျွန်ုပ်တို့ ဆက်လက်ကြည့်ရှုနိုင်မည်နည်း။

  • အဆင့် ၁။ X-NUCLEO-ISO1A1 တိုးချဲ့ဘုတ်အား morphoConnectors မှတစ်ဆင့် STM32 Nucleo ၏ထိပ်တွင် ပလပ်ထိုးပါ။
    တစ်ခုနှင့်တစ်ခုအပေါ်တွင် ဘုတ်နှစ်ခုကို အသုံးပြုပါက ပုံ 11 တွင် ပါသည့်အတိုင်း စည်းပါ။
  • အဆင့် ၁။ STM32 Nucleo ဘုတ်အား USB ကြိုးဖြင့် PC သို့ USB ချိတ်ဆက်ကိရိယာ CN1 မှတစ်ဆင့် ချိတ်ဆက်ပါ။
  • အဆင့် ၁။ J1 ကို 24V DC ပါဝါထောက်ပံ့မှုသို့ ချိတ်ဆက်ခြင်းဖြင့် X-NUCLEO-ISO1A1 တိုးချဲ့ဘုတ်(များ)ကို ပါဝါဖွင့်ပါ။ stacked boards ကိုအသုံးပြုပါက၊ ဘုတ်နှစ်ခုလုံးအား ပါဝါဖြစ်ကြောင်းသေချာပါစေ။
  • အဆင့် ၁။ သင်နှစ်သက်သော toolchain ( Keil မှ MDK-ARM၊ IAR မှ EWARM သို့မဟုတ် STM32CubeIDE) ကိုဖွင့်ပါ။
  • အဆင့် ၁။ ဆော့ဖ်ဝဲလ်ပရောဂျက်ကိုဖွင့်ပြီး board_config.h သို့ လိုအပ်သောပြောင်းလဲမှုများ ပြုလုပ်ပါ။ file အသုံးပြုနေသောဘုတ်(များ)၏ဖွဲ့စည်းပုံအရ။
  • အဆင့် ၁။ st_iso_app.c တွင် သင့်လျော်သော အသုံးပြုပုံ macro ကို သတ်မှတ်ပါ။ file သို့မဟုတ် main.c ရှိ ST_ISO_APP_SelectUseCase လုပ်ဆောင်ချက်ကို အသုံးပြု၍ လိုအပ်သော အသုံးပြုမှုကိစ္စအား ခေါ်ဆိုပါ။ file တခြား လိုချင်တဲ့ function တစ်ခုခုနဲ့ အတူ။
  • အဆင့် ၁။ အားလုံးကို စုစည်းရန် ပရောဂျက်ကို တည်ဆောက်ပါ။ files နှင့် STM32 Nucleo board ၏ memory ထဲသို့ စုစည်းထားသောကုဒ်ကို တင်ပါ။
  • အဆင့် ၁။ STM32 Nucleo ဘုတ်ပေါ်တွင် ကုဒ်ကိုဖွင့်ပြီး မျှော်လင့်ထားသည့် အပြုအမူကို စစ်ဆေးပါ။

ပြန်လည်ပြင်ဆင်မှုမှတ်တမ်း
ဇယား ၁။ စာရွက်စာတမ်း ပြန်လည်ပြင်ဆင်မှုမှတ်တမ်း

ရက်စွဲ ပြန်လည်ပြင်ဆင်ခြင်း။ အပြောင်းအလဲများ
14-မေ-2025 1 ကနဦး ထုတ်ဝေမှု။

အရေးကြီးသတိပေးချက် - ဂရုတစိုက်ဖတ်ပါ။

STMicroelectronics NV နှင့် ၎င်း၏လုပ်ငန်းခွဲများ (“ST”) သည် ST ထုတ်ကုန်များနှင့်/သို့မဟုတ် ဤစာရွက်စာတမ်းအား အသိပေးခြင်းမရှိဘဲ အပြောင်းအလဲများ၊ ပြုပြင်မှုများ၊ မြှင့်တင်မှုများ၊ ပြုပြင်မွမ်းမံမှုများနှင့် တိုးတက်မှုများကို အချိန်မရွေးပြုလုပ်ရန် လက်ဝယ်ရှိသည်။ အမှာစာမတင်မီ ဝယ်ယူသူများသည် ST ထုတ်ကုန်များဆိုင်ရာ နောက်ဆုံးရသက်ဆိုင်ရာအချက်အလက်များကို ရယူသင့်ပါသည်။ ST ထုတ်ကုန်များကို အမှာစာလက်ခံသည့်အချိန်တွင် ST ၏ရောင်းချမှုစည်းမျဉ်းစည်းကမ်းများနှင့်အညီ ရောင်းချပါသည်။

ဝယ်ယူသူများသည် ST ထုတ်ကုန်များ၏ ရွေးချယ်မှု၊ ရွေးချယ်မှုနှင့် အသုံးပြုမှုအတွက် တစ်ခုတည်းတွင် တာဝန်ရှိပြီး ST သည် လျှောက်လွှာအကူအညီ သို့မဟုတ် ဝယ်ယူသူများ၏ ထုတ်ကုန်ဒီဇိုင်းအတွက် တာဝန်မရှိဟု ယူဆပါသည်။
ဤနေရာတွင် ST မှ ပေးအပ်သည့် မည်သည့်ဉာဏပစ္စည်းမူပိုင်ခွင့်ကိုမဆို လိုင်စင်၊ ဖော်ပြခြင်း သို့မဟုတ် အဓိပ္ပာယ်ဖွင့်ဆိုထားခြင်းမရှိပါ။
ဤနေရာတွင်ဖော်ပြထားသော အချက်အလက်များနှင့် ကွဲပြားသော ပြဋ္ဌာန်းချက်များရှိသော ST ထုတ်ကုန်များကို ပြန်လည်ရောင်းချခြင်းသည် ထိုထုတ်ကုန်အတွက် ST မှပေးသော အာမခံတစ်စုံတစ်ရာကို ပျက်ပြယ်စေမည်ဖြစ်သည်။

ST နှင့် ST လိုဂိုများသည် ST ၏ကုန်အမှတ်တံဆိပ်များဖြစ်သည်။ ST အမှတ်တံဆိပ်များအကြောင်း နောက်ထပ်အချက်အလက်များအတွက် www.st.com/trademarks တွင် ဖတ်ရှုပါ။ အခြားထုတ်ကုန် သို့မဟုတ် ဝန်ဆောင်မှုအမည်များအားလုံးသည် ၎င်းတို့၏ သက်ဆိုင်ရာပိုင်ရှင်များ၏ ပိုင်ဆိုင်မှုဖြစ်သည်။
ဤစာရွက်စာတမ်းရှိ အချက်အလက်ကို အစားထိုးပြီး ဤစာရွက်စာတမ်း၏ ယခင်ဗားရှင်းတစ်ခုခုတွင် ယခင်က ပေးခဲ့သည့် အချက်အလက်များကို အစားထိုးသည်။
© 2025 STMicroelectronics - အခွင့်အရေးအားလုံးကို လက်ဝယ်ရှိသည်။

စာရွက်စာတမ်းများ / အရင်းအမြစ်များ

STMicroelectronics UM3469 X-CUBE-ISO1 ဆော့ဖ်ဝဲလ် ချဲ့ထွင်ခြင်း။ [pdf] အသုံးပြုသူလက်စွဲ
X-NUCLEO-ISO1A1၊ NUCLEO-G071RB၊ UM3469 X-CUBE-ISO1 ဆော့ဖ်ဝဲ ချဲ့ထွင်မှု၊ UM3469၊ X-CUBE-ISO1 ဆော့ဖ်ဝဲလ် ချဲ့ထွင်မှု၊ ဆော့ဖ်ဝဲ ချဲ့ထွင်မှု

ကိုးကား

မှတ်ချက်တစ်ခုချန်ထားပါ။

သင့်အီးမေးလ်လိပ်စာကို ထုတ်ပြန်မည်မဟုတ်ပါ။ လိုအပ်သောအကွက်များကို အမှတ်အသားပြုထားသည်။ *