STm32F1xx USB Keil

Başlatan sensorless, 05 Şubat 2012, 12:57:20

sensorless

Merhabalar;
Son bir kaç haftadır STm32-H103 deneme kartıma USB HID özelliği kazandırmaya çalışıyorum.
ST'nin sitesindeki "STM32_USB-FS-Device_Lib_V3.3.0" adlı örneklerle işe başladım. Platform Config'i kendi kartıma göre uyarladım ve cihazı bilgisayara tanıtabildim.HID örneğini kurdum ve arayüze verileri transfer edebildim. Henüz malesef sadece 2byte atabiliyorum. Fakat STM32'ye aryüzden transfer gerçekleştiremedim.
Acaba bu konuda daha önce çalışma göstermiş bir arkadaş varmıdır?
Bu sorunumu nasıl çözebilirim acaba?
Şimdiden teşekkür ederim, iyi çalışmalar.

pisayisi

Keil sitesinde daha önce stm32 stamp board da denediğim pc den çentikleri işaretleyip bord üzerinde çeşitli ledleri yakan bir program var şurdan indirilebilir.

http://www.keil.com/download/files/stm32_usbhid.zip

Bu programın pc uygulama programı keil dizininde
C:\Keil\ARM\Utilities\HID_Client\Release

altklasörde bulunabilir. Örnekleri biraz incele iki taraflı iletişim kolayca yapılabiliyor kodlarda sorun çıkmıyor.
Murat

sensorless

#2
Yeri gelmiş iken sorayım; Keil'de iki tip kod geliştirme ortamı mı var? Ben tüm başlangıçlarımı kendim yapıyorum, ve kontrol altında tutabiliyorum. Fakat sizin önerdiğiniz projede herşey stm32_init altında yapılmış. Ve malesef bir türlü o örneklere alışabilmiş değilim. Herşeyi kendim yapmak istiyorum çünkü sorun çıkınca çözmesi çok zor oluyor.  Proje sanırım MCB kartı için yapılmış. Benim kartıma uydurmayı becerebilmiş değilim.

Dediğim gibi STM32_USB-FS-Device_Lib_V3.3.0 dosyası içerisindeki projeyi geliştirmeyi daha uygun görüyorum.

Veri gönderirken anladığım kadarıyla Basitleştirilmiş Katman üzerinden gönderiyoruz;
      USB_SIL_Write(EP1_IN, (uint8_t*) Send_Buffer,2); 
      SetEPTxValid(ENDP1);
Fakat ben bu komutlarla 3byte'lık veri gönderemiyorum. Acaba USB'nin açılışında paket ayarı yaparken bunları en baştan mı belirtmemiz gerekmektedir?

Alıcı kısmında ise EndPoint Callback fonksiyonunda
       USB_SIL_Read ile okuma yapmamız gerekiyor. Fakat callback fonksiyonuna bir türlü arayüzden gönderdiğim 2byte veri taşıyan paket ile dallanamıyorum.

Bir yol gösterebilirseniz sevinirm.
Teşekkür ederim,
Ahmet

pisayisi

usb hid demonstrator paketini indirin st den. orda hid uyumlu adc değerlerini buton konumlarını pc  ye gönderen ve pc den aldığı değerleri borda yazan mdk da derlenmiş cmsis uyumlu kodlar var. Genelde usb_desc.h ve c dosyalarında paketlerin byte uzunluğu hid için gereken tüm  tanımlamalar orda mevcut. Bu tanımlamalar pc programı ve kod içinde uyumlu değilse haberleşme gerçekleşmez.
Murat