Proje

Genel

Profil

Actions

Tasarım #18

açık

Gömülü Yazılım

Redmine Admin tarafından neredeyse 3 yıl önce eklendi. yaklaşık 1 yıl önce güncellendi.

Durum:
New
Öncelik:
Normal
Başlangıç Tarihi:
23.11.2021
Bitiş Tarihi:
Tamamlanma yüzdesi:

0%

Kalan zaman:
40.00 s
Harcanan zaman:
13.00 s (Toplam: 30.00 s)

Dosyalar

DebugConfigFor SwV.png (62,7 KB) DebugConfigFor SwV.png Ferzende Tekçe, 01.02.2022 10:32
DebugConfigFor SwV2.png (109 KB) DebugConfigFor SwV2.png Ferzende Tekçe, 01.02.2022 10:32
AdimRobotEski.rar (668 KB) AdimRobotEski.rar Ferzende Tekçe, 04.03.2022 13:12
IlkAdim_Arayüz.rar (1,15 MB) IlkAdim_Arayüz.rar Ferzende Tekçe, 04.03.2022 13:14
ServoAyar.rar (64,1 KB) ServoAyar.rar Ferzende Tekçe, 04.03.2022 13:15
usb_interrup.png (52,4 KB) usb_interrup.png Ferzende Tekçe, 05.03.2022 20:00

Alt işler 1 (1 açıkhiç kapalı yok)

Tasarım #20: USB HaberleşmeNewFerzende Tekçe23.11.2021

Actions
Actions #1

Ferzende Tekçe tarafından neredeyse 3 yıl önce güncellendi

https://www.youtube.com/watch?v=92A98iEFmaA&t=37s bu adreste örnekte FS USB işlemi ile ilgili örnek konu anlatımı mevcut. Projede kullanmılabilir.

Actions #2

Ferzende Tekçe tarafından 2 yıldan fazla önce güncellendi

Bu debug işleminde her bir fonksiyonun execution time değeri ölçülebiliniyor. Bu işlem özellikle servo motor sürücü için harcanan zamanları ölçmek için önemli. Böylece çıkılabilinir en yüksek hız tespit edilebilir. Bu özelliği aktif edip kullanmak için sırası ile aşağıdaki işlemler yapılmalıdır. Yardım için https://www.youtube.com/watch?v=Eg_GLvLHM1o&list=PLnMKNibPkDnEDEsV7IBXNvg7oNn3MfRd6&index=3 ve https://www.youtube.com/watch?v=N_Q0Cz1vC6k&t=2s videolarına bakılabilir.
1-CubeMx Devce Configuration Tools->System Core->SYS->Debug->Trace Asynchorunus Sw seçilmeli.
2-Debug Congig ekranından ekteki şekilde olduğu gibi ayar yapılmalı.
3-#define ITM_Port32(n) ((volatile unsigned long)(0xE0000000+4*n)) makrosu tanımlandıktan sonra ölçümün başlatılacağı yere ITM_Port32(31)=1; ve biteceği yere ITM_Port32(31)=2; yazılmalı.
4-ITM_Port32(31)=1; ve ITM_Port32(31)=2; ye break point konularak debug başlatılmalı.
5-Debug esnasında Window sekmesinden SWV eklenmeli (Önemli not: Debug başlatılmadan menü görünmüyor. Ayrıca Start Trace (Kırımızı buton) kodda bir Break Point noktasında durulmadığı sürece pasif oluyor.
6-Ekteki 2. şekilde görülen işlem yapılarak fonksiyon Execution Time ölçülebilir.

Actions #3

Ferzende Tekçe tarafından 2 yıldan fazla önce güncellendi

HizYukle adlı fonsiyon her adımda her adım için gerekli zamanlamaları hesaplayıp bir diziye kayıt ediyor. Bu hesaplamada kullandığını SabitKatsayi2 adlı değişkenin değeri C# ta yazılan yazılımın oluşturduğu patern dosyasındaki bir t1 zamanı için gerekli olan en büyük adım sayısına eşit olarak alınıyor. Aksi taktirde motorların hareketleri arasında senkronizasyon bozuluyor. C sharp uygulamasında on ve arka motorlar için sabit katsayı 0.00533333 ve yatay motor için de 555.555555555 değeri alındı. Bu değerler servo motorun ElectoricGear parametresi 1000 (tüm motorlar için aynı değer kullanıldı) alınarak işlem başarılı bir şekilde test edildi. Hız yetersi. Hızlandırma için optimizasyonlara devam edilecek.

Actions #4

Ferzende Tekçe tarafından 2 yıldan fazla önce güncellendi

Yukarıda eklenen Arayüz uygulamasında boyut küçültmek amaçlı silinen bin ve obj klasörleri projenin çalışmamasına sebep oldu. Başka projeden kopyala yapıştır yapılarak sorun çözüldü.

Actions #5

Ferzende Tekçe tarafından 2 yıldan fazla önce güncellendi

STM32F4'te usb haberleşme yüksek timer intrrupt değerlerinde hata veriyordu. Bu da cihazın yüksek hızlara çıkarılmasını engelliyordu. Timer Interrupt Sup Priority değeri 1 ve USB Interrupt Sup Priority değeri 0 olarak ayarlandı. Böylece cihaz ile en yüksek timer interrupt değerlerinde bile sorunsuz haberleşme sağlanabiliniyor.

Actions #6

Ferzende Tekçe tarafından yaklaşık 1 yıl önce güncellendi

  • Kalan zaman 40.00 s yapıldı

1-Geliştirme bordundaki E5V ucuna 5 volt verilerek bord beslenebiliniyor.
Bu işlem için jp2 kısmındaki jumper ext ayarına alınmalıdır.
2- Ön tanımlı ayarlar ile işlemcinini frekansı 480 MHZ değerine çıkarılamıyor. 480MHZ için STM32CubeID arayüzünde System Core-> RCC->Product Revisyon Rev.V yapılmalı. Bu işlemden sonra da yine aynı menüden Power Regulator Voltage Scale Değeri 0 seçilmeli.
3-https://www.youtube.com/watch?v=ft8LXVcYFRg&list=PLCqQF0BnY9vDbZiYCUDxmvWo7zydgttHN&index=1&t=768s adresindeki tariflere göre yapılan ayarlanmalara rağmen usb driver çalışmadı. yapılan incelemeler sonucunda Clock Configuration alanındaki USB Clock Mux kısmından frekansın RC48 seçeneği seçilerek 48Mhz yapılması gerektiği bulunmuştur.

Actions

Diğer uygun kaynaklar: Atom PDF