Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: ahmetgokce01 - 18 Ocak 2017, 11:00:59

Başlık: PIC24FJ256GB106 32MHZ çalıştırma
Gönderen: ahmetgokce01 - 18 Ocak 2017, 11:00:59
Merhaba arkadaşlar CCS C'de PIC24FJ256GB106 mcusunu dahili osilatöründe 32Mhz olarak çalıştırmak istiyorum fakat #FUSES ayarlarını yapamadım 32mhz de çalıştıramıyorum donanımsal olarak usb portunu şimdilik kullanmayacagım, ccs c forumlarda paylaşımlar yapılmış fakat çözüme ulaşmamış.
ccs c de olması gereken FUSES ayarlarında yardımcı olur musunuz?
mcu nun datasheetinde osilatör diyagramı resimdeki gibi fakat ccs c de hangi ayarları nasıl gerçekleştireceğimi bulamadım açıkçası.
(http://i.hizliresim.com/vXl1jp.jpg)

Başlık: Ynt: PIC24FJ256GB106 32MHZ çalıştırma
Gönderen: kantirici - 18 Ocak 2017, 11:25:36
hatırladığım kadarıyla ccs c de proje oluştururken "wizard"  dan kristal seçenekleri seçiliyor. Yeni proje oluşturun ve kristal ayarını istediğiniz gibi yapın. gerikli kodu kendisi üretecektir.
Başlık: Ynt: PIC24FJ256GB106 32MHZ çalıştırma
Gönderen: ahmetgokce01 - 18 Ocak 2017, 11:54:18
Evet onuda denedim ama maalesef sanki bana eksik kodlar üretiyor gibi geldi derleyici.
ilk olarak dahili osilatörünü kullanmak istiyorum devre tasarımında aynı zamanda 16mhz kristalde bağlı harici kristalden çalıştırmak istediğimde de 32mhze ulaştıramadım her çeşit pll modlarını denedim harici 16mhz kristal kullanılacaksa PLL4 olacak diyor yani çok şey denedim ama bir türlü tutturamadım doğrusunu.Bu mcuyu CCS C derleyiciyle kullanan arkadaşlarımız bu konuda destek verirlerse çok sevinirim.
Başlık: Ynt: PIC24FJ256GB106 32MHZ çalıştırma
Gönderen: ahmetgokce01 - 18 Ocak 2017, 12:08:37
https://www.picproje.org/index.php/topic,65872.0.html

burada bu mcu ile yine fuses ayarlarıyla ilgili problem yaşanmış ama problemin çözümü ile ilgili bir sonuç bulamadım
Başlık: Ynt: PIC24FJ256GB106 32MHZ çalıştırma
Gönderen: sadogan - 18 Ocak 2017, 12:50:03
osc ile ilgili ayarları
#use delay(clock=32MHz,oscillator=16MHz)
degiğinizde kendisi otomatik yapar.

Başlık: Ynt: PIC24FJ256GB106 32MHZ çalıştırma
Gönderen: ahmetgokce01 - 18 Ocak 2017, 14:37:58
Keşke yapsa :)
o zaman ben en son ayarladığım fuses leri ekleleyim ona göre değerlendirelim.
Başlık: Ynt: PIC24FJ256GB106 32MHZ çalıştırma
Gönderen: sadogan - 18 Ocak 2017, 16:52:38
Sizin derleyicide bir sıkıntı var o zaman
Başlık: Ynt: PIC24FJ256GB106 32MHZ çalıştırma
Gönderen: ahmetgokce01 - 18 Ocak 2017, 20:35:18

#include <24FJ256GB106.h>
#device ADC=16

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES NOJTAG                   //JTAG disabled
#FUSES CKSFSM                   //Clock Switching is enabled, fail Safe clock monitor is enabled

#device ICSP=1
#use delay(internal=4MHz)


yaptığımda dahili frekansta 4mhz olarak çalışıyor hiçbir şekilde 32mhz ya da 4Mhz'nin üzerinde çalıştıramıyorum.
Sorun derleyiciden olabilir mi diyorsunuz.
Başlık: Ynt: PIC24FJ256GB106 32MHZ çalıştırma
Gönderen: esensoy - 19 Ocak 2017, 00:23:53
bu ayarlarla proteusta gb değil ama ga serisini çalıştırıyor,

Siz 32MHZ de çalışmadığına nasıl kanaat getiriyorsunuz?

