avatar_elektro77

Aynı anda birden çok pic programlama

Başlatan elektro77, 24 Ağustos 2022, 10:28:42

elektro77

Merhabalar. Kolay gelsin.
Aynı ıcsp hattından birden çok birbiri ile aynı pic programlanabilir mi?
Yada bu nasıl yapılır. Tasarlayacağım bir devrede 8 adet pic10f200 veya benzeri smd pic olacağı için şimdiden öğrenmek istedim.
Edit:
Birden fazla pic kullanma sebebim, uart haberleşerek , frekansı, genişliği ve çıkış süresi ayarlanabilir 8 adet pwm çıkışına ihtiyacım var. Bunu tek bir picle yapabileceğimi sanmıyorum. Eğer buna uygun bir pic varsa önerebilir misiniz. En azında 2 pic ile 4+4 pwm olabilecek bir pic.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

4+4 pwm çıkışı olan kullandığım pic ler. 16F1825 ve 16F1827
Ete

mehmet

#2
https://www.microchip.com/en-us/parametric-search/chartno_717

Parametrik arama yapabilirsiniz.

PCA9685 'e de bakabilirsiniz.

Ek:
PIC1789 -> 16 PWM
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr

elektro77

#3
Alıntı yapılan: mehmet - 24 Ağustos 2022, 12:18:24PCA9685 'e de bakabilirsiniz.
Sayın @mehmet Hocam;
PCA9685 ile 8 kanal led çalıştırmak istiyorum. Pic basic ile yapılmış örnek kod paylaşabilirseniz sevinirim. İnternette sadece aşağıdaki kodları bulabildim ama yeterli gelmedi?
i2cControl var BYTE

i2cAddress var BYTE
pcaAddress var BYTE
pcaAddress = $40

i2cAddress = pcaAddress << 1

;Reset
;PCA9685_MODE1 0x0
i2cControl = 0
'I2CWRITE SDApin,SCLpin,i2cAddress,i2cControl,[0]

;Set PWM to 500Hz
;Prescaler = 11
;Calculate prescaler by:
;floor((((25000000/4096)/requiredFreqInHertz)-1)+0.5)
;For lack of float support or floor function the value can be calculated and then hard-coded

;Get old mode
oldMode var BYTE
;PCA9685_MODE1 0x0
i2cControl = 0
'I2CREAD SDApin,SCLpin,i2cAddress,i2cControl,[oldMode]
newMode var BYTE
;MODE1 Sleep
newMode = (oldMode & $7F) | $10
;Set MODE1 Sleep
;PCA9685_MODE1 0x0
i2cControl = 0
'I2CWRITE SDApin,SCLpin,i2cAddress,i2cControl,[newMode]
;Set Prescaler
;PCA9685_PRESCALE $FE
;Prescaler is 11
i2cControl = $FE
'I2CWRITE SDApin,SCLpin,i2cAddress,i2cControl,[11]
;Set old mode
;PCA9685_MODE1 0x0
i2cControl = 0
'I2CWRITE SDApin,SCLpin,i2cAddress,i2cControl,[oldMode]
Pause 5
;Set MODE1 AutoIncrementOn
;PCA9685_MODE1 0x0
i2cControl = 0
'I2CWRITE SDApin,SCLpin,i2cAddress,i2cControl,[oldMode | $A1]


;;Set a PWM channel
;;
pcaChannel var BYTE
pcaPwmValue var BYTE

pcaChannel = 0
pcaPwmValue = 4095
;LED0_ON_L 0x6
i2cControl = $6 + 4*pcaChannel
'I2CWRITE SDApin,SCLpin,i2cAddress,i2cControl,[0,0,pcaPwmValue,pcaPwmValue >> 8]

pcaChannel = 1
pcaPwmValue = 1024
;LED0_ON_L 0x6
i2cControl = $6 + 4*pcaChannel
'I2CWRITE SDApin,SCLpin,i2cAddress,i2cControl,[0,0,pcaPwmValue,pcaPwmValue >> 8]
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

mehmet

Maalesef PB bilgim çok zayıf. Ama isterseniz
C ile ilgili kodlarını verebilirim.
Çok basit deneme yapmıştım.
I2C kısmını halledebilirseniz, PCA9685 'e
bilgi yollamayı çözebiliriz birlikte.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
http://www.mehmetbilgi.net.tr

elektro77

#5
Alıntı yapılan: mehmet - 05 Eylül 2022, 16:58:07Maalesef PB bilgim çok zayıf. Ama isterseniz
C ile ilgili kodlarını verebilirim.
Çok basit deneme yapmıştım.
I2C kısmını halledebilirseniz, PCA9685 'e
bilgi yollamayı çözebiliriz birlikte.
Deneyeceğim. Siz yine de C olarak verin ben ona da bir bakayım rica etsem.
Aslında o zaman bu konuyu yeni bir başlıkta açmalıyız.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

Powered by EzPortal