Pic Ve USB - Sorun var Lütfen Yardım

Başlatan DannyZ, 19 Kasım 2007, 22:34:06

DannyZ

Arkadaşlar devre için çözümler bulundu. öncelikle osilatör ayarları çokçok önemli olduğu anlaşıldı ve aşağıda resimlerini koyduğumuz ayarlarla çalıştı. normal quartz crystal parazitten çok etkilenior die, sürekli bağlantıyı kesiordu. bu yüzden de crystal osilatör bağladık 48 mHz. Proje 2 gün gecikti teslim için hoca da kabul etmedi okulumuz bir dönem daha uzadı. Hepinize ilgilendiğiniz için teşekkür ederm.

Ayarlarımız

Somethings are better left unsaid...

DannyZ

Arkadaşlar devre için çözümler bulundu. öncelikle osilatör ayarları çokçok önemli olduğu anlaşıldı ve aşağıda resimlerini koyduğumuz ayarlarla çalıştı. normal quartz crystal parazitten çok etkilenior die, sürekli bağlantıyı kesiordu. bu yüzden de crystal osilatör bağladık 48 mHz. Proje 2 gün gecikti teslim için hoca da kabul etmedi okulumuz bir dönem daha uzadı. Hepinize ilgilendiğiniz için teşekkür ederm.

Ayarlarımız

Somethings are better left unsaid...

teknikelektronikci

dannyz hocam bu ayarlar hakkinda bilgi verirmisiniz acaba?
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

DannyZ

arkadaşlar herkes faydalansın diye, projenin tüm dökümanlarını Pc program kodları, pic program kodları, proteus şemaları. tamamen çalışıor sistem. 2 farklı örnek yapmıştım hepsi aşağdaki linkte. Hayırlı Uğurlu olsun

http://rapidshare.com/files/215436014/pic2pc.rar
Somethings are better left unsaid...

teknikelektronikci

dannyz hocam elinize saglik paylasim icin tesekürler
fakat ben size sunu sormak istiorum basit bir program icin (led yak söndür) 18f4550 icin hangi ayarlari yapmam gerek acaba? (20 Mhz kullanacam)
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

DannyZ

hocam inanın şuan hiç hatırlamıorm üzerinden çok zaman geçti ve o günden sonra hiç uğraşmadım bidaha. ben biraz bakıyım bi not felan aldıysam bununla ilgili bulursam burdan yazarım yine. iyi çalışmalar
Somethings are better left unsaid...

teknikelektronikci

Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

elt42at

DannyZ, sen bu projeyi uğur hocayamı yaptın?

DannyZ

uğur hoca derken? okulda Hayrettin hocaya yaptım:)
Somethings are better left unsaid...

elt42at

Tutmadı galiba!

Konya felan geçmiş arada, ben de uğur hocamıza aynı projeyi biri yapmıştı, o arkadaşmısınız diye atladım :D

learner

Alıntı yapılan: "teknikelektronikci"dannyz hocam elinize saglik paylasim icin tesekürler
fakat ben size sunu sormak istiorum basit bir program icin (led yak söndür) 18f4550 icin hangi ayarlari yapmam gerek acaba? (20 Mhz kullanacam)

Bu ricayı tekrarlasak olur mu acaba :?:

muhittin_kaplan

Osc ne olursa olsun PLL bölme işlemini 4Mhz e göre ayarlanmalı.
yani 20Mhz lk bir OSC için PLL i 1/5 seçilmelidir ki 96Mhz lik PLL çıkışını kullanılabilinsin. (Pll çıkışın tekrardan 2 ye bölerek USB için gerekli 48mhz oluşturuyor)


sir_hawk

Usb konusunda sorunu olan arkadaşlara yardımcı olabilirim ( PBP dilinde :)  )

Led yakma konusu hala güncelse örnek vereyim  ?

muhittin_kaplan


sir_hawk

Merhaba Muhittin hocam,görüşmeye kısmet bu başlıkmış :)