#use delay(internal=32MHz)

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES WINDIS                   //Watch Dog Timer in non-Window mode
#FUSES NOWRT                    //Program memory not write protected
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOJTAG                   //JTAG disabled
#FUSES DISUVREG                 //Internal USB 3.3V Regulator disabled
#FUSES IOL1WAY                  //Allows only one reconfiguration of peripheral pins
#FUSES NOOSCIO                  //OSC2 is clock output
#FUSES CKSFSM                   //Clock Switching is enabled, fail Safe clock monitor is enabled
#FUSES IESO                     //Internal External Switch Over mode enabled
#FUSES WPFP                     //Write/Erase Protect Page Start/End Location, set to last page or use WPFP=x to set page
#FUSES WPDIS                    //All Flash memory may be erased or written
#FUSES NOWPCFG                  //Configuration Words page is not erase/write-protected
#FUSES WPEND                    //Flash pages WPFP to Configuration Words page are write/erase protected
Başlık: Ynt: PIC24FJ256GB106 32MHZ çalıştırma
Gönderen: ahmetgokce01 - 19 Ocak 2017, 08:07:04

while(1){

         output_toggle(led);
         delay_ms(500);

}


toplam 1saniyede yan sön yapması gereken led, 1 saniyeden fazla yanıyor 1 saniyeden fazla sönük kalıyor.
Başlık: Ynt: PIC24FJ256GB106 32MHZ çalıştırma
Gönderen: esensoy - 19 Ocak 2017, 09:23:22
Ohooo
ofonksiyonun 500ms süreceğini kimse garanti etmiyor ki,
Bu ölçüt değil maalesef,

Kaç sn sürüyor sizin hesabınıza göre?

Şema resim kod gönderin, detaylı bakalım
Başlık: Ynt: PIC24FJ256GB106 32MHZ çalıştırma
Gönderen: ahmetgokce01 - 19 Ocak 2017, 13:55:22

#include <24FJ256GB106.h>
#device ADC=16
#device ICSP=1

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES NOJTAG                   //JTAG disabled
#FUSES CKSFSM                   //Clock Switching is enabled, fail Safe clock monitor is enabled
#FUSES FRC//,FRC_PLL

#use delay(internal=8MHz)

#use FIXED_IO( E_outputs=PIN_E6 )
#use FIXED_IO( D_outputs=PIN_D6,PIN_D5 )

#define power_led     PIN_D5
#define network_led   PIN_D6

#ZERO_RAM


void main()
{
   //setup_oscillator(OSC_INTERNAL);
   set_pulldown(TRUE, PIN_C14);

   enable_interrupts(INT_RDA);
   enable_interrupts(INT_RDA2);
   enable_interrupts(INT_RDA3);
   enable_interrupts(INT_RDA4);
   disable_interrupts(INTR_GLOBAL);

   while(TRUE)
   {
      //TODO: User Code
     
   output_toggle(power_led);
   output_toggle(network_led);
   delay_ms(500);

   }

}


kod bu haliyle 8mhz çalıştığına inanıyorum ledin 500ms yanma sönme durumuna göre, bu tabi kesin birşey değil ama süresi kaba karşılaştırmama göre tutuyor, sonuç olarak 8MHZ değilde 16Mhz ya da 32Mhz dediğim anda süreler yavaşlıyor yanma ve sönme süreleri mevcut 500milisaniyenin 2 katına ya da 3 katına çıkıyor yani doğru çalışmıyor.
Başlık: Ynt: PIC24FJ256GB106 32MHZ çalıştırma
Gönderen: ahmetgokce01 - 19 Ocak 2017, 14:11:51
Daha önce de 18f46k22 mcusunda timer ayar problemi yaşamıştım timer bir türlü çalışmıyordu sorun ccs c derleyicisinden çıktı derleyicide versiyon değişikliği yapmıştım düzelmişti bu da mı öyle acaba deneyeceğim.
Başlık: Ynt: PIC24FJ256GB106 32MHZ çalıştırma
Gönderen: ehliseyf - 19 Ocak 2017, 16:24:34
İletiyi düzenleyemedim. Mod arkadaşlardan rica bu ileti silinsin.
Başlık: Ynt: PIC24FJ256GB106 32MHZ çalıştırma
Gönderen: ehliseyf - 19 Ocak 2017, 16:25:17
Alıntı yapılan: ahmetgokce01 - 18 Ocak 2017, 12:08:37
https://www.picproje.org/index.php/topic,65872.0.html

burada bu mcu ile yine fuses ayarlarıyla ilgili problem yaşanmış ama problemin çözümü ile ilgili bir sonuç bulamadım
Konunun çözümünde donanımsal arıza  olduğu fark edilerek çözüme kavuşturuldu. Ayarlarım harici OSC ile çalışır durumda. Dahili OSC kullanmadım. PLL bölmelerine dikkat etmelisiniz. Sorunu madde madde sıralama şansınız var mı ?
Başlık: Ynt: PIC24FJ256GB106 32MHZ çalıştırma
Gönderen: ahmetgokce01 - 21 Ocak 2017, 01:08:13
sorun ne yaptıysam 8mhz nin üzerine çıkamadım harici 20mhz kristal kullanmak istersem fuses ayarlarım nasıl olmalı paylaşır mısınız.
Başlık: Ynt: PIC24FJ256GB106 32MHZ çalıştırma
Gönderen: ahmetgokce01 - 21 Ocak 2017, 13:40:09
Merhaba arkadaşlar sorun  CCS C derleyici hatası, problem çözüldü.
CCS C version 5.007 olan derleyiciyi CCS C version 5.012 yükselttim şuanki haliyle 32 mhz olarak çalışıyor dikkat edilmesi gereken bir husuta void main den sonra setup_oscillator(OSC_INTERNAL,32000000); fonksiyonunu kullanmak, derleyicinin versiyonunu değiştirerek input olarak kullanamadığım giriş pinleride çalışmaya başladı.

bendeki çalışan haliyle oluşturulmuş kodları paylaşıyorum umarım yapacak arkadaşlara faydası olur.


#include <24FJ256GB106.h>
#device ADC=16
#device ICSP=1

#use delay(internal=32MHz)
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES NOJTAG                   //JTAG disabled
#FUSES CKSFSM                   //Clock Switching is enabled, fail Safe clock monitor is enabled
#FUSES FRC
#fuses DISUVREG                 //Internal USB 3.3V Regulator disabled

#include "mcp3424.c"
#include "ds18b20.c"

#use FIXED_IO( C_outputs=PIN_C13 )
#use FIXED_IO( D_outputs=PIN_D6,PIN_D5,PIN_D0,PIN_D11,PIN_D8 )
#use FIXED_IO( E_outputs=PIN_E6,PIN_E4,PIN_E5 )


#define ras    PIN_C14
#define sm      PIN_E0
#define lcd    PIN_E6
#define pw      PIN_D5
#define net    PIN_D6
#define RI    PIN_G8

#define in1    input(PIN_B9)
#define in2    input(PIN_B10)
#define in3    input(PIN_B11)
#define in4    input(PIN_B12)
#define in5    input(PIN_B13)
#define in6    input(PIN_B14)
#define in7    input(PIN_B15)

#define out1   PIN_E4
#define out2   PIN_E5
#define out3   PIN_D8
#define out4   PIN_C13
#define out5   PIN_D0
#define out6   PIN_D11

#pin_select U1TX=PIN_D1
#pin_select U1RX=PIN_D2
#use rs232(UART1, baud=9600, errors, stream=a)

#pin_select U2TX=PIN_G7
#pin_select U2RX=PIN_G6
#use rs232(UART2, baud=9600, errors, stream=b)

#pin_select U3TX=PIN_B6
#pin_select U3RX=PIN_B7
#use rs232(UART3, baud=9600, enable=PIN_F1, errors, stream=c)

#pin_select U4TX=PIN_B5
#pin_select U4RX=PIN_B4
#use rs232(UART4, baud=9600, enable=PIN_F0, errors, stream=d)

#use i2c(MASTER, I2C1, FAST, stream=I2C_PORT1)

#ZERO_RAM

#INT_RDA
void  rda_isr(void)
{

}

#INT_RDA2
void  rda2_isr(void)
{

}

#INT_RDA3
void  rda3_isr(void)
{

}

#INT_RDA4
void  rda4_isr(void)
{

}

void main()
{
   setup_oscillator(OSC_INTERNAL,32000000);

   set_pulldown(FALSE, PIN_C14);
   set_tris_b(0xff);
 
   enable_interrupts(INT_RDA);
   enable_interrupts(INT_RDA2);
   enable_interrupts(INT_RDA3);
   enable_interrupts(INT_RDA4);
   enable_interrupts(INTR_GLOBAL);


   output_high(power_led);
   output_high(network_led);
   adc_init(0); //adresler 0'a çekili / adres:000  /
   while(TRUE)
   {
      //TODO: User Code
     
   output_toggle(power_led);
   output_toggle(network_led);
   delay_ms(500); //TEST BING LED sönme ve yanık kalma süresi

   }

}

Başlık: Ynt: PIC24FJ256GB106 32MHZ çalıştırma
Gönderen: Murat Mert - 21 Ocak 2017, 14:55:45
S.A.
Yeni mcu larda main altında setuplardan sonra ayraların mcu tarafından yapılması için  min. 1000 ms koyun. 18F46k80 de bir problem yaşadım Forumdan Burak Demir tavsiye etti delay_ms(1000); ilacı oldu.
Başlık: Ynt: PIC24FJ256GB106 32MHZ çalıştırma
Gönderen: forsa1975 - 24 Ocak 2019, 10:35:03
Kendi deneyimlerimden konu ile ilgili olabilecek iki gözlemim oldu.

Kristal giriş pinlerindeki 22 pf kondansatörler kaldırıldığında bütün problemlerin düzeldiği görülmüştür.
SMD üzerinde kod olmadığı için, belki de yanlış değerde olabilir.

Düzensiz çalışan ve dokunulunca reset alan devrelerde kristalin değiştirilmesi ile problemlerin çözüldüğü görülmüştür.