MikroC ve USB (stm32Discovery f407VG) selim Koç Kitabı (Çözüldü)

Başlatan ehliseyf, 06 Aralık 2015, 18:10:27

ehliseyf

Discovery kit ile birlikte usb haberleşmesi gerçekleştirmek istedim. Bağlantı kurulumu oluyor. Lakin Hex olarak verilmiş dosyayı yüklüyorum C#  programı çalışıyor. Kitaptaki programı yazıp yüklüyorum çalışmıyor. Hexi bulunan programı kitaptaki program değil mi ? Eskiden bu programa indirmiş olan var mı? şuan ki kitap dosyaları arasında sadece hex var. http://www.altaskitap.com/mikroC-Ile-ARM-PROGRAMLAMA,PR-498.html (buradaki dosyalar)
OSC Ayarları verilmemiş Mikroe'nin sitesinde bazı dökümanlara baktım oradan bir kurulum yaptım. Bu projeyi gerçekleştirmiş olan var mı ? Bu kitap dosyaları neden çalışmaz ?

Yazdığım kodlar
char cnt;
char kk;
char readbuff[64];
char writebuff[64];
char sayi=0;
unsigned long int i=0 ;



void main(void) {
NVIC_IntEnable(IVT_INT_OTG_FS);
HID_Enable(&readbuff,&writebuff);
GPIO_Digital_Output(&GPIOD_BASE,_GPIO_PINMASK_12|_GPIO_PINMASK_13|_GPIO_PINMASK_14|_GPIO_PINMASK_15) ;
while(1){
kk=HID_Read();
if(kk !=0){
if(readbuff[0]=='a') GPIOD_ODR.B12=1;
if(readbuff[0]=='k') GPIOD_ODR.B12=0;
if(readbuff[1]=='a') GPIOD_ODR.B13=1;
if(readbuff[1]=='k') GPIOD_ODR.B13=0;
if(readbuff[2]=='a') GPIOD_ODR.B14=1;
if(readbuff[2]=='k') GPIOD_ODR.B14=0;
if(readbuff[3]=='a') GPIOD_ODR.B15=1;
if(readbuff[3]=='k') GPIOD_ODR.B15=0;

if(readbuff[4]=='o')
                    {sayi.f0=GPIOD_ODR.B12;
                    sayi.f1=GPIOD_ODR.B13;
                    sayi.f2=GPIOD_ODR.B14;
                    sayi.f3=GPIOD_ODR.B15;
                    writebuff[1]=sayi;
                    HID_Write(&writebuff,64);
                    readbuff[4]=0;
                    }
           }
           }
           }
           
void USB_Kesmesi() iv IVT_INT_OTG_FS ics ICS_AUTO
{USB_Interrupt_Proc();}
Code'm mu oturturum !

LukeSkywalker

Kitap dosyaları çalışmaz diye bir şey yok. Konfigürasyon hatası yapıyorsunuz. Kanfigürasyonun nasıl yapılacağı kitapta anlatılıyor. 
İşlem basamakları kısmını iyi okuyun.

selimkoc

Problemi tam olarak anlamamakla birlikte şu adımları takip etmemizi öneririm;

- OSC ayarları tamam mı? (MCU 168MHz de çalışacak şekilde ayarlanmış mı? -USB için 48MHz doğru olarak ayarlanmış mı?)

- Kitten HID terminal aracılığı ile veri alabiliyor muyuz? Alabiliyorsak kit çalışıyor ama pc tarafı alamıyordur.

Başarılar...

ehliseyf

Alıntı yapılan: selimkoc - 06 Aralık 2015, 20:01:43
Problemi tam olarak anlamamakla birlikte şu adımları takip etmemizi öneririm;

- OSC ayarları tamam mı? (MCU 168MHz de çalışacak şekilde ayarlanmış mı? -USB için 48MHz doğru olarak ayarlanmış mı?)

- Kitten HID terminal aracılığı ile veri alabiliyor muyuz? Alabiliyorsak kit çalışıyor ama pc tarafı alamıyordur.
Başarılar...
OSC ayarlarını anladığım kadarıyla yapıyorum. Lakin bir sorun oluşuyor eksik olduğunu tahmin ediyorum. Doğru olan OSC ayarlarını load ve save bölümünden kaydedip yükleme şansınız var mı ? Tahminimce bazı bölümler kitaptakiler ile farklılaşmış. Örneğin 'a' 'k' ve 'o' karakterleri dışında birde 'x' var. Sizde çalışan kodu ve OSC ayarları var ise paylaşmanız mümkün mü? STM nin Excel dosyasını denedim. Onunla da başaramadım. HID terminal ile gözlemliyorum 0x00 verisi gözlemleniyor. Sürekli bu veri, başka veri yok.  Derlemiş olduğunuz hex dosyasının kodları ile yukarıda ki kitap kodları aynı mı? eksiği yada hatası var mı kontrol edebilir misiniz?
Code'm mu oturturum !

Karamel

Pc ile baglanti kurulabiliyorsa osc fequency tamamdir. Mikroelektronika hicd cokde unu startrt olarak sunuyor. Yani calistirmasi en basit code olarak sunuyor.

Deney pcbsini pc hid device olarak goruyorsa. Oscillator de sorun yoktur hocam

mesaj birleştirme:: 07 Aralık 2015, 09:13:43

Birde hocam konu oscillatorden acilmisken. St microelectronics in soyledigi frequency lari asmamaya gayret gosterin. Ben gectigimiz yaz. 72mhz clock speed lik mcirocontroller a 128mhz clock yapmistim. Birkac saat calisti. Sonra microcontrollerin pll systemi bozuldu. Bunu deney amacli yapmistim. Herhangi bir beklentim yoktu ama system unitlerine max kac mhz diyorsa unu yapin. Fazlasi o unit i bozabiliyor.

ehliseyf

Alıntı yapılan: Karamel - 07 Aralık 2015, 09:07:32
Pc ile baglanti kurulabiliyorsa osc fequency tamamdir. Mikroelektronika hid code unu start olarak sunuyor. Yani calistirmasi en basit code olarak sunuyor.
Deney pcbsini pc hid device olarak goruyorsa. Oscillator de sorun yoktur hocam

mesaj birleştirme:: 07 Aralık 2015, 23:13:43

Birde hocam konu oscillatorden acilmisken. St microelectronics in soyledigi frequency lari asmamaya gayret gosterin. Ben gectigimiz yaz. 72mhz clock speed lik mcirocontroller a 128mhz clock yapmistim. Birkac saat calisti. Sonra microcontrollerin pll systemi bozuldu. Bunu deney amacli yapmistim. Herhangi bir beklentim yoktu ama system unitlerine max kac mhz diyorsa unu yapin. Fazlasi o unit i bozabiliyor.
MikroC nin Load diyerek yüklediğimiz kendi içerisindeki osc ayar dosyalarını da deniyorum lakin olmuyor. Ama selim hocamızın hex dosyası çalışıyor. Kod zaten kitaptaki kod. Donanım discovery kit f407vg kablo takıp usb haberleşmesi yapacağız ama OSC ile ilgili bir sorun var.Donanımı gördüğünü söylüyor. Yukarıdaki kodu inceleme şansınız var mı ? ""Acaba bilen birileri çalışan bir osc ayarı gönderebilir mi ? ""
Code'm mu oturturum !

selimkoc

Size göndermiş olduğum .cfgsch dosyasını edit project'ten load etmeniz yeterli.

ehliseyf

Alıntı yapılan: selimkoc - 07 Aralık 2015, 15:49:52
Size göndermiş olduğum .cfgsch dosyasını edit project'ten load etmeniz yeterli.
Göndermiş olduğunuz OSC ayarlarını denedim. Sonuç değişmedi. Problemi bulamadım. C# kısmını inceliyorum. Cihaza bağlandı yazısı oluşuyor. Umng.dll ile yapılaması gereken extra bir ayar var mı ? add reference olarak ekli.
Code'm mu oturturum !

ehliseyf

çok şükür sorunu hallettik. Yardımlarınız için teşekkür ederim. Sorunun header dosyalarından kaynaklandığı kanaatine vardım. Bütün header dosyalarını yükledim TFT'ler hariç. Kitapta sadece USB headerını yükleyin yazıyordu. String, Ctype gibi benzeri headerlara ihtiyaç duyduğunu tahmin ediyorum. Kitaptaki program çalışıyor. Aynısını yazdım iletişime geçiyor. Yardımlarını esirgemediği için selimkoc, LukeSkywalker ve Karamel hocama teşekkür ederim.
Code'm mu oturturum !

Ndemic

Merhabalar.Bende STM32f429zı öğrenmeye çalışıyorum.Selim hocamın kitabınıda aldım ve USB HİD uygulamsında takıldım.Kitaptaki usb otg uygulamasında kodları kendime göre düzeltmem gerektiği için bazı kodları kendi işlemcime göre değiştirdim.HID terminal programında yapılması gereken ayarlamalarıda yaptım fakat pc ile bağlantıyı yaptığım zaman ben cihazı HID olarak göremiyorum.Kitapta anlatılan bağlantıları ve gerekli beslemeleri yapıyorum fakat işlemciyi bir türlü HID den göremiyorum.Konfigürasyon ayarlarında problem olduğunu düşünüyorum ancak neredeyse yapmadığım konfigürasyon ayarı kalmadı.STM32 işlemcilerde yeniyim ve sizlerden yardımlarınızı bekliyorum.Şimdiden teşekkür ederim.

LukeSkywalker

Kitaptaki usb konusunu ben yazmistim ama otg ile ilgili birsey yazdigimi hatirlamiyorum. Siz proje dosyanizi gonderin onun uzerinden konusalim.

Ndemic

Öncelikle böyle bir kitap yazarak güzel bir kaynak oluşturduğunuz için sizlere teşekkür ediyorum.
Hazırladığım proje burada https://yadi.sk/d/iMuzuZYKoMbFA

picatronic

merhabalar arkadaşlar,
aynı sorunu ben de yaşıyorum. burda yazılanları aynen yaptım iki gündür uğraşıyorum. ama hala sonuç alamadım.yardımcı olabilecek biri olursa çok sevinirim.


LukeSkywalker

Alıntı yapılan: picatronic - 28 Mart 2016, 13:16:46
merhabalar arkadaşlar,
aynı sorunu ben de yaşıyorum. burda yazılanları aynen yaptım iki gündür uğraşıyorum. ama hala sonuç alamadım.yardımcı olabilecek biri olursa çok sevinirim.


Kite iki adet USB kabloyu da takmanız gerekli biliyorsunuz değil mi?

picatronic

sorunu çözdüm teşekkür ederim. tabiki de ikinci usb kablom takılıydı. sorun konfigürasyon hatasından kaynaklıymış.