16F18877

Başlatan erbiem, 17 Ocak 2018, 02:23:31

erbiem

Arkadaslar Merhaba,

16F18877 (16F877 yeni versyonu) HPWM komutuyla pwm çıkış alamıyorum. yapmam gereken pin ayarımı var?

Maxim

hangi versiyon sizinki? en son 3.6.0.3 var

erbiem

benim versiyon 3.6.0.2 .

ete

16F18877 ilk defa duyduğum bir işlemci. Yapılacak ilk iş hemen data sheet'ine bakmak olacak. Bakınca şunları görüyorum.
Bu işlemcide normal Capture/Compare/PWM modülün haricinde bir başka PWM modülü daha mevcut. PWM6 PWM7 diye adlandırılmış. Ama bu hangi pinlere denk geliyor bir türlü anlayamadım maalesef. PPS diye bir modül var Peripheral Pin Select diye adlandırılmış. Hangi pinden ne çıkış alacaksın yada bir özelliği hangi pinden alacaksın bunu seçmek için yaratılmış.

Sen acaba hangi çıkışları kullanacaksın?

Normal PWM modülü setup işlemleri data sheet'in 441 inci ayfasında verilmiş.

30.3.2  SETUP FOR PWM OPERATION başlığı altında bu açıklama.
1. Hangi pini PWM çıkışı olarak kullanacaksanız o çıkışı RxyPPS registerinden ayarlamak gerekiyor. Default pin (CCP1 için) PORTC2 verilmiş .
2. İlgli TRIS regsiterinde bu çıkışa ait bit SET edilerek CCP1X çıkış sürücüsü önce iptal edilmeli (kapatılmalı)
3. PR2 registerine gerekli değer verilerek period ayarlanmalı
4. CCp1CON registerine değer verilerek modül PWM için ayarlanmalı
5. CCP1L ve CCP1H registerlerine değer verilerek Duty Cycle ayarlanmalı
6.TMR2 regsiterine değer verilere hem bölme oranı ayarlanmalı hemde TMR2 ye start verilmeli. Bunun için önce PIR4 registerinde yer alan TMR2IF biti silinmeli,  T2CON registerine değer verilerek Prescaler ayarlanmalı ve sonunda TMR2ON biti set edilerek timer çalıştırılmalıdır.
7. PWM çıkış pini enable yapılmalı. Bunun için TMR2 nin overflow olup TMR2IF bitinin set olduğu beklenmeli ve ardından iligli TRIS biti tekrardan sıfırlanarak PWM çıkışı enable edilmelidir.
Yapılması gerekenler bunlar. Standart PWM işleminden biraz farklı gibi. Yalnızca okuyup açıklamaya çalıştım henüz deneme fırsatım olmadı.

Ete

erbiem

Hocam,

Şimdi ayarları yapıp deneyeceğim. sonucu paylaşırım.

İlginiz için teşekkürler.

Hattuşa

slm bu yeni nesil mcu 877 ye göre çok daha iyi en azından dahili 32mhz osc si var sanırım.
hpwm in proton hazır komutunu da kullanabilirsin. bunun için programın başına hangi pwm i aktif edecekseniz onun declarasyonunu bildirmeniz gerekir. bu tip uygulamalarda protonun ide nin helpinde bulunan proton combiler manuel pdf sini inceleyebilirsiniz. bu helpin 196. sayfasında hpwm komutunun nasıl kullanıldığı ayrıntılı anlatılıyor. ve diyor ki

Alıntı Yap
Declare CCP1_Pin Port.Pin ' Select Hpwm port and bit for CCP1 module.
Declare CCP2_Pin Port.Pin ' Select Hpwm port and bit for CCP2 module.

hangi hpwm i aktif edecekseniz o pini seçiniz.
umarım faydalı olmuştur

ete

Proton bu işlemciyi kullanmak için ne yapıyor merak ediyorum. İŞlemci çok enteresan.
Bütün standart input pinleri ile standart output pinlerini istediğiniz pinlere atayabiliyorsunuz. Bazı kıstlamaları var elbette.
Örneğin. INT0 pini normalde PORTB.0 dır ama bu işlemcide PORTA pinlerine bu özlliği verebiliyorsun yada PORTB nin diğer INT olmayan pinlerine bu özelliği aktarabiliyorsun.
PWM çıkışları default değerlerin yanı sıra PORTA - PORTB ve PORTC pinlerinden istediğinize be özellikleri aktarabiliyorsunuz.
PWM için yapılması gereken bir sürü register ayarı var. Onlar olmadan çalışacağını sanmam bu özelliğin.
İki gündür okuyorum (zaman zaman) bu data sheet'i hala tam olarak çözemedim.
PPS denilen sistem 24 ve 32F serilerinde zaten varmış. Şimdi ilk defa 8 bitlik işlemcilere bunu aktardılar. Güzel bir özellik ancak gittikçe karmaşıklaşıyor işlemciler. Konuya değil işlemciye hakim olmak gerekiyor anlayacağınız.

Ete

Powered by EzPortal