Edit = Config değerleri 20 MHz kristal içindir.
asm
    __CONFIG    _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L  
    __CONFIG    _CONFIG1H, _FOSC_HSPLL_HS_1H & _FCMEN_OFF_1H & _IESO_OFF_1H 
    __CONFIG    _CONFIG2L, _PWRT_ON_2L & _BOR_ON_2L  & _BORV_2_2L  & _VREGEN_ON_2L   
    __CONFIG    _CONFIG2H, _WDT_OFF_2H 
    __CONFIG    _CONFIG3H, _MCLRE_ON_3H & _LPT1OSC_OFF_3H & _PBADEN_OFF_3H & _CCP2MX_ON_3H 
    __CONFIG    _CONFIG4L, _STVREN_ON_4L & _LVP_OFF_4L & _ICPRT_OFF_4L  & _XINST_OFF_4L & _DEBUG_OFF_4L 
    endasm

DEFINE OSC 48          
DEFINE LOADER_USED 1


USBBufferSizeMax   con 9  ' maximum buffer size
USBBufferSizeTX    con 9  ' input 
USBBufferSizeRX    con 9  ' output

USBBuffer        Var Byte[USBBufferSizeMax] 
USBBufferCount   Var Byte


PORTB= 0 : TRISB=0
PORTC.7=0 : TRISC.7=1

X VAR BYTE
LED VAR BYTE

MAIN :

WHILE PORTC.7=1
USBINIT
GOSUB DOUSBIN
WEND


FOR X=1 TO 9
READ X,LED
PORTB=LED
PAUSE 250
NEXT X

GOTO MAIN

DOSUBIN:

USBBufferCount = USBBufferSizeRX
   USBService                       
   USBIn 1, USBBuffer,USBBUFFERCOUNT, EEYAZ   ' USBBUS tan veri gelmediği zaman EEYAZ alt programına dallan

EEYAZ:
IF USBBUFFER[0]!=0 THEN              ' USBBUFFERDAN GELEN VERI EEPROMA YAZILIYOR VE BUFFERLAR SILINIYOR,YENI VERI GELİRSE EEPROMA KAYIT EDİLİYOR AKSİ HALDE DOUSBIN E DALLANIYOR.
FOR X=0 TO 8
WRITE X,USBBUFFER[X]
PAUSE 1
NEXT X
CLEAR
ELSE
GOTO DOUSBIN
ENDIF
RETURN





PORTC'nin 7 nolu pini usb bağlantısı için giriş olarak ayarlandı,yani burada ki kodu kullanıcak sistem her zaman usb hattına bağlı kalmadığı için böyle bir kontrol kullandım.  USB hattından gelen verilerde suna dikkat edilmesi gerek, VisualBasic'te ilk data yani usbbuffer(0)=0 olarak gönderilir ve pic tarafında ki usbbuffer(0)'ınıza eşit değildir. VB'den gönderdiğiniz usbbuffer(1)= pic tarafında ki usbbuffer(0)  . VB tarafında bir command. button'a ait yordamları ise ;


BufferOut(0) = 0   ' first by is always the report ID
   BufferOut(1) = LED(8) ' write the data (don't forget, pass the whole array)...
   BufferOut(2) = LED(0)
   BufferOut(3) = LED(1)
   BufferOut(4) = LED(2)
   BufferOut(5) = LED(3)
   BufferOut(6) = LED(4)
   BufferOut(7) = LED(5)
   BufferOut(8) = LED(6)
   BufferOut(9) = LED(7)
   BufferOut(10) = LED(8)
   hidWriteEx VendorID, ProductID, BufferOut(0)



LED değişkenini byte olarak en başta tanımlarsanız programda her yerde kullanabilirsiniz. Elimden geldiğince anlatmaya çalıştım,anlatamadığım yada anlaşılmadığım yerleri soprarsanız yine yardımcı olmaya çalışırım.