(http://s13.postimg.cc/gxf3opj83/phase_correct_pwm.jpg) (http://postimg.cc/image/gxf3opj83/)
üst resimde ki gibi pwm üreten mikro işlemciye ihtiyacım var.
atmelin avrleri bunu yapıyor. fiyatları çok yüksek diye biliyorum.
stm8s elimde birkaç adet var ama oda bu tarz bir pwm üretemiyor gibime geldi benmi yanılıyorum.
bu arada pic haricinde az pinli ne kullanılabilir.
yanlış bilmiyorsam atmega üstteki gibi üretebiliyordu ayrıca fiyatlarının da normal olması lazim
hocam asıl ilgilendiğim stm8s bu pwm sinyalini üretirmi önce üretmiyorda emin olursam ikinci aşama olarak alternatif işlemci bakacağım
Çipin dokümanında "centering pwm mode" diye araştıracaksın.
hocam ben phase correct pwm anahtar4 kelimeleriyle aradım atmega serileri çıktı.
birde böyle arama yapayım.
ben Atmega 8A ile ürettim istersen kodları ve sinyal kütüphanelerini koyabilirim üstelik Atmegalar ve Attiny ler o kadar da pahalı değil, fiyatları çoğunlukla 5 ile 10 lira arasında boyutuna ve özelliğine göre değişiyor
"center aligned PWM" diyede ara.
z hocam stm8s timer1 bu işi yapıyor ama datasheetten ben bu işi kıvıramam gibime geldi.
berkay_91 örnekleri tabikide paylaş ben kullanmasam bile aramalara takılır birilerinin işine yarar.
http://www.st.com/web/en/resource/technical/document/reference_manual/CD00190271.pdf (http://www.st.com/web/en/resource/technical/document/reference_manual/CD00190271.pdf)
linkte ilgili döküman var sayfa 139 dan başlamış anlatmaya.
– Input capture
– Output compare
– PWM generation (edge and center-aligned mode)
– 6-step PWM generation
– One-pulse mode output
– Complementary outputs on three channels with programmable deadtime insertion.
demiş anlayana.
pic18f2431 bundan şaşma
Alıntı yapılan: skara1214 - 22 Ocak 2015, 00:12:15
pic18f2431 bundan şaşma
İstenilen "Center Aligned PWM" özelliği bu modelde varmış gibi gözükmüyor.
dsPIC30F2010'da olduğunu biliyorum. Muhtemelen diğer dsPIC'lerde de vardır.
Bu arada, Center Aligned PWM'in, Edge Aligned PWM'den daha iyi olduğunu okumuştum bir yerde ama ayrıntıları incelememiştim. Center Aligned PWM'in neden daha iyi olduğunu benim gibi pek elektronik temeli olmayan birinin de rahat anlayacağı şekilde özetleyebilecek biri var mıdır aranızda?
İşlemci önerisi kenara bıraktık datasheete bakarak bu PWM nasıl üretilir anlamaya çalışmalıyım.
Eger birden fazla PWm sinyali kullanılacaksa sola dayalı pwm tekniğinde tüm sinyaller aynı anda aktif olurlar. Yüksek akım uygulamalarında bu daha fazla gürültü yayılacağı anlamına gelir.
Halbuki Center Aligned PWM de sinyaller farklı zamanlarda yükselirler. Dolayısı ile Gürültünün şiddeti düşer.
Merkezden hizali pwm de merkez noktasına göre ölçümler yapmak daha kolaydır. Örneğin 3 fazlı motorun akımları vs merkez noktada tek çırpıda okunabilir.
Öteki türlü sola yada sağa dayalı pwm tekniğinde akımlar zaman ekseninde 3 ayrı noktada ölçülmek zorunda kalınır.
Fakat asıl neden merkez hizalı pwmde harmoniklerin daha az oluşudur.
http://ww1.microchip.com/downloads/en/DeviceDoc/70645C.pdf (http://ww1.microchip.com/downloads/en/DeviceDoc/70645C.pdf)
Yanlış anlamayın ama pic haric sorduğum halde niye ısrarla pic öneriliyor anlam veremiyorum
Aşağıdaki devre de çalışıyor, aklında bulunsun,
(http://s8.postimg.cc/pjrnbqgwh/MANUAL_DEADTIME.jpg) (http://postimg.cc/image/pjrnbqgwh/)
bu program Atmega8A da sinüs sinyali üretmek için, Atmelin pwm çıkış bacağına RC filter bağlamayı unutmayın
(R=10 k ohm C=10nF olabilir)
/*
* sine_wave_generating.c
*
* Created: 09.01.2015 17:14:52
* Author: BERKAY
*/
#define F_CPU 1000000
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include "sine.h"
volatile uint8_t i=0;
ISR(TIMER1_COMPA_vect){
OCR1A= pgm_read_byte(&sine_wave[i]);
i++;
if(i>=255)
i=0;
}
void pwm_init(){
OCR1A=80; // İnitialization value
TCCR1A=(1<<COM1A1)|(1<<COM1B0)|(1<<WGM10);// MODE 1 phase correct PWM (8 bit)
TCCR1B=(1<<CS10); // prescalar is 1
TIMSK=(1<<OCIE1A); //enable output compare interrupt for OCR1A
sei(); // enable global interrupt
}
int main(void) {
DDRB|=(1<<1); // for OC1A Pin
PORTB|=(1<<1);
pwm_init();
while (1) {
}
}
buda kütüphanesi:
/*
* sine.h
*
* Created: 09.01.2015 17:43:15
* Author: BERKAY
*/
static const PROGMEM unsigned char sine_wave[] = //256 values
{
0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,
0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0xd5,0xd8,
0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf5,
0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,
0xf6,0xf5,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe2,0xe0,0xde,0xdc,
0xda,0xd8,0xd5,0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb3,
0xb0,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x98,0x95,0x92,0x8f,0x8c,0x89,0x86,0x83,
0x80,0x7c,0x79,0x76,0x73,0x70,0x6d,0x6a,0x67,0x63,0x60,0x5d,0x5a,0x57,0x54,0x51,
0x4f,0x4c,0x49,0x46,0x43,0x40,0x3e,0x3b,0x38,0x36,0x33,0x31,0x2e,0x2c,0x2a,0x27,
0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15,0x13,0x12,0x10,0x0f,0x0d,0x0c,0x0a,
0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x03,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x05,0x06,0x07,0x08,
0x09,0x0a,0x0c,0x0d,0x0f,0x10,0x12,0x13,0x15,0x17,0x19,0x1b,0x1d,0x1f,0x21,0x23,
0x25,0x27,0x2a,0x2c,0x2e,0x31,0x33,0x36,0x38,0x3b,0x3e,0x40,0x43,0x46,0x49,0x4c,
0x4f,0x51,0x54,0x57,0x5a,0x5d,0x60,0x63,0x67,0x6a,0x6d,0x70,0x73,0x76,0x79,0x7c
};
Alıntı yapılan: ilhan_mkp - 22 Ocak 2015, 09:08:18
Yanlış anlamayın ama pic haric sorduğum halde niye ısrarla pic öneriliyor anlam veremiyorum
kusura bakma sadece ilk satırı okuyup yorum yapmışım
atmega164/324/644P 'yi kullanabilirsin, atmega16,32,64 ile aynı şekilde programlanıyor fakat 6 adet timer 'ı var
0A,0B,1A,1B,2A,2B sanırım yeterli olucaktır
attiny bile iş görür hocam bir analog giriş ikide pwm çıkışı bir adette dijital giriş yeticek şimdilik.
elimde birkaçtane stm8s003k3 var onlarla nasıl yapılır merak ediyorum açıkçası.
internetten bulma örnekdeğilde datasheetle biraz boğuşsak daha eğitici olacak.