c# USBHID komutları yardım

Başlatan Gökhan BEKEN, 15 Ağustos 2011, 17:40:27

Gökhan BEKEN

Alıntı yapılan: t2 - 19 Ağustos 2011, 23:34:49
kristal yanlış olabilir. kondansatörü eksiktir. ayrıca picin 3.3 V çıkıişı ile şase  arasına 470nF bağlamak gerekiyor. mclryi beslemeye bağlarsın. başka da pek kritik şey yok. usb aygıt örneğini çalışıyor  diye  yayınladılarsa  devre montajında usb kablosunda vs hata vardır. yoksa çalışması lazım.

Yok ben  projeyi sıfırdan kendim okudum vey yaptım diyorsan config, pll  vb bir ton hata olabilir. Bir maniniz yoksa çalışan hazır örneği deneyin.
kristal 48 Mhz
kristale 22pf lik 2 tane kristal bağlı
picin VUSB pini yani 18 nolu pini 470 nf kondansatör ile GND ye bağlı
MCLR direkt +5 volta bağlı sorun olur mu? Aslında direnç takmak için delik yaptım ama direnç yerine direkt tel ile köprü attım
Özel mesaj okumuyorum, lütfen göndermeyin.

t2

18f4550 için 48Mhz kristal bağlamamalısın. yanlış yapmışsın. hazır çalışan örnekte ne verildiyse onu bağlamalısın.  48 kesin yanlıştır. 20Mhz veya daha altı olmalıdır. Picin içinde PLL ile çalışma frekansı 48Mhz olarak yükseltilir

ben gerçek bir 18f4550 ve devre ile çalıştığından emin değilim.  sanal ortamda deniyor olaiblirsin. Yoksa niye göz göre göre yanlış parça takasın ki? Örneği yayınlayan adam ne dediyse aynısını yapmalısın.yoksa spor yaparsın

Gökhan BEKEN

Devreyi simulasyonla değil gerçekten yaptım ve bilgisayara bağlayarak deniyorum.
Devre tasarımını ben yaptım, kullandığım yazılım ise hazır, sadece modifiye ettim.
48 mhz bağlanmaması gerektiğini bilmiyordum, mclr'deki +5volta bağlı olan köprüyü söktüm devre yine çalışıyor sorun yine aynı. Dediğinizi bir araştırayım kaç mhz bağlamak gerekiyorsa ona göre bağlar sonucu bildiririm. İlginiz alakanız için sonsuz teşekkürler.
Özel mesaj okumuyorum, lütfen göndermeyin.

Gökhan BEKEN

Hocam çok sağolun 20 mhz bağladım artık tanıdı.
Özel mesaj okumuyorum, lütfen göndermeyin.

t2

Hayırlı olsun. Tamam artık sırtın yere gelmez :)

muhittin_kaplan

@ meftun
yeni gördüm. X550 iler PLL kullanır. 4mhz de kullanabilirsin. ama PLL i ayarlaman gerek. o 48Mhz işlemcinin içerisindeki USB modülü için Gerekli. Cihazı Tanıtmışsın. Sonrası gelir. Ayrıca CCS ile yazıyorsun Anladığım Kadarıyla. DLL, AcriveX uğraşma hazır çalışan bir C# örneği ile işi kotarırsın.

Gökhan BEKEN

Bir sorum var, 20MHZ kristal taktık, PLL ile 48 MHZ oldu tamam.
48mhz sadece usb kısmı için mi oldu, yoksa herşey için mi?
Yani benim yazdığım program 48 mhz ile mi çalışacak 20 mhz mi?
Eğer 20 mhz ile çalışacaksa, ben kodların 48 mhz(veya farklı bir frekans) ile çalışmasını istiyorsam ne yapmam lazım?
Özel mesaj okumuyorum, lütfen göndermeyin.

LukeSkywalker

Digimensch 'in yaptığı program çalışıyor...

muhittin_kaplan

Meftun Onu Ayarlayabiliyorsun
Config deki Usb div ile USB frekansını Cpudiv ile CPU frekansını ayarlayabiliyorsun. Ben 48Mhz Kullanıyorum CPU frekansını. 


kralsam

Arkadaşlar FPGA ile usb kullanımı hakkında tecrübesi olan varmı?
Hazır işlemci modülleri gömülerek mi kullanılıyor , yoksa direk modül olarak tesarlamaya çalışsak ne olur ?  ???

muratyamak10

#26
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace led_kontrol
{
    public partial class Form1 : Form
    {
        byte sayi = 0;
        protected override void OnHandleCreated(EventArgs e)
        {

            base.OnHandleCreated(e);
            usbHidPort1.RegisterHandle(Handle);
        }
        protected override void WndProc(ref Message m)
        {
            usbHidPort1.ParseMessages(ref m);
            base.WndProc(ref m);
        }
        public Form1()
        {
            InitializeComponent();
        }
        private void usb_gonder(byte veri)
        {
            byte[] dizi = new byte[usbHidPort1.SpecifiedDevice.OutputReportLength + 1];
            dizi[0] = 0;
            dizi[1] = veri;
            for (int i = 2; i < textBox1.Text.Length; i++) { dizi = 0xFF; }
            if (usbHidPort1.SpecifiedDevice != null)
            {
                usbHidPort1.SpecifiedDevice.SendData(dizi);
            }
            else
            {
                MessageBox.Show("USB cihaz hazır değil,cihazı takınız!.. ");
            }
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = " Herhangi bir USB Cihaz bağlı değil!..";
            checkBox1.Checked = true;
            checkBox2.Checked = false;
        }
        private void usbHidPort1_OnSpecifiedDeviceArrived(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = " Hikko USB HID (PIC18F4550) Cihazı bağlandı!";
        }
        private void usbHidPort1_OnDeviceArrived(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = " Herhangi bir USB Cihaz bağlandı!";
        }
        private void usbHidPort1_OnDeviceRemoved(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = " Hikko USB HID (PIC18F4550) Cihazı çıkarıldı!";
        }
        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                usbHidPort1.VendorId = Convert.ToInt32(textBox1.Text);
                usbHidPort1.ProductId = Convert.ToInt32(textBox2.Text);
                if ((usbHidPort1.VendorId == 4660) & (usbHidPort1.ProductId == 4660))
                {
                    usbHidPort1.CheckDevicePresent();
                }
                else
                {
                    MessageBox.Show("Yanlış Vendor ID veya Product ID girdiniz!..");
                }
            }
            catch
            {
                MessageBox.Show("Vendor ID ile Product ID girmelisiniz!..");
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                if (textBox3.Text != "")
                {
                    if (checkBox1.Checked)
                        sayi = Byte.Parse(textBox3.Text, System.Globalization.NumberStyles.HexNumber);
                    if (checkBox2.Checked)
                        sayi = Convert.ToByte(textBox3.Text);
                }
                usb_gonder(10);
            }
            catch
            {
                MessageBox.Show("Hikko USB HID (PIC18F4550) Cihazı bağlı değil!");
                textBox3.Text = "0";
            }
        }
        private void checkBox1_CheckedChanged(object sender,EventArgs e)
        {
            if(checkBox1.Checked)  checkBox2.Checked = false;
            if(checkBox2.Checked)  checkBox1.Checked = false;
            textBox3.MaxLength = 2;
            textBox2.Text = "0";
        }
        private void checkBox2_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox2.Checked) checkBox1.Checked = false;
            if (checkBox1.Checked) checkBox2.Checked = false;
            textBox3.MaxLength = 3;
        }
    }
}



mesaj birleştirme:: 01 Kasım 2014, 10:11:10

micro c uygulaması yapmak istiyorum usb ile bir türlü arayüzünü yazamadım bağlantı kurulamadı diyor c# 2010 ile 2008 ile derledim sonuç aynı hangi ayarları yapacağım c# ın

mesaj birleştirme:: 01 Kasım 2014, 10:19:18

micro c ile 18f4550 kitabındaki arayüzü yazmaya çalışıyorum.herhangi bir usb cihazı bağlanmadı yazıyor başka bir şey yazmıyor usb.dll ni ekledim programı yazarken

mesaj birleştirme:: 01 Kasım 2014, 10:19:53

nasıl yapmalıyım bir fikri olan varmı hocam

mesaj birleştirme:: 01 Kasım 2014, 10:23:27

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace led_kontrol
{
    public partial class Form1 : Form
    {
        byte sayi = 0;
        protected override void OnHandleCreated(EventArgs e)
        {

            base.OnHandleCreated(e);
            usbHidPort1.RegisterHandle(Handle);
        }
        protected override void WndProc(ref Message m)
        {
            usbHidPort1.ParseMessages(ref m);
            base.WndProc(ref m);
        }
        public Form1()
        {
            InitializeComponent();
        }
        private void usb_gonder(byte veri)
        {
            byte[] dizi = new byte[usbHidPort1.SpecifiedDevice.OutputReportLength + 1];
            dizi[0] = 0;
            dizi[1] = veri;
            for (int i = 2; i < textBox1.Text.Length; i++) { dizi = 0xFF; }
            if (usbHidPort1.SpecifiedDevice != null)
            {
                usbHidPort1.SpecifiedDevice.SendData(dizi);
            }
            else
            {
                MessageBox.Show("USB cihaz hazır değil,cihazı takınız!.. ");
            }
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = " Herhangi bir USB Cihaz bağlı değil!..";
            checkBox1.Checked = true;
            checkBox2.Checked = false;
        }
        private void usbHidPort1_OnSpecifiedDeviceArrived(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = " Hikko USB HID (PIC18F4550) Cihazı bağlandı!";
        }
        private void usbHidPort1_OnDeviceArrived(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = " Herhangi bir USB Cihaz bağlandı!";
        }
        private void usbHidPort1_OnDeviceRemoved(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = " Hikko USB HID (PIC18F4550) Cihazı çıkarıldı!";
        }
        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                usbHidPort1.VendorId = Convert.ToInt32(textBox1.Text);
                usbHidPort1.ProductId = Convert.ToInt32(textBox2.Text);
                if ((usbHidPort1.VendorId == 4660) & (usbHidPort1.ProductId == 4660))
                {
                    usbHidPort1.CheckDevicePresent();
                }
                else
                {
                    MessageBox.Show("Yanlış Vendor ID veya Product ID girdiniz!..");
                }
            }
            catch
            {
                MessageBox.Show("Vendor ID ile Product ID girmelisiniz!..");
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                if (textBox3.Text != "")
                {
                    if (checkBox1.Checked)
                        sayi = Byte.Parse(textBox3.Text, System.Globalization.NumberStyles.HexNumber);
                    if (checkBox2.Checked)
                        sayi = Convert.ToByte(textBox3.Text);
                }
                usb_gonder(10);
            }
            catch
            {
                MessageBox.Show("Hikko USB HID (PIC18F4550) Cihazı bağlı değil!");
                textBox3.Text = "0";
            }
        }
        private void checkBox1_CheckedChanged(object sender,EventArgs e)
        {
            if(checkBox1.Checked)  checkBox2.Checked = false;
            if(checkBox2.Checked)  checkBox1.Checked = false;
            textBox3.MaxLength = 2;
            textBox3.Text = "0";
        }
        private void checkBox2_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox2.Checked) checkBox1.Checked = false;
            if (checkBox1.Checked) checkBox2.Checked = false;
            textBox3.MaxLength = 3;
        }
    }
}



mesaj birleştirme:: 31 Ekim 2014, 20:24:19

fikri olan yokmu hocam