Bu uygulamada, STM32 miniDev bilgisayar ile haberleştirilmiş ve HID (Human Interface Device) olarak tanıtılmıştır. STM32 miniDev’de USB arayüzü olmadığından, arayüz için gerekli malzemeler bir pertinaxa dizilmiş ve bunlar fotoğrafta görüldüğü gibi miniDev’e bağlanmıştır.
Aşağıda, USB bölümüne ait şematik çizim görülmektedir. Bu uygulamada STM32 miniDev, USB portundan beslenmektedir. Şematikte görülen U5V ve GND, STM32 miniDev’de sırasıyla JP7<15> ve JP17<16> pinlerine bağlanır. USB_DM ve USB_DP, JP6<12> ve JP6<13> pinlerine, USB_DP hattına bağlı pull-up direnci ise JP7<14> pinine yani +3V3′e bağlıdır. (STM32F103C8 işlemcisinin PA11 pini USB (-), PA12 pini USB (+) data hattıdır.) USB haberleşmesi yapan birçok donanımda koruma amaçlı entegreler kullanılır, ST’nin USBLC6-2 ürünü koruma entegrelerine örnek olarak verilebilir. STM32 miniDev’le gerçeklenen bu uygulamada ise USB donanımının çalışması için gerekli olan minimum malzemeler kullanılmıştır.
USB bağlantısı için konnektör olarak USB B Type Receptacle kullanılmıştır.
..\Keil\ARM\Boards\Keil\MCBSTM32\USBHID projesi STM32 miniDev donanımına adapte edilerek derlenmiş ve yüklenmiştir.
USBHID projesi, 8 bit data gönderme-alma işlemini gerçekleştirir ve EndPoint0′ı kullanır. Projeyi test etmek için ..\Keil\ARM\Utilities\HID_Client klasöründe bulunan program kullanılabilir. Program çalıştırıldığında aşağıdaki resimde görüldüğü gibi Device bölümünden Keil MCBSTM32 HID seçilir (Programla çalışabilecek başka uygun donanım varsa isimleri listelenir, yoksa <None> olarak gelir). HID_Client C++’da gerçekleştirilmiş bir programdır, Delphi’de yapılmış benzer bir çalışma için tıklayınız.
Bilgisayar > STM32 miniDev yönünde data göndermek için HID_Client’ta Outputs (LEDs) bölümünden (0..7) arası kutucuklara tıklanır. STM32 miniDev, gelen datayı sola 8 bit shift yaparak PORTB’ye yazar. Yani 0. kutucuğa tıklandığında PORTB’ye 0×0100 yazılacaktır. Bu durumda PB8′e bağlı LED yanar.
STM32 miniDev > Bilgisayar yönünde gönderilen datalar HID_Client’ta Inputs (Buttons) bölümünden takip edilir. STM32 miniDev’de buton girişi olmadığından yazılımda bir değişken yaratılmıştır. Bu değişken belirli aralıklarla (~ 1sn) bir arttırılarak STM32 miniDev’den bilgisayara gönderilmektedir. Böylelikle USB üzerinden iki yönlü data transferi test edilmiştir.
Bilgisayarınızda bulunan USB portları izlemek için usbview.exe programını kullanabilirsiniz. Program çalıştırıldığında yapmış olduğumuz uygulamaya ilişkin USB bağlantısının özellikleri aşağıdaki resimdeki gibi tüm detaylarıyla görülür.