PIC İle Frekans Nasıl Üretilir?

Başlatan picmatik, 17 Temmuz 2017, 18:03:33

picmatik

Merhaba arkadaşlar. PIC ile frekans üreten bir proje yapacağım. 4 Mhzlik bir kristal 400Hz ile 100Khz arasında buton ile arttırıp azaltmak istiyorum. Arttırım ve azaltma 1Hz aralıklarla olacak. Ayrıca duty değerlerini de buton ile arttırıp azaltmak istiyorum. Programlamayı CCS C ile yapmak istiyorum. Nasıl bir yol izlemeliyim. Uğraştım ama bir türlü 1 Hz aralıklarla frekans değişimi yapamadım. Bu konuda bilgisi olan arkadaşların desteğini bekliyorum. Şimdiden teşekkürler.

ete

Frekans arttıkça birim artırım miktarıda artmalıdır. Yoksa işin içinden çıkamazsın.
Nasıl bir yöntem düşünüyorsun bilmiyorum ama en akıllıcası Hpwm seçeneğini kullanmak olurdu. Aksi halde istediğin işin ancak Asm ile yapılabileceğini onda bile yüzde 100 randıman alınabileceğini garanti etmek çok zor.
Picmulticalc isimli bir kısa program var. Bulup yükle ve pwm kısmında başkangıç ve bitiş frekanslarını verip bir bak bakalım çözünürlük söz konusu frekanslarda ne oluyor.
Ete

picmatik

Alıntı yapılan: ete - 17 Temmuz 2017, 19:20:56
Frekans arttıkça birim artırım miktarıda artmalıdır. Yoksa işin içinden çıkamazsın.
Nasıl bir yöntem düşünüyorsun bilmiyorum ama en akıllıcası Hpwm seçeneğini kullanmak olurdu. Aksi halde istediğin işin ancak Asm ile yapılabileceğini onda bile yüzde 100 randıman alınabileceğini garanti etmek çok zor.
Picmulticalc isimli bir kısa program var. Bulup yükle ve pwm kısmında başkangıç ve bitiş frekanslarını verip bir bak bakalım çözünürlük söz konusu frekanslarda ne oluyor.
Ete
Programı yükleyip baktım hocam. 1 Hz arttırma olmuyor. Onu nasıl çözebilirim. Hpwm kullanınca istedigim tam degerdeki frekanslar olmuyor. Bazen 4 Hz bazen 8Hz arttırım oluyor. İstedigim her frekansı olusturmanın baska bir yolu yokmudur. Birde arttırım isleri icin buton kullanacagim. Bu konuda faydalanabilecegim ornek varmidir.

ete

#3
Benzer işler yapmıştım. Hatırladığım 1 hz kademenin neredeyse imkansız olduğu dur.
Yolu yokmu diye sorarsan yok demem daha doğru olur. 1 hz kademeyi unutman gerek.
10 hz kademe bile iddialı olur düşük frekanslarda çalışır ama yüksek frekanslarda çalışmaz.
Biraz üzerinde çalış anlarsın işin ne kadar zor olduğunu. 4 mhz yerine daha yüksek osc frekanslarını dene istersen.
Buton kullanımı için önce yöntemini belirlemen gerekir. Hpwm sisteminde iki parametre var. Birisi timer2 bölme oranı diğeride pr2 register değeridir. Buton ile pr2 değerini birer birer değiştirirken frekansa uygun bölme oranınıda takip edip uygun oranı vermen gerekir. Bu yöntemi kullanmayacak isen kesme ile frekans oluşturman ve high - low sürelerini frekansa göre hesaplayıp o sürelerde kesme oluşturman gerekir. Ama komut gecikmeleri hassas bir frekans uygulamanı engelleyecektir.

Ete

picmatik

Alıntı yapılan: ete - 17 Temmuz 2017, 20:58:50
Benzer işler yapmıştım. Hatırladığım 1 hz kademenin neredeyse imkansız olduğu dur.
Yolu yokmu diye sorarsan yok demem daha doğru olur. 1 hz kademeyi unutman gerek.
10 hz kademe bile iddialı olur düşük frekanslarda çalışır ama yüksek frekanslarda çalışmaz.
Biraz üzerinde çalış anlarsın işin ne kadar zor olduğunu. 4 mhz yerine daha yüksek osc frekanslarını dene istersen.
Buton kullanımı için önce yöntemini belirlemen gerekir. Hpwm sisteminde iki parametre var. Birisi timer2 bölme oranı diğeride pr2 register değeridir. Buton ile pr2 değerini birer birer değiştirirken frekansa uygun bölme oranınıda takip edip uygun oranı vermen gerekir. Bu yöntemi kullanmayacak isen kesme ile frekans oluşturman ve high - low sürelerini frekansa göre hesaplayıp o sürelerde kesme oluşturman gerekir. Ama komut gecikmeleri hassas bir frekans uygulamanı engelleyecektir.

Ete
Verdiğin bilgiler için teşekkürler hocam. Biraz araştırayım. Sanırım pwm kullanarak yapacagım.

Tarik konca

ne kadar hizli islemci ile calisirsaniz o kadar az hata yapip  yuksek cozunurluklu yuksek frekans elde edbileceginizi dusunuyorum

tabi proje icin ayirdiginiz parada onemli

alttaki secenekleri bir dusunun bence

arduino nun stm32 modelleri var aliexpressde 3.5 dolardan basliyan fiyatlarla oldukca hizli

bunu kesinlikle tavsiye ederim fakat kendi idesi cok eski xp de win7 32 bit makinelerde calisiyor  3.38 dolar

http://docs.leaflabs.com/docs.leaflabs.com/index.html

https://www.aliexpress.com/item/leaflabs-Leaf-maple-mini-ARM-STM32-compatibility/32214664071.html?spm=2114.search0104.3.25.3a4Xx1&ws_ab_test=searchweb0_0,searchweb201602_2_10152_10065_10151_10068_10172_10084_10083_10119_10080_10082_10081_10110_10137_10111_10060_10112_10113_10155_10114_10154_438_10056_10055_10054_10182_10059_100031_10099_10078_10079_10103_10073_10102_10120_5360020_10189_10052_10053_10142_10107_10050_10051,searchweb201603_1,ppcSwitch_5&btsid=d9a403d9-ba60-4d11-a581-926a612fc023&algo_expid=01fe400b-5a58-4491-b28e-e22d9ce9a6b2-3&algo_pvid=01fe400b-5a58-4491-b28e-e22d9ce9a6b2

burda degisik bir kullanim bicimleri anlatilmis turkce olarak:

https://onudayapariz.wordpress.com/2016/02/10/maple-mini-klonu-ve-arduino-ide/

ozellikleri:


    MCU: STM32F103RCBT6, a 32-bit ARM Cortex M3 microprocessor
    Clock Speed: 72 MHz
    128 KB Flash and 20 KB SRAM
    34 digital I/ pins (GPIOs)
    12 PWM pins at 16 bit resolution
    9 analog input (ADC) pins at 12 bit resolution
    2 SPI peripherals
    2 I2C peripherals
    7 Channels of Direct Memory Access (DMA) (dma.h)
    3 USART (serial port) peripherals
    1 advanced and 3 general-purpose timers
    Dedicated USB port for programming and communications
    JTAG
    Nested Vectored Interrupt Controller (NVIC) (including external interrupt on GPIOs)
    Supplies up to 500 mA at 3.3 V, with separate 250 mA digital and analog regulators for low-noise analog performance
    Open source, four layer design
    Support for low power, sleep, and standby modes (<500 μA)
    Operating Voltage: 3.3 V
    Input Voltage (recommended): 3 V — 12 V
    Dimensions: 2.02″ × 0.72″



linux bilyorsaniz bunu kesinlikle tavsiye ederim 7 dolara pc :
https://www.aliexpress.com/store/product/New-Orange-Pi-Zero-H2-Quad-Core-Open-source-development-board-beyond-Raspberry-Pi/1553371_32760774493.html

linux az biliyorsaniz ve platforma yabanci iseniz raspberry pi leri arastirin biraz daha pahali

bu aliexpresde 12.5 dolardi:
https://developer.mbed.org/platforms/KL25Z/

bu 20 dolarmis bence cok pahali fakat dip soket islemci var gozukuyor:
https://developer.mbed.org/platforms/LPC1114FN28/

hala pic serisi islemcilerle projeye devam etmek istiorsaniz dspicleri deneyin fakat cok pahalilar

ornekler:
dspic 30f4013
http://www.microchip.com/wwwproducts/en/dsPIC30F4013

Architecture
16-bit
CPU Speed (MIPS)
30
Memory Type
Flash
Program Memory (KB)
48
RAM Bytes
2,048
Temperature Range C
-40 to 125
Operating Voltage Range (V)
2.5 to 5.5
I/O Pins
30
Pin Count
40
System Management Features
BOR, LVD
POR
Yes
WDT
Yes
Internal Oscillator
7.37 MHz, 512 kHz
Digital Communication Peripherals
2-UART
1-SPI
1-I2C
Codec Interface
Yes
Analog Peripherals
1-A/D 13x12-bit @ 200(ksps)
CAN (#, type)
1 CAN
Capture/Compare/PWM Peripherals
4/4
PWM Resolution bits
16
Timers
5 x 16-bit 2 x 32-bit
Parallel Port
GPIO


yada dip soket pic32mx islemci var:

PIC32MX250F128B

http://www.microchip.com/wwwproducts/en/PIC32MX250F128B

ozellikleri:

Family
PIC32MX2xx
Max Speed MHz
50
Program Memory Size (KB)
128
RAM (KB)
32
Auxiliary Flash (KB)
3
Temperature Range (C)
-40 to 105
Operating Voltage Range (V)
2.3 to 3.6
DMA Channels
4
SPITM
2
I2CTM Compatible
2
CODEC Interface (I2S,AC97)
Yes
Peripheral Pin Select (PPS) Crossbar
Yes
CTMU
Yes
USB
FS Device/Host/OTG
USB Interface
1,FS Device/Host/OTG
A/D channels
9
Max A/D Resolution
10
Max A/D Sample Rate (KSPS)
1100
Input Capture
5
Output Compare/Std. PWM
5
16-bit Digital Timers
5
Parallel Port
PMP
Comparators
3
Internal Oscillator
8 MHz, 32 kHz
I/O Pins
19
Pin Count




Tek Care Format C:

onurinci

1 hz değil .1hz bile yaparsın,Analog device firmasının DDS çipleri var ve ShiftOut komutu ile pekala sürülebiliyorlar,örnek AD9833,34,35,50,51 gibi..bu durumda seçilen işlemcinin yada frekansının bir önemi kalmıyor..

Powered by EzPortal