ST logosu

STMicroelectronics UM3469 X-CUBE-ISO1 Yazılım Genişletmesi

STMicroelectronics-UM3469-X-CUBE-ISO1-Yazılım-Genişletmesi

giriiş

STM1Cube için X-CUBE-ISO32 genişletme yazılım paketi, STM32 üzerinde çalışır ve X-NUCLEO-ISO1A1 için aygıt yazılımı içerir. Yazılım, X-NUCLEO tarafından sağlanan temel bir PLC cihazının geliştirilmesi için kullanımı kolay bir çözüm sunar. Genişletme, farklı STM32 mikrodenetleyicileri arasında taşınabilirliği kolaylaştırmak için STM32Cube yazılım teknolojisi üzerine inşa edilmiştir.

Yazılım, bir NUCLEO-G1RB geliştirme kartına (veya bir NUCLEO-G1B071RE ya da NUCLEO-G0RB) bağlı X-NUCLEO-ISO1A070 genişletme kartında çalışan bir uygulamayla birlikte gelir. Bundan sonra, belgede sadelik adına yalnızca NUCLEO-G071RB'den bahsedilecektir.
X-NUCLEO-ISO1A1 kartı, giriş ve çıkış kapasitelerini genişletmek için uygun jumper ayarlarıyla iki kartın üst üste yerleştirilmesini destekleyecek şekilde tasarlanmıştır.

Kısaltmalar ve kısaltmalar

Tablo 1. Kısaltma listesi

Kısaltma Tanım
PLC Programlanabilir mantık denetleyicisi
API Uygulama programlama arayüzü
PWM Darbe genişlik modülasyonu
GPIO Genel amaçlı giriş/çıkış.
HÂL Donanım soyutlama katmanı
PC Kişisel bilgisayar
FW Donanım yazılımı

STM32Cube nedir?

STM32Cube™, geliştiricilerin hayatlarını kolaylaştırarak geliştirme çabasını, süresini ve maliyetini azaltmayı amaçlayan STMicroelectronics girişimini temsil eder. STM32Cube, STM32 portföyünü kapsar.
STM32Cube sürüm 1.x şunları içerir:

  • STM32CubeMX, grafiksel sihirbazlar kullanarak C başlatma kodunun oluşturulmasına olanak tanıyan grafiksel bir yazılım yapılandırma aracıdır.
  • Her seriye özgü (örneğin STM32G0 serisi için STM32CubeG0 gibi) kapsamlı bir gömülü yazılım platformu şunları içerir:
    • STM32Cube HAL gömülü soyutlama katmanı yazılımı, STM32 portföyünde maksimum taşınabilirlik sağlar
    • RTOS, USB, TCP/IP ve grafikler gibi tutarlı bir ara yazılım bileşenleri kümesi
    • tüm gömülü yazılım yardımcı programları, tam bir ex setiyleamples.

STM32Cube mimarisi
STM32Cube yazılım çözümü, aşağıdaki diyagramda açıklandığı gibi birbirleriyle kolayca etkileşime girebilen üç bağımsız seviye etrafında oluşturulmuştur.

STMicroelectronics-UM3469-X-CUBE-ISO1-Yazılım-Genişletme-1

STM1Cube için X-CUBE-ISO32 yazılım genişletmesi

Üzerindeview
STM1 ortamları ve kütüphaneleri etrafında geliştirilen endüstriyel yalıtımlı giriş/çıkış genişletme kartı X-NUCLEO-ISO1A32 için ürün yazılımı, dijital girişleri, dinamik akım sınırıyla entegre tanılama özellikli çıkışları ve PWM sinyal üretimini yönetmek için STM32 Nucleo kartlarının yüksek performanslı MCU'sundan yararlanır. Varsayılan ve alternatif koşullar için çerçeveler, ön ölçekleyici değerlerini ayarlamak için makrolar ve GPIO portları ve pinleri için tanımlar dahil olmak üzere kapsamlı kart yapılandırması ve kontrolü sunar.

Çeşitli s'leri desteklerampDijital giriş çıkış yansıtma, Nucleo kartı üzerinden UART haberleşmesi, arıza tespiti, test durumları ve PWM üretimi gibi doğrudan kullanılabilen ve kolayca özelleştirilebilen ve genişletilebilen uygulama kullanım durumları.

API, dijital giriş/çıkış kontrolü, arıza tespiti ve kart durum güncellemeleri için güçlü bir işlev seti sunarken, iki kartı aynı anda farklı modlarda çalıştırmak için yapılandırma ayarları da mevcuttur. Dijital çıkış kanalları için PWM sinyallerini başlatmak, başlatmak, durdurmak ve yapılandırmak için özel API işlevleri mevcuttur.

Kart destek paketi, IPS1025H-32 ile arayüzlenen GPIO pinlerini kontrol etme ve izleme ve dijital izolatör aracılığıyla CLT03-2Q3 ile arayüzlenen GPIO pinlerinin durumunu okuma fonksiyonlarını içerir.
Yapılandırma ve başlatma STM32CubeMX'e dayanmaktadır; geliştirme ve hata ayıklama ise STM32CubeIDE, IAR Systems ve Keil® araçları tarafından desteklenmektedir.

Mimarlık
X-NUCLEO-ISO1A1 için donanım yazılımı, sistemin operasyonlarının çeşitli yönlerinden sorumlu olan birkaç farklı işlevsel bloğa bölünebilir:

STMicroelectronics-UM3469-X-CUBE-ISO1-Yazılım-Genişletme-2

  • Kart Yapılandırması ve Kontrolü:
    • board_config.h file Kartın varsayılan veya alternatif koşullarda veya her ikisinde birden çalışmasını yapılandırmak için makrolar içerir. Ayrıca, ön ölçekleyici değerleri ve GPIO portları ve pinleri için tanımlar da içerir.
    • Bu blok, kartın istenilen çalışma koşulları için doğru şekilde kurulmasını ve gerekli tüm donanım yapılandırmalarının yerinde olmasını sağlar.
  • Uygulama Kullanım Örnekleri:
    • st_iso_app.h ve st_iso_app.c fileKartın çeşitli işlevlerini test etmek için tasarlanmış uygulama kullanım durumlarını içerir.
    • Bu kullanım örnekleri arasında dijital girişten çıkışa yansıtma, arıza tespit testleri ve PWM sinyal üretimi yer almaktadır.
    • ExampYazılımın çok yönlülüğünü ve esnekliğini gösteren, iki kartın aynı anda farklı modlarda çalıştırılmasına olanak tanıyan yapılandırmalar sağlanmıştır.
  • API Fonksiyonları:
    • iso1a1.h ve iso1a1.c fileÇeşitli işlevleri desteklemek için kapsamlı bir API seti sağlar.
    • Bu API'ler, dijital giriş/çıkış kontrolü, arıza tespiti ve kart durum güncellemeleri için işlevler içerir.
    • API'ler, kullanıcıların panoyla etkileşime girmesini ve gerekli işlemleri gerçekleştirmesini kolaylaştıracak şekilde basit ve sezgisel olarak tasarlanmıştır.
  • PWM Sinyal Kontrolü:
    • pwm_api.h ve pwm_api.c files, PWM sinyal üretimiyle ilgili özel API fonksiyonlarını içerir.
    • Bu fonksiyonlar, dijital çıkış kanalları için PWM sinyallerinin başlatılmasına, yapılandırılmasına, başlatılmasına ve durdurulmasına olanak tanır.
    • PWM işlevi varsayılan seçenek değildir. Kart yapılandırması, bu işlevleri etkinleştirmek için değiştirilmiştir. Daha fazla bilgi için Bölüm 3.5: API'ler bölümüne bakın.
  • Yönetim Kurulu Destek Paketi:
    • Yönetim kurulu destek paketi şunları içerir: fileIPS1025H-32 ile arayüzlenen GPIO pinlerini kontrol etmek ve izlemek ve CLT03-2Q3 ile arayüzlenen GPIO pinlerinin durumunu okumak için kullanılır.
    • ips1025h_32.h ve ips1025h_32.c fileIPS1025H-32 ile arayüzlenen GPIO pinlerindeki hataları ayarlamak, temizlemek ve tespit etmek için işlevler sağlar.
    • clt03_2q3.h ve clt03_2q3.c fileCLT03-2Q3 ile arayüzlenen GPIO pinlerinin durumunu okumak için fonksiyonlar sağlar.

Demo yazılımı, sistemin yeteneklerini sergilemek için birkaç basit kullanım örneği uygular. Bu kullanım örnekleri ve kullanıcı API'leri, sorunsuz çalışma ve doğru sonuçlar sağlamak için koordineli bir şekilde yürütülür. Mimari, kullanıcıların ihtiyaç duyduklarında yeni işlevler ve kullanım örnekleri eklemelerine olanak tanıyacak şekilde kolayca genişletilebilir şekilde tasarlanmıştır. Dijital endüstriyel G/Ç'lerle tek bir kart çalıştırmak için varsayılan yapılandırma sağlanmıştır. Jumper ayarlarının da Tablo 2'de açıklandığı gibi varsayılan modda olması gerekir. Dijital giriş/Dijital çıkış yansıtma (DIDO), varsayılan yazılım uygulama kullanım örneğidir.

Klasör yapısı

STMicroelectronics-UM3469-X-CUBE-ISO1-Yazılım-Genişletme-3

Yazılım paketinde aşağıdaki klasörler bulunur:

  • Belgeler derlenmiş bir HTML içeriyor file Kaynak kodundan oluşturulan ve yazılım bileşenlerinin ve API'lerin ayrıntılarını veren.
  • Sürücüler şunları içerir:
    • STM32G32xx_HAL_Driver alt klasörlerinde bulunan bir STM0Cube HAL klasörü. Bunlar fileBunlar burada açıklanmıyor çünkü bunlar X-CUBE-ISO1 yazılımına özgü değil, doğrudan STM32Cube çerçevesinden geliyor.
    • Cortex® mikrodenetleyici yazılım arayüzü standardını içeren bir CMSIS klasörü fileArm'dan s. Bunlar files, Cortex®-M işlemci serisi için tedarikçiden bağımsız bir donanım soyutlama katmanıdır. Bu klasör de STM32Cube çerçevesinden hiçbir değişiklik yapılmadan gelir.
    • IPS1025H-32 ve CLT03-2Q3 bileşenlerinin kodlarını ve X-NUCLEO-ISO1A1 ile ilgili API'leri içeren bir BSP klasörü.
  • Uygulama, main.c dosyasını içeren kullanıcı klasörünü içerir. file, uygulama kullanım durumu file, st_iso_app.c ve board_config.h fileNUCLEO-G071RB platformu için sağlanmıştır.

BSP klasörü
X-CUBE-ISO1 yazılımı iki farklı bileşen kullanır fileBSP/Bileşenler içinde bulunanlar:

IPS1025
ips1025h_32.h ve ips1025h_32.c fileIPS1025H-32 ile arayüzlenen GPIO pinleri için kapsamlı bir sürücü uygulaması sağlar; bu uygulama, tüm pinleri kontrol etmek ve hataları tespit etmek için eksiksiz işlevler içerir. fileCihazı başlatma, kanal durumunu ayarlama ve temizleme, arıza durumlarını tespit etme ve PWM işlevselliğini yönetme işlevlerini uygular. Sürücü, hem tek tek kanallar hem de grup olarak tüm yeteneklere sahip birden fazla cihazı ve kanalı destekler.

CLT03
clt03_2q3.h ve clt03_2q3.c fileCLT03-2Q3 ile arayüzlenen GPIO pinleri için, tüm pin durumlarını okuma yeteneğine sahip, tam özellikli bir sürücü geliştirdik. Sürücü, cihazı başlatma, bireysel kanal durumlarını okuma ve tüm kanallar için durum bilgilerini aynı anda alma işlevleri sunar. Birden fazla cihaz yapılandırmasını destekler ve etkili kanal yönetimi için dahili durumu korur.

X-CUBE-ISO1 yazılım API'leri iki ana kaynağa ayrılmıştır fileISO1A1 alt klasörünün içinde bulunanlar:

ISO1A1
ISO1A1 files, kart yapılandırması, bileşen etkileşimi ve hata yönetimi için tasarlanmış kapsamlı bir API işlevleri kümesini kapsar. Bu işlevler, okuma ve yazma işlemlerini, hata tespitini ve güncellemeleri kolaylaştırır ve birincil API işlevlerini desteklemek için çeşitli yardımcı programlar içerir. Ayrıca, fileLED kontrolü, GPIO başlatma, kesme işleme ve UART iletişimi için işlevsellik sağlar.

PWM API
PWM API, PWM sinyallerini başlatma, yapılandırma, başlatma ve durdurma işlevleri sunar. Belirtilen zamanlayıcı pinleri için PWM frekansını ve görev döngüsünü ayarlayarak PWM işlemleri üzerinde hassas kontrol sağlar.

Uygulama klasörü
Uygulama klasörü ana klasörü içerir fileBaşlıklar ve kaynak dahil olmak üzere ürün yazılımı için gerekenler files. Aşağıda ayrıntılı bir açıklama bulunmaktadır filebu klasörde:

  • board_config.h: Kart için yapılandırma makroları.
  • main.c: Ana program (ex'in kodu)amp(ISO1A1 kütüphanesine dayalı olan le).
  • st_iso_app.c: Kart testi ve yapılandırması için uygulama fonksiyonları.
  • stm32g0xx_hal_msp.c: HAL başlatma rutinleri.
  • stm32g0xx_it.c: Kesinti işleyicisi.
  • syscalls.c: Sistem çağrısı uygulamaları.
  • sysmem.c: Sistem belleği yönetimi.
  • system_stm32g0xx.c: Sistem başlatılıyor.

Yazılım için gerekli kaynaklar
Nucleo cihazı, GPIO'lar aracılığıyla X-NUCLEO-ISO1A1 kartını kontrol eder ve onunla iletişim kurar. Bu, X-NUCLEO-ISO1A1 kartında bulunan endüstriyel G/Ç cihazlarının giriş, çıkış ve arıza tespiti için birden fazla GPIO kullanılmasını gerektirir. Daha fazla bilgi ve bağlantı kablosu yapılandırmaları için UM3483 Donanım kullanıcı kılavuzuna bakın.

Kart yapılandırması (board_config.h)
board_config.h file Yazılımı kart yapılandırmasına göre yapılandırmak için kullanılan kaynakları ve yapılandırma makrolarını tanımlar. İki karta kadar (örneğin iki kartın üst üste yerleştirilmesi gibi) kullanılabilir.
Yazılım DEFAULT yapılandırması, jumper'ları varsayılan konumlarda olan X-NUCLEO-ISO1A1 genişletme kartıyla uyumludur. Yazılımı X-NUCLEO-ISO1A1 için varsayılan ayarda yapılandırmak için board_config.h dosyasındaki BOARD_ID_DEFAULT makrosunun yorum satırından çıkarın. file.

Yazılım ALTERNATE yapılandırması, board_config.h dosyasındaki BOARD_ID_ALTERNATE makrosunun yorumunu kaldırarak ayarlanır. file ve tahtadaki jumper pozisyonlarını değiştirmek.
İki kartı aynı anda yığın yapılandırmasında kullanmak için, hem BOARD_ID_DEFAULT hem de BOARD_ID_ALTERNATE makrolarının yorum satırı işaretlerini kaldırın ve bir kartın jumper'larının varsayılan, diğerinin ise alternatif konumda olduğundan emin olun. Her iki kartın da aynı yapılandırmada (her ikisi de varsayılan veya her ikisi de alternatif konumda) bulunmasının önerilmediğini ve istenmeyen davranışlara yol açabileceğini unutmayın.
Sadece bir kartı çalıştırırken, yazılımın sadece bir yapılandırma için yapılandırıldığından ve diğer yapılandırmaya karşılık gelen makronun yorumlandığından emin olun.

STMicroelectronics-UM3469-X-CUBE-ISO1-Yazılım-Genişletme-4

Ön ölçekleyiciler
board_config.h dosyasındaki ön ölçekleyici değerlerini, uygun makroları ayarlayarak PWM çıkışı için farklı frekans aralıkları elde edecek şekilde yapılandırabiliriz. Ön ölçekleyici bir değer kullanmak için, ilgili makronun yorum satırından çıkarın ve diğerlerini yorum satırına ekleyin. Varsayılan olarak DEFAULT_PRESCALAR kullanılır.

  • ÖN ÖLÇEKLENDİRİCİ_1
  • ÖN ÖLÇEKLENDİRİCİ_2
  • DEFAULT_PRESCALER

Ön ölçekleyici değerleri yalnızca zamanlayıcılar kullanıldığında kullanılır ve herhangi bir temel G/Ç işlemi için gerekli değildir. Ön ölçekleyici makroların değerleri ve bunlara karşılık gelen frekans aralıkları, kod dokümantasyonunda veya kodun kendisinde bulunabilir.

Kalp atışı LED'i
NUCLEO-G7RB kartına düzgün bağlanıp bağlanmadığını test etmek için yeşil kullanıcı LED'i D071'yi kalp atışı hızında yanıp sönecek şekilde yapılandırabiliriz. Açıklamasız durumdayken HEARTBEAT_LED makrosu, NUCLEO'ya bağlandığında X-NUCLEO-ISO1A1 üzerindeki yeşil LED'i yanıp söner. 1 saniye açık ve 2 saniye kapalı kalır ve zamanlama zamanlayıcılar tarafından kontrol edilir. Kullanılmadığında veya LED'lerle ilgili herhangi bir işlev çalıştırılmadığında, makronun açıklamasız durumda olması gerekir.

Giriş ve çıkış GPIO yapılandırması
Her X-NUCLEO-ISO1A1 kartı iki giriş ve iki çıkış portu ile donatılmıştır. Kartın yetenekleri, iki X-NUCLEO-ISO1A1 kartı üst üste yerleştirilerek genişletilebilir ve böylece dört dijital giriş ve dört dijital çıkış portu kullanılabilir. Sağlanan yazılım, portların okunmasını, ayarlanmasını ve temizlenmesini kolaylaştıran kapsamlı API'ler içerir. Ayrıca, API'ler tüm portların aynı anda ayarlanmasına, okunmasına veya temizlenmesine olanak tanır. API işlevleri hakkında ayrıntılı bilgi, kod dokümantasyonunda ve bu belgenin API bölümünde mevcuttur.

STMicroelectronics-UM3469-X-CUBE-ISO1-Yazılım-Genişletme-5

Burada DI öneki dijital giriş portunu, DO öneki ise dijital çıkış portunu belirtir. Alternatif yapılandırma için yazılım, _alt son ekiyle aynı adlandırma kurallarını kullanır.
Aşağıdaki tabloda, çeşitli IO portlarına karşılık gelen yazılımda tanımlanmış GPIO makroları ayrıntılı olarak gösterilmektedir:

Tablo 2. Varsayılan ve alternatif yazılım yapılandırmaları için tahsis edilen GPIO'lar

İsim İşlev Varsayılan yapılandırma Alternatif yapılandırma
GİRİŞ PİNİ Giriş pimi 1 GPIOC, IA0_IN_1_PIN GPIOD, IA0_IN_1_PIN
Giriş pimi 2 GPIOD, IA1_IN_2_PIN GPIOC, IA1_IN_1_PIN
ÇIKIŞ PİMİ Çıkış pini 1 GPIOC, QA0_CNTRL_1_PIN GPIOD, QA0_CNTRL_1_PIN
Çıkış pini 2 GPIOC, QA1_CNTRL_2_PIN GPIOC, QA1_CNTRL_2_PIN
ARIZA PİMİ Arıza pimi 1 GPIOC, FLT1_QA0_2_OT_PIN GPIOD, FLT1_QA0_1_OT_PIN
Arıza pimi 2 GPIOC, FLT2_QA0_2_OL_PIN GPIOD, FLT2_QA0_1_OL_PIN
Arıza pimi 3 GPIOC, FLT1_QA1_2_OT_PIN GPIOC, FLT1_QA1_1_OT_PIN
Arıza pimi 4 GPIOC, FLT2_QA1_1_OL_PIN GPIOD, FLT2_QA1_2_OL_PIN
YAPILANDIRMA MAKROSU BOARD_ID_DEFAULT BOARD_ID_ALTERNATİF

Zamanlayıcılar ve PWM
Zamanlayıcılar, X-CUBE-ISO1 yazılımında belirli pinler için PWM sinyalleri üretmek amacıyla kullanılabilir. Varsayılan olarak, TIM3 hariç tüm zamanlayıcılar başlatılmaz. İlgili zamanlayıcılar, PWM sinyalleri üretilmeden önce başlatılmalı ve ilgili çıkış portları PWM modunda başlatılmalıdır.
Normal GPIO giriş/çıkış işlemleri için, varsayılan olarak halledildiği için herhangi bir zamanlayıcı veya çıkış portu yapılandırmaya gerek yoktur. Ancak, çıkış pinleri PWM moduna ayarlandıktan sonra, GPIO pinleri olarak kullanılmak üzere GPIO modunda yeniden yapılandırmamız gerekir.

Not: Çıkış pinleri PWM üretimi için kullanıldığında, GPIO çıkışı devre dışı bırakılır ve her iki işlev de aynı anda uygulanamaz. PWM kullanımından sonra GPIO'yu yeniden etkinleştirmek için, tüm portları aynı anda GPIO olarak yapılandırmak üzere ST_ISO_BoardConfigureDefault() veya ST_ISO_InitGPIO() API fonksiyonunu veya belirli bir GPIO portu ve pini için ST_ISO_Init_GPIO() fonksiyonunu çağırabilirsiniz.

Yukarıda belirtildiği gibi, yazılım varsayılan olarak kullanıcı LED zamanlaması, saat ve UART zamanlaması uygulaması için kullanılan TIM3 adlı bir zamanlayıcı kullanır. Varsayılan olarak 1 saniyelik bir süre için yapılandırılmıştır.
Aşağıdaki tablo, kodumuzdaki her pin için kullanılabilen zamanlayıcıların ayrıntılarını göstermektedir:

Tablo 3. Her pin için mevcut zamanlayıcılar

Pin adı Yazılım temsili Zamanlayıcı Zamanlayıcı kanalı Alternatif işlev
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

Ürün yazılımının ek yardımcı programları
Ürün yazılımı, X-NUCLEO-ISO1A1 değerlendirme kartının işlevselliğini artırmak için ek yardımcı programlar içerir. Bunlardan bazıları aşağıda açıklanmıştır.

UART
UART iletişim özelliği, TeraTerm, PuTTY ve benzeri diğer PC yardımcı programları aracılığıyla kart durumunun gerçek zamanlı izlenmesini ve hata ayıklamasını sağlar. Yazılım, NUCLEO-G071RB kartında bulunan UART üzerinden UART veri iletimini mümkün kılar. `ST_ISO_UART` işlevi, sistem çalışma süresi, aygıt yazılımı yapılandırması ve arıza durumu dahil olmak üzere ayrıntılı kart durum bilgilerini UART üzerinden gönderir. Bu veriler viewTeraTerm gibi herhangi bir seri port uygulaması kullanılarak gerçekleştirilir. `ST_ISO_APP_DIDOandUART` işlevi, dijital giriş/çıkış işlemlerini UART iletişimiyle birleştirerek, tüm giriş ve çıkış kanallarının durumunu belirtilen aralıklarla iletir. Aşağıda yapılandırma ayarları veampVerilerin TeraTerm'de nasıl göründüğünü gösterir. Port adı, kullanılan sisteme ve seri porta bağlı olarak değişebilir.

STMicroelectronics-UM3469-X-CUBE-ISO1-Yazılım-Genişletme-6

STMicroelectronics-UM3469-X-CUBE-ISO1-Yazılım-Genişletme-7

IO pin modu yapılandırması
G/Ç pin modu yapılandırma yardımcı programı, kullanıcıların ST_ISO_BoardConfigure() işlevini kullanarak kartın giriş ve çıkış portlarını ayarlamasına olanak tanır. Bu işlev, iki çıkış portunun (QA0, QA1) ve iki giriş portunun (IA0, IA1) Giriş/Çıkış moduna, PWM çıkış moduna veya Kesme giriş moduna yapılandırılmasını destekler. Parametreleri ayarlayıp bu işlevi çağırarak, kullanıcılar kartın G/Ç yapılandırmasını belirli ihtiyaçları karşılayacak şekilde kolayca özelleştirebilir.

Giriş/Çıkış modunda, yardımcı program genel amaçlı dijital işlemler için GPIO pinlerini başlatır. PWM çıkış modunda, hassas PWM sinyal kontrolü için zamanlayıcıları ayarlar. Kesme giriş modundayken, yardımcı program pinleri kesmeleri işleyecek şekilde yapılandırarak, hızlı ve etkin olay odaklı programlamaya olanak tanır.

Kesinti işleme
Yazılım, FAULT sinyallerini işlemek için ilgili kesme hatlarını etkinleştirerek, duyarlı olay odaklı programlamaya olanak tanır. Bu kesmelerle, özelleştirilmiş bir işleyici ilişkilendirilebilir.
API'de tanımlanan HAL_GPIO_EXTI_Rising_Callback fonksiyonu. Yazılım, ST_ISO_BoardConfigure fonksiyonu aracılığıyla GPIO pinlerini kesme modunda başlatma ve EXTI IRQ işleyicilerinde belirli eylemleri yapılandırma özellikleri içerir. Bu, kullanıcıların kartın harici olaylara nasıl yanıt vereceğini özelleştirmesine olanak tanır ve çeşitli arıza durumlarını ve tetikleyicilerini etkili bir şekilde yönetmesini sağlar.

API'ler
X-CUBE-ISO1 yazılım API'si, PWM sinyal üretimi ve GPIO işlemleri de dahil olmak üzere X-NUCLEO-ISO1A1 kartını kontrol etmek ve izlemek için kapsamlı bir işlev seti sunar. API, kullanımı kolay ve çeşitli uygulamalara entegre edilebilecek şekilde tasarlanmıştır ve kartın işlevselliği üzerinde esneklik ve kontrol sağlar.

X-CUBE-ISO1 yazılım API'si, BSP/ISO1A1 klasöründe tanımlanmıştır. İşlevlerinin önüne ST_ISO eki eklenmiştir. API, iso1a1.c ve pwm_api.c aracılığıyla uygulamalar tarafından görülebilir. files sabitlerin, veri yapılarının ve fonksiyonların birleşimidir.
SampYazılım uygulamaları bu API'leri kullanarak bu fonksiyonların olası kullanımlarından bazılarını gösterir.

X-CUBE-ISO1 yazılım paketi iki set API sağlar:

  • ISO1A1 API
  • PWM API

ISO1A1 API
ISO1A1 API, iso1a1.h ve iso1a1.c'de tanımlanmıştır files. GPIO giriş/çıkış işlemleri ve arıza tespiti dahil olmak üzere ISO1A1 kartını yapılandırma ve kontrol etme işlevlerini sağlar.

Temel işlevler

  • ST_ISO_BoardConfigureDefault: Kartın IO portlarını varsayılan GPIO yapılandırmasıyla yapılandırır.
  • ST_ISO_BoardConfigure: Kartın giriş ve çıkış portlarının modunu yapılandırır.
  • ST_ISO_BoardInit: Kart donanımını başlatır.
  • ST_ISO_BoardMapInit: Kanal tutamaçları yapılandırmasına göre kart işlevselliğini başlatır.
  • ST_ISO_GetFWVersion: Geçerli aygıt yazılımı sürümünü döndürür.
  • ST_ISO_GetChannelHandle: Belirtilen kanal adı için kanal tutamacını alır.
  • ST_ISO_InitGPIO: Belirtilen GPIO pinini belirtilen modül kimliğiyle başlatır.
  • ST_ISO_InitInterrupt: Belirtilen GPIO pinini belirtilen modül kimliğine sahip bir kesme olarak başlatır.
  • ST_ISO_EnableFaultInterrupt: Kesme modunda arıza GPIO pinlerini başlatır.
  • ST_ISO_SetChannelStatus: Belirtilen bir kanalın durumunu ayarlar.
  • ST_ISO_SetOne_DO: Tek bir dijital çıkış kanalı ayarlar.
  • ST_ISO_ClearOne_DO: Tek bir dijital çıkış kanalını temizler.
  • ST_ISO_WriteAllChannels: Verileri tüm dijital çıkış kanallarına yazar.
  • ST_ISO_GetOne_DI: Tek bir dijital giriş kanalının durumunu alır.
  • ST_ISO_ReadAllChannel: Tüm giriş kanallarının durumunu okur.
  • ST_ISO_ReadAllOutputChannel: Tüm çıkış kanallarının durumunu okur.
  • ST_ISO_ReadFaultStatus: Tüm arıza algılama portlarından arıza durumunu okur.
  • ST_ISO_ReadFaultStatusPolling: Kartların hata tespitini sorgulama modunda test eder.
  • ST_ISO_DisableOutputChannel: Bu kanal için çıkışı devre dışı bırakır.
  • ST_ISO_UpdateBoardStatusInfo: Kart durum bilgilerini günceller.
  • ST_ISO_UpdateFaultStatus: Belirli bir kanal için hata durumunu günceller.
  • ST_ISO_BlinkLed: Belirtilen LED'i belirli bir gecikme ve tekrarlama sayısıyla yanıp söner.
  • ST_ISO_UART: Kartın durum bilgisini UART üzerinden gönderir.
  • ST_ISO_SwitchInit: Anahtar bileşenlerini başlatır.
  • ST_ISO_SwitchDeInit: Anahtar örneğini başlatmayı kaldırır.
  • ST_ISO_DigitalInputInit: Dijital giriş bileşenlerini başlatır.
  • ST_ISO_DigitalInputDeInit: Dijital giriş örneğini başlatmayı kaldırır.

PWM API
PWM API, pwm_api.h ve pwm_api.c'de tanımlanmıştır files. Belirli pinler için PWM sinyallerini başlatmak ve kontrol etmek için aşağıdaki işlevleri sağlar.

  • ST_ISO_Init_PWM_Signal: PWM sinyali için zamanlayıcıları ve belirli pini başlatır.
  • ST_ISO_Set_PWM_Frequency: Belirli pin için PWM frekansını ayarlar.
  • ST_ISO_Set_PWM_Duty_Cycle: Belirli pin için PWM görev döngüsünü ayarlar.
  • ST_ISO_Start_PWM_Signal: Belirli pinde PWM sinyalini başlatır.
  • ST_ISO_Stop_PWM_Signal: Belirli pindeki PWM sinyalini durdurur.

İlgili bir kanalda PWM sinyalini başlatmak için öncelikle ST_ISO_Init_PWM_Signal işlevini çağırın, ardından ST_ISO_Set_PWM_Frequency ve
Sırasıyla ST_ISO_Set_PWM_Duty_Cycle fonksiyonlarını çağırabilir ve ardından ST_ISO_Start_PWM_Signal fonksiyonunu çağırarak PWM sinyalini başlatabilir ve ST_ISO_Stop_PWM_Signal fonksiyonunu çağırarak durdurabilirsiniz.

Fonksiyonun, ilgili pin adı ve mevcut zamanlayıcılar ile çağrılması gerekir; bunların ayrıntıları tablo 3'te verilmiştir. Farklı çıkış kanalları, farklı frekanslar ve görev döngüleri ile ayarlanabilir; frekansın veya görev döngüsünün değiştirilmesi diğerini etkilemez, aynı kalır.
Kullanıcının kullanımına sunulan API'ler hakkında ayrıntılı teknik bilgiler derlenmiş bir HTML'de bulunabilir. file tüm fonksiyonların ve parametrelerin tam olarak açıklandığı yazılım paketinin “Belgeler” klasöründe bulunur.

Uygulama açıklaması
Tanıtım uygulaması birkaç basit kullanım örneğini uygular. st_iso_app ve board_config fileKartın ve uygulama fonksiyonlarının kurulumunda ve kullanımında kritik bir rol oynarlar. Bu fonksiyonları kullanmadan önce, kart ve yazılım yapılandırmasının birbiriyle senkronize olduğundan emin olun.

Uygulama Fonksiyonları (st_iso_app.h ve st_iso_app.c)
Uygulama fonksiyonlarına ST_ISO_APP ön eki eklenir; bunlar, kullanıcı tarafından görülebilen ve API fonksiyonlarını uygulamaları için çağıran en üst düzey fonksiyonlardır. Uygulama fonksiyonları main.c dosyasında çağrılabilir. file işlevleri için.

  • Kullanım Durumu Seçimi: Kullanıcı, st_iso_app.c dosyasında istenen kullanım durumu makrosunun yorumunu kaldırabilir. filemain.c'de çağrılan ST_ISO_APP_SelectUseCaseMacro() işlevi bu kullanım durumunu başlatır ve ST_ISO_APP_SelectedFunction() işlevi bunu main.c'de uygular. Bu yaklaşım, makro tanımlarını değiştirerek operasyonel modun kolayca yapılandırılmasını sağlar ve seçilen kullanım durumuna göre uygun işlevselliğin yürütülmesini sağlar. Varsayılan olarak, DIDO kullanım durumu seçilidir ve kullanıcının bunu uygulamak için kodda herhangi bir değişiklik yapması gerekmez.
  • Dijital Girişten Dijital Çıkışa Yansıtma (ST_ISO_APP_UsecaseDIDO): Bu işlev, tüm giriş kanallarının durumunu okur ve aynı durumu tüm çıkış kanallarına yazar. Dijital girişleri dijital çıkışlara yansıtmak için kullanışlıdır.
  • UART ile Dijital Girişten Dijital Çıkışa Yansıtma (ST_ISO_APP_DIDOandUART): Bu işlev, ST_ISO_APP_UsecaseDIDO işlevine benzer şekilde dijital girişleri dijital çıkışlara yansıtır. Ayrıca, kart durumunu Nucleo cihazındaki UART arayüzü aracılığıyla ileterek, durumun viewTera Term gibi uygulamaları kullanarak seri port üzerinden bağlandı.
  • Test Durumu Fonksiyonu (ST_ISO_APP_TestCase): Bu fonksiyon, kart yapılandırmasına bağlı olarak bir dizi test ve işlem gerçekleştirir. Arıza durumunu kontrol eder, iki dijital giriş kanalının durumunu okur ve değerlerine göre işlemler gerçekleştirir. Bu fonksiyon, kartın performansını ve işlevselliğini hızlı bir şekilde değerlendirmeye ve farklı LED desenleri aracılığıyla görsel geri bildirim almaya yardımcı olur. board_config.h dosyasındaki HEARTBEAT_LED makrosunun doğru olduğundan emin olun. file Uygun LED desenlerinin gözlemlenmesi için yorum yapılır.
  • PWM Üretimi (ST_ISO_APP_PWM _OFFSET): Bu işlev, her iki çıkış kanalında da 1 Hz frekans ve %50 görev döngüsüyle PWM sinyalini başlatır. PWM sinyalini başlatır, frekansı ve görev döngüsünü ayarlar ve belirtilen kart kimliği için PWM sinyalini başlatır. PWM sinyali, her iki kanal arasında bir ofset ile üretilir ve bu nedenle aynı fazda değildirler.
  • Arıza Tespit Testi (ST_ISO_APP_FaultTest): Bu fonksiyon, akıllı çıkış modülü IPS1025'in dahili teşhis pinlerini sorgulama veya kesme modunda çalıştırarak arıza tespitini değerlendirir. Arıza tespit modunu yapılandırır, arıza tespitini başlatır ve seçilen moda göre arıza durumu yapısını günceller. Bu fonksiyon, arızaları etkili bir şekilde tespit edip işleyerek kartın güvenilirliğini ve emniyetini sağlamak için çok önemlidir. Sorgulama modundayken, arıza durumu bir zamanlayıcı yardımıyla her saniye güncellenir ve defaultBoardFaultStatus veya alternateBoardFaultStatus yapısına yansıtılır. Kesme modundayken, arıza durumu yalnızca arıza oluştuğunda güncellenir ve yazılımın ilgili çıkış portunu temizlemesini tetikler.
  • PWM Varyasyon Testi (ST_ISO_APP_PwmVariationTest): Bu fonksiyon, kart yapılandırmasına bağlı olarak farklı çıkış kanallarındaki PWM (Darbe Genişlik Modülasyonu) sinyallerinin değişimini test etmek için tasarlanmıştır. Hem varsayılan hem de alternatif kart yapılandırmaları için PWM sinyallerini başlatır, frekanslarını 100 Hz'e ve başlangıç ​​görev döngüsünü %0'a ayarlar. Fonksiyon daha sonra görev döngüsünü %0'dan %100'e %5'lik artışlarla ve %100'den %0'a %5'lik düşüşlerle değiştirir ve her adım arasında 2 saniyelik bir gecikme olur. Bu kontrollü değişim, varsayılan kart için QA_0 ve QA_1, alternatif kart için ise QA_0_ALT ve QA_1_ALT kanallarındaki PWM sinyal davranışının gözlemlenmesine ve değerlendirilmesine olanak tanır.

Bu yapılandırmaları takip ederek ve sağlanan uygulama fonksiyonlarını kullanarak, X-NUCLEO-ISO1A1 kartını çeşitli gösteri kullanım durumları için etkili bir şekilde kurabilir ve kullanabilirsiniz.

Sistem kurulum kılavuzu

Donanım açıklaması

STM32 Nucleo platformu
STM32 Nucleo geliştirme kartları, kullanıcıların herhangi bir STM32 mikrodenetleyici hattıyla çözümleri test etmeleri ve prototipler oluşturmaları için uygun maliyetli ve esnek bir yol sağlar.
Arduino® bağlantı desteği ve ST morpho konnektörleri, STM32 Nucleo açık geliştirme platformunun işlevselliğini, aralarından seçim yapabileceğiniz çok çeşitli özel genişletme kartlarıyla genişletmeyi kolaylaştırır.

STM32 Nucleo kartı, ST-LINK/V2-1 hata ayıklayıcı/programlayıcıyı entegre ettiği için ayrı problar gerektirmez.
STM32 Nucleo kartı, çeşitli paketlenmiş yazılımlarla birlikte kapsamlı STM32 yazılımı HAL kitaplığı ile birlikte gelir.amples.

STMicroelectronics-UM3469-X-CUBE-ISO1-Yazılım-Genişletme-8

STM32 Nucleo kartına ilişkin bilgiler şu adreste mevcuttur: www.st.com/stm32nucleo

X-NUCLEO-ISO1A1 genişletme kartı
X-NUCLEO-ISO1A1, STM32 Nucleo kartını genişletmek ve mikro PLC işlevselliği sağlamak için tasarlanmış, izole endüstriyel giriş/çıkışa sahip bir değerlendirme kartıdır. İki X-NUCLEO-ISO1A1 kartı, GPIO arayüzlerinde çakışmayı önlemek için genişletme kartında uygun jumper seçimiyle bir STM32 Nucleo kartının üzerine üst üste yerleştirilebilir. UL1577 sertifikalı STISO620 ve STISO621 dijital izolatörler, mantık ve işlem tarafı bileşenleri arasında izolasyon sağlar. İşlem tarafından iki akım sınırlı yüksek taraf girişi, CLT03-2Q3 aracılığıyla gerçekleştirilir. CLT03-2Q3, IEC61000-4-2, IEC61000-4-4 ve IEC61000-4-5 gibi standartları karşılayacak şekilde tasarlanmış olup, endüstriyel koşullar için koruma, izolasyon ve enerjisiz durum göstergesi sağlar. IPS1025H-32/HQ-32 yüksek taraf anahtarlarının her biri, teşhis ve akıllı sürüş özellikleriyle 5.6 A'ya kadar korumalı çıkış sağlar. Kapasitif, rezistif veya endüktif yükleri sürebilirler. X-NUCLEO-ISO1A1, X-CUBE-ISO1 yazılım paketini kullanarak yerleşik IC'lerin hızlı bir şekilde değerlendirilmesini sağlar.

STMicroelectronics-UM3469-X-CUBE-ISO1-Yazılım-Genişletme-9

Donanım Kurulumu
Aşağıdaki donanım bileşenleri gereklidir:

  1. Bir STM32 Nucleo geliştirme platformu (önerilen sipariş kodu: NUCLEO-GO71RB)
  2. Bir adet endüstriyel dijital çıkış genişletme kartı (sipariş kodu: X-NUCLEO-ISO1A1)
  3. STM32 Nucleo'yu bilgisayara bağlamak için bir adet USB Type A - Micro USB kablosu
  4. X-NUCLEO-ISO24A1 genişletme kartına güç sağlayan harici bir güç kaynağı (1 V) ve ilgili kablolar.

Yazılım kurulumu
X-NUCLEO-ISO32A1 genişletme kartıyla donatılmış STM1 Nucleo için uygulamalar oluşturmak üzere uygun bir geliştirme ortamı kurmak için aşağıdaki yazılım bileşenleri gereklidir:

  • X-CUBE-ISO1: STM32Cube için, X-NUCLEO-ISO1A1 kartının kullanımını gerektiren uygulama geliştirmeye özel bir genişletme. X-CUBE-ISO1 ürün yazılımı ve ilgili belgeler şu adreste mevcuttur: www.st.com
  • Geliştirme araç zinciri ve Derleyici: STM32Cube genişletme yazılımı aşağıdaki üç ortamı destekler:
    • ARM® için IAR Gömülü Çalışma Tezgahı (IAR-EWARM) araç zinciri
    • GerçekView Mikrodenetleyici Geliştirme Kiti (MDK-ARM-STM32) araç zinciri
    • STM32CubeIDE.

Pano kurulumu
Kart, Donanım Kullanıcı Kılavuzu'nda (UM3483) belirtilen uygun jumper ayarlarıyla yapılandırılmalıdır. Düzgün çalışmasını sağlamak ve olası sorunları önlemek için bu yönergeleri dikkatlice takip etmek önemlidir.

Sistem kurulum kılavuzu
Bu bölümde, STM32 Nucleo, NUCLEO-G071RB kartında X-NUCLEO-ISO1A1 genişletme kartıyla bir uygulama geliştirip çalıştırmadan önce farklı donanım parçalarının nasıl kurulacağı anlatılmaktadır.

STMicroelectronics-UM3469-X-CUBE-ISO1-Yazılım-Genişletme-10

STMicroelectronics-UM3469-X-CUBE-ISO1-Yazılım-Genişletme-11

X-CUBE-ISO1 genişletme paketi için kurulum
X-NUCLEO-ISO1A1, kartı hangi konfigürasyonda çalıştırdığınıza bağlı olarak belirli jumper konumlarıyla yapılandırılmalıdır. Ayrıntıları donanım kılavuzunda daha ayrıntılı inceleyebilirsiniz.

  • Adım 1. X-NUCLEO-ISO1A1 genişletme kartını morfokonnektörler aracılığıyla STM32 Nucleo'nun üstüne takın.
    Eğer üst üste iki tahta kullanıyorsanız, bunları Şekil 11'deki gibi üst üste koyun.
  • Adım 2. STM32 Nucleo kartını USB kablosuyla CN1 USB konnektörü üzerinden bir bilgisayara bağlayarak kartın güç almasını sağlayın.
  • Adım 3. X-NUCLEO-ISO1A1 genişletme kartını/kartlarını, J1'i 24V DC güç kaynağına bağlayarak çalıştırın. Üst üste yerleştirilmiş kartlar kullanıyorsanız, her iki kartın da güç aldığından emin olun.
  • Adım 4. Tercih ettiğiniz araç zincirini açın (Keil'den MDK-ARM, IAR'dan EWARM veya STM32CubeIDE).
  • Adım 5. Yazılım projesini açın ve board_config.h dosyasında gerekli değişiklikleri yapın. file kullanılan kartın/kartların yapılandırmasına göre.
  • Adım 6. st_iso_app.c dosyasında uygun kullanım durumu makrosunu ayarlayın file veya main.c'deki ST_ISO_APP_SelectUseCase fonksiyonunu kullanarak gerekli kullanım durumunu çağırın file İstenilen diğer fonksiyonlarla birlikte.
  • Adım 7. Tümünü derlemek için projeyi oluşturun fileve derlenen kodu STM32 Nucleo kartının belleğine yükleyin.
  • Adım 8. Kodu STM32 Nucleo kartında çalıştırın ve beklenen davranışı doğrulayın.

Revizyon geçmişi
Tablo 4. Belge revizyon geçmişi

Tarih Revizyon Değişiklikler
14-Mayıs-2025 1 İlk sürüm.

ÖNEMLİ UYARI – DİKKATLİCE OKUYUN

STMicroelectronics NV ve bağlı şirketleri ("ST"), ST ürünlerine ve/veya bu belgeye herhangi bir zamanda bildirimde bulunmaksızın değişiklik, düzeltme, geliştirme, modifikasyon ve iyileştirme yapma hakkını saklı tutar. Alıcılar, sipariş vermeden önce ST ürünleriyle ilgili en son ilgili bilgileri edinmelidir. ST ürünleri, sipariş onayı sırasında yürürlükte olan ST'nin satış şartları ve koşullarına uygun olarak satılır.

Alıcılar, ST ürünlerinin seçimi, seçimi ve kullanımı konusunda münhasıran sorumludur ve ST, uygulama yardımı veya alıcıların ürünlerinin tasarımı konusunda hiçbir sorumluluk kabul etmez.
ST tarafından burada herhangi bir fikri mülkiyet hakkına ilişkin açık veya örtük hiçbir lisans verilmemektedir.
ST ürünlerinin burada belirtilen bilgilerden farklı hükümlerle yeniden satışı, ST tarafından söz konusu ürün için verilen her türlü garantiyi geçersiz kılar.

ST ve ST logosu, ST'nin ticari markalarıdır. ST ticari markaları hakkında ek bilgi için www.st.com/trademarks adresine bakın. Diğer tüm ürün veya hizmet adları ilgili sahiplerinin mülkiyetindedir.
Bu belgedeki bilgiler, bu belgenin önceki sürümlerinde sağlanan bilgilerin yerini alır ve bu bilgilerin yerine geçer.
© 2025 STMicroelectronics – Tüm hakları saklıdır

Belgeler / Kaynaklar

STMicroelectronics UM3469 X-CUBE-ISO1 Yazılım Genişletmesi [pdf] Kullanıcı Kılavuzu
X-NUCLEO-ISO1A1, NUCLEO-G071RB, UM3469 X-CUBE-ISO1 Yazılım Genişletmesi, UM3469, X-CUBE-ISO1 Yazılım Genişletmesi, Yazılım Genişletmesi

Referanslar

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar işaretlenmiştir *