Pic32 Genel PIC32MX460F512L Microchip’in 32 bit işlemci ön açıklaması ve bu işlemci kullanılarak yapılmış uygulamalar.
ÖZELİKLER:
Yüksek Performans 80 MHz MIPS-32-bit Flash Mikroişlemci Tabanlı 100-Pinli Genel Maksatlı ve USB Yüksek performanslı 32-bit RISC CPU:
• MIPS32 ® M4K ™ 32-bit Core 5-durumlu iş hattı
• 80 MHz Maksimum Frekans
• 1,56 DMIPS / MHz (Dhrystone 2.1) Performans için 0 durumu beklemeli Hızlı Bellek Erişimi
• Tek-Çevrim Çarpma ve Yüksek Performanslı bölme birimi
• MIPS16e ™ Modu %40 daha küçük Kod uzunluğu
• çift setli 32 Çekirdek Kayıt Dosyaları (32-bit) Kesme Gecikmesini azaltmak için
• Modülü önbelleğe almak Flaş Belleğin Hızlı çalışmasını sağlar
Mikroişlemci Özellikleri:
• Çalışma Voltajı aralığı 2.3V to 3.6V
• 32K 512K Flash Bellek için (artı ek bir 12KB Önyükleme Flash)
• 8k 32K SRAM hafıza için
• Pin-Eşdeğerlikli PIC24/dsPIC ® Cihazlar ile uyumludur
• Çoklu Güç Yönetim Modları
• Çoklu Kesme Vektörleri genişletilebilir, bireysel programlanabilir Önceliklerle
• Hata güvenlikli Saat Monitör Modu
• Yapılandırılabilen Watchdog Timer Düşük Güçlü RC osilatör ,güvenilir operasyonlar için
Çevre Özellikleri:
• Atomik SET, CLEAR ve INVERT operasyonları Seçilebilir Çevresel kayıtediciler üzerinden
• 4 kanaldan fazla Donanım ile DMA Otomatik Veri Boyut Algılama
• USB 2.0 uyumlu Tam Hızlı Cihaz ve On-the-Go (OTG) Denetleyicisi
• USB işine adanmış DMA Kanal vardır
• 10 MHz 40 MHz Kristal osilatör
• Dahili 8 MHz ve 32 kHz’lik Osilatörler
• Ayrı PLL’lerle CPU ve USB Saatleri
• İki I2C ™ Modülleri
• İki UART Modül ile:
– RS-232, RS-485 ve LIN 1,2 desteği
– IrDA ® On-Chip Donanım Kodlayıcı ve Decoder
• Paralel Master ve Slave Port (PMP / PSP) ile 8bit ve 16bitlik data ve 16′dan fazla adres satırı
• Donanım Real-Time Saat / Takvim (RTCC)
• Beş adet 16-bit zamanlayıcı / Sayaçlar (iki 16-bit birleştirilebilir, 32bit timer oluşturmak için bit zamanlayıcıları)
• Beş Yakalama Girişleri
• Beş Karşılaştırma / PWM Çıkışları
• Beş Harici Kesme Pini
• Yüksek hızlı giriş/çıkış Pin kapasiteli geçiş hızı 80 MHz den fazla
• Yüksek Akım Safak / Kaynak (18 mA/18 mA) üzerinde Tüm I / O Pinleri
• Yapılandırılabilen Açik Dijital giriş/çıkış Pinleri
Hata Ayıklama Özellikleri:
• İki Programlama ve Hata ayıklama Arabirimleri:
– 2 Telli Arayüzle zorlanmadan Erişim ve Gerçek Zamanlı Veri Değişim Uygulaması ile
– 4 tel MIPS ® Standart Gelişmiş JTAG arayüzü
• Zorlanmadan Donanım bazlı Öğretim İzleme
• IEEE Std 1149.2 (JTAG) Sınır Uyumlu Tarama
Analog Özellikleri:
• 16dan fazla Kanal 10-bit Analog-to-Digital Dönüştürücü:
– 1000 ksps Dönüşüm Oranı
– Mevcut Uyku sırasında dönüşüm, Boşta
• İki Analog karşılaştırıcı
• 5V Toleranslı Giriş Pinler (dijital pinler sadece)
PIC32MX460F512L 100 bacaklı açıklayıcı şekil:
5 Volt Toleranslı Pinler:
Şekildede açıkça görüldüğü üzere KOYU renkli pinler 5volt toleranslı bacaklardır yani giriş çıkış işlemlerinde 5 volt kullanılabilir.İşlemci 3volt ile çalışmaktadır.
Diğer bacaklar 3 volt toleranslıdır.Genel pin açıklamalarından ziyade öne çıkanları yazdım.
Genel bazı özellikleri şunlar:(Sadece bazı başlıklar)
7.0 Kesme Denetleyicisi
PIC32MX3XX/4XX cihazlar istekleri kesme üretecek tepki olarak çevresel modüllerin etkinlikleri durdurmak için.
Bu Kesme Kontrol modülü harici için vardır CPU mantığı ve önce etkinlikler kesme öncelik CPU için sunulması.
Bu PIC32MX3XX/4XX modülün dahili özellikleri şunlardır:
• 96dan fazla kesme kaynakları
• 64den fazla kesme vektörleri
• Tek ve Çok Vektör modu işlemleri
• 5 harici kesme Kenar polarite kontrollü
• Kesme yakınlık zamanlayıcı
• Modül dondurma hata ayıklama modunda
• 7 kullanıcı seçilebilir vektör öncelik seviyeleri
• 4 kullanıcı seçilebilir altöncelikli düzeyde kolay öncelik
• İşine kendini adamış gölge ayarlama yüksek öncelik seviyesi için belirlenmiş
• Yazılımla herhangi bir kesinti oluşturabilirsiniz
• Kullanıcı tarafından yapılandırılabilir kesme vektör tablo bölgeleri
• Kullanıcı tarafından yapılandırılabilir kesme vektör aralığı
Kesme tablosundanda görüleceği üzere Vektör numarası en büyük olanın önceliği en yüksektir.(Yani USB kesmesi birinci sıradadır.)
Yani aynı anda kesme geldiğini varsayarsak USB ilk öncelikli Flash bellek kontrol olayları 2.sırada vb.. gibi kesme olayları başlatılır.
Pic32 bellek haritası
Örnek Uygulama
PIC32 10bit 3 kanal ADC ve Seriport kontrol
// PIC32MX460F512L 10bit 3 kanal ADC ve Seriport kontrol // 27.Temmuz.2009 // Hazırlayan By crazy2015 // www.picproje.org // Sistem saati: 80Mhz // PBCLK = 40 MHz // Uart2: 19200baud U2RX-U2TX (pin49-pin50) #include <plib.h> #pragma config FPLLMUL = MUL_20, FPLLIDIV = DIV_2, FPLLODIV = DIV_1, FWDTEN = OFF #pragma config POSCMOD = HS, FNOSC = PRIPLL, FPBDIV = DIV_2 #define SYS_FREQ (80000000L) #define HIZ_BAUDRATE (19200) #define FPB 40000000L // ADC parametreleri #define PARAM1 ADC_MODULE_ON | ADC_FORMAT_INTG | ADC_CLK_AUTO | ADC_AUTO_SAMPLING_ON #define PARAM2 ADC_VREF_AVDD_AVSS | ADC_OFFSET_CAL_DISABLE | ADC_SCAN_ON | ADC_SAMPLES_PER_INT_3 | ADC_ALT_BUF_ON | ADC_ALT_INPUT_OFF #define PARAM3 ADC_CONV_CLK_INTERNAL_RC | ADC_SAMPLE_TIME_15 #define PARAM4 ENABLE_AN0_ANA | ENABLE_AN1_ANA | ENABLE_AN2_ANA #define PARAM5 SKIP_SCAN_AN3 | SKIP_SCAN_AN4 | SKIP_SCAN_AN5 | SKIP_SCAN_AN6 | SKIP_SCAN_AN7 | SKIP_SCAN_AN8 | SKIP_SCAN_AN9 | SKIP_SCAN_AN10 | SKIP_SCAN_AN11 | SKIP_SCAN_AN12 | SKIP_SCAN_AN13 | SKIP_SCAN_AN14 | SKIP_SCAN_AN15 unsigned int ADCkanal0; unsigned int ADCkanal1; unsigned int ADCkanal2; unsigned int offset; void Delayms( unsigned t) { T1CON = 0x8000; while (t--) { TMR1 = 0; while (TMR1 < FPB/1000); } } int main(void) { int pbClk; int say; char ADCdeger[30]; pbClk=SYSTEMConfig(SYS_FREQ, SYS_CFG_WAIT_STATES | SYS_CFG_PCACHE); CloseADC10(); SetChanADC10( ADC_CH0_NEG_SAMPLEA_NVREF); OpenADC10( PARAM1, PARAM2, PARAM3, PARAM4, PARAM5 ); EnableADC10(); OpenUART2(UART_EN,UART_RX_ENABLE | UART_TX_ENABLE,pbClk/16/HIZ_BAUDRATE-1); ConfigIntUART2(UART_INT_PR2 | UART_RX_INT_EN); INTEnableSystemMultiVectoredInt(); // Çoklu Kesme etkileştirme. putsUART2("*** SeriPort kesme alt programlı 10bit 3 kanal ADC by @crazy2015 ***\r\n\r\n"); while (1) { while ( ! mAD1GetIntFlag() ); offset = 8 * ((~ReadActiveBufferADC10() & 0x01)); ADCkanal0 = ReadADC10(offset + 0); ADCkanal1 = ReadADC10(offset + 1); ADCkanal2 = ReadADC10(offset + 2); sprintf( ADCdeger, "Pic32_Voltaj: Adc0:%4d, Adc1:%4d, Adc2:%4d", ADCkanal0,ADCkanal1,ADCkanal2); putsUART2(ADCdeger); putsUART2("\r\n"); Delayms( 500); } return 0; } void __ISR(_UART2_VECTOR, ipl2) IntUart2Handler(void) { if(mU2RXGetIntFlag()) { mU2RXClearIntFlag(); putcUART2(ReadUART2()); putsUART2("*** Kesmede degil ***\r\n"); } if ( mU2TXGetIntFlag() ) { mU2TXClearIntFlag(); } }
Uygulama Devre Şeması:
UBW32 Kiti: UBW32 kit ve kullanımı
Genel kullanım: Bu kiti bootloader programı ile kullanıyorum.Usb kablosu ile pc ye takılır.Sürücüsü yüklenir.(Sürücüler kaynaklar kısmında)
Usb den voltaj alabileceği gibi kit üzerindeki buton ayarlanarak harici besleme ilede çalışabilir.Üç adet buton var kit üzerinde.
Birisi Reset diğeri Programlama ötekiside USER yani genel tanımlı buton.Kenarlara Sıra Pin takılarak breadbord’da kullanılabilir.
Microchip Starter kitten ayrılan özelliği üzerinde pic18lf4550 olmaması Fiyat açısından ucuza yapılmak istenmiş.
İstenirse ICSP ile’de programlanabilir bu konuda bir sorun yok.
Mplab Microchip C32 programı sitesinden indirilip kurulur.Bunun dışında Microchip BootLoader programıda gerekli.
BootLoader programından görüntüler:
Open Hex File butonu ile c32 de hazırlamış olduğumuz kodu işlemciye atarız.Kısa bir yazma ve
Sağlama ile beraber program artık işlemciye yüklenmiştir.Reset butonu ile program başlatılır.Çok kolay kullanımı olan bir kittir.
Kitle beraber kullanılan uygulamalar.
StickOS BASIC
Adındanda anlaşılacağı üzere Basic komutlarına benzer bir yapısı vardır.Çok kolay kullanımlıdır.
Sitesinde orj. kodlar ve hex kodları bulunmaktadır.Hex kodunu derledikten sonra PIC32 ye atabiliriz.İşlem tamamlanmıştır.
Boot loader programındaki reset device veya kit üzerindeki reset butonuna basılarak OS çalıştırılır.
Çok marifetli bir OS benim gördüğüm kadar ama çok yeni ve karmaşık değil OS yapısı hakkında çok güzel bilgiler elde edilebilinir..
Hazırlayan arkadaş Lisansta ticari kullanmayın yeterli, istediğiniz değişikliği yapabilirsiniz demiş.
Kit usb ile bağlandıktan sonra Seriport ve hyperterminal kullanarak basitçe haberleşilebilir.115200 baud hızına ayarlamak seri portu yeterli.
HyperTerminal Görüntüsü ve ayarları:
Basit bir yazı editörü gibi hazırlanmış. Bütün pinlere müdahale edilebileceği gibi kendine has basit komutları ile çok güzel bir altyapısı var. Yazdığımız programları isim vererek kayıt edebiliyoruz.Gerekitse tekrardan yükleyebiliyoruz. Bu bana eskiden çalışmış olduğum SPECTRUM bilgisayarları hatırlattı. Tabii geliştirilebilir bu OSbasic programı bir video çıkış eklenebilir.
StickOS BASIC programlama ortamı içeren işletim sistemi özellikleri:
• TEMEL satır editörü
– ANSI veya vt100′ish terminali desteği
• TEMEL derleyici
– hızlı ve güvenli baytkod için derleme
– şeffaf satır satır derleme için görünmez bir kullanıcı gibi davranır
• TEMEL etkileşimli hata ayıklayıcı, destekci:
– kesme noktaları, izleme noktaları
– canlı değişken inceleme tek adımda
– düzenleme ve devam etme
• TEMEL performans Profilleri
• TEMEL dosya sistemi
-flaşa birden fazla program yükleme
• USB Ana Modu seçilen MCU üzerinde
– giriş StickOS “” harici USB flaş için kesme tabloları
• 2.4GHz zigflea kablosuz ulaşım
– arabirim bir Telnet / rlogin ile veya uzaktan kumanda ile yapılabilir
– Basit veya değişken uzaktan erişim
• MCU dış kontrol / pin değişkenleri “aracılığıyla” veya dijital giriş /çıkış
– analog giriş veya çıkış (PWM)
– Servo çıkış
– frekans çıkışı
– UART giriş veya çıkış
– qspi ana giriş ve çıkış
• iç çevresel kontrol
– TEMEL işleyicilerin kesmelerle yapılması!
– zaman aralığı, DMA zamanlayıcılar, ADC, PWM, uarts, qspi, vb
• Dahili flaş bellek kontrolü
– bağımsız programlar ve parametreleri ile flaş belleğe kayıt
– gittikçe artan güncelleştirmeleri saklayarak flaş ömrünü uzatır RAM
– uçbirim emülatörü bellenim yoluyla veya yükseltme StickOS!
– harici flaş programlama
Desteklediği İşlemciler
StickOS for Freescale MC9S08QE128 (.SX, HCS08 binary image)
StickOS for Freescale MC9S12DT256 (.SX, HCS12 binary image)
StickOS for Freescale MC9S12DP512 (.SX, HCS12 binary image)
StickOS for Freescale MCF51QE128 (.S19, ColdFire binary image, checksum )
StickOS for Freescale MCF51JM128 (.S19, ColdFire binary image, checksum )
StickOS for Freescale MCF51JM128 Badge Board Bootloader(.S19,ColdFire Badge Board bootloader image)
StickOS for Freescale MCF521x (.S19, ColdFire binary image, checksum )
StickOS for Freescale MCF5222x (.S19, ColdFire binary image, checksum)
StickOS for Freescale MCF5223x (.S19, ColdFire binary image, checksum)
StickOS for Freescale MCF5225x (.S19, ColdFire binary image, checksum )
StickOS for Freescale MCF5225x Demo Kit Bootloader (.S19, ColdFire Demo Kit USB bootloader image)
StickOS for Microchip PIC32MXx-F256H (.HEX, PIC32 binary image, checksum )
StickOS for Microchip PIC32MXx-F512L (.HEX, PIC32 binary image, checksum 9f05)
StickOS for Microchip PIC32MX4-F512L UBW32 Board Bootloader (.HEX, UBW32 HID bootloader image)
Örnek Uygulamalar:
1-Ses uygulaması:
10 dim oct, freq 20 dim audio as pin dtin0 for frequency output 30 let freq = 440 40 while freq<10000 do 50 gosub octave 60 let freq = freq*2 70 endwhile 80 end 90 sub octave 100 let audio = freq 110 for oct = 1 to 8 120 sleep 500 ms 130 if oct==3||oct==7 then 140 let audio = (audio*10595+5000)/10000 150 else 160 let audio = (audio*11225+5000)/10000 170 endif 180 next 190 let audio = 0 200 sleep 500 ms 210 endsub
2-Termokupl uygulaması:
10 dim target, secs 20 dim thermocouple as pin an0 for analog input 30 dim relay as pin an1 for digital output 40 data 512, 90, 746, 105, 894, 20, -1, -1 50 configure timer 0 for 1000 ms 60 on timer 0 do gosub adjust 70 while target!=-1 do 80 sleep secs s 90 read target, secs 100 endwhile 110 let relay = 0 120 end 130 sub adjust 140 if thermocouple>=target then 150 let relay = 0 160 else 170 let relay = 1 180 endif 190 endsub
3- Pin çıkış:
10 dim square as pin re2 for digital output 20 while 1 do 35 let square = !square 45 sleep 105 us 55 endwhile
Help pins komutu çıktısı(PIC32 pin bilgileri):
yukardada açıkça görüleceği üzere Pic32 nin pinleri ve kullanım şekilleri açıklanmış.
Pdf’inde bütün komutları detaylıca anlatılıyor.Bildiğimiz basic..
Ve daha çok çeşitli uygulama yapılabilir.Zegbee Lcd spi kontrol Normal basic kodu yazar gibi kolay.
Bir OS mini işletim sistemi olduğundan Freescale firmasının işlemcileri ilede çalışabiliyor.
FreeRTOS
http://www.freertos.org/index.html?http://www.freertos.org/a00090.html#MICROCHIP
Pic32 üst görünüş:
Yararlanılan kaynaklar:
1- www.picproje.org
2- www.microchip.com
3- http://cpustick.com/
4- www.freertos.org/
PicProje E-Dergi 2| Yazar: crazy2015
Yayım tarihi: 2018/07/05 Etiketler: kılavuz ders, PIC programlama, pic32