Садржај Основне информације о развојном систему E.S.R.G mbed... 3 Структура развојног система... 4 mbed микроконтролер... 5 Напајање развојног система... 6 Ethernet... 7 RS3... 7 RS485... 8 САN... 9 PS/... 10 USB... 11 IR пријемник... 1 Аналогни улази... 1 AUDIO IN/OUT... 13 Taстатуре... 15 LCD дисплеј x16... 18 ТFT дисплеј... 19 Серијски RАM... 1 Серијски EEPROM... 1 SD/MMC... Порт експандер (додатни улазно излазни портови)... 3 IC/SPI... 4 DIGITAL IN/OUT... 4 PWM OUT... 5
Основне информације о развојном систему E.S.R.G mbed Развојни систем E.S.R.G mbed представља развојни алат погодан за програмирање и експериментисање са mbed микроконтролером компаније NXP. Од корисника се очекује да напише програм на C++ језику и помоћу компајлера генерише објектни фајл и преко USB кабла испрограмира микроконтролер. Бројни модули, као што су TFT дисплеј осетљив на додир, х16 алфанумерички LCD, тастатура 4х4, итд., који се налазе на развојном систему омогућавају једноставну симулацију рада финалног уређаја. Slika 1 3
Структура развојног система На слици је приказана структура развојног система 3 8 7 0 13 14 6 1 4 11 17 15 18 1 19 16 9 10 1 5 Slika 4
1. mbed микроконтролер. Напајање развојног система 3. Еthernet 4. RS-3 5. RS-485 6. CAN 7. PS/ 8. USB 9. IR пријемник 10. Аналогни улаз 11. AUDIO IN/OUT 1. Тастатуре 13. LCD дисплеј x16 14. TFT дисплеј 15. Серијски RAM 16. Серијски EEPROM 17. SD/MMC 18. Порт експпандер 19. DIGITAL IN/OUT 0. PWM OUT mbed микроконтролер Мbed микроконтролер је смештен на плочици чији распоред ножица одговара 40 пинском DIP подножју, тако да се без великих тешкоћа може користити на различитим развојним системима. Језгро микроконтролера је NXP-ов LPC1768 процесор који је опремљен великим бројем периферија. Програмирање је једноставно и обавља се преко USB кабла, тако што се програм у бинарном облику сними у флеш меморију која је намењена за то. Након ресетовања снимњени програм се пуни у меморију микроконтролера. Mbed микроконтролер је приказан на слици. Slika 3 5
Напајање развојног система Развојни систем се напаја помоћу спољашњег извора једносмерног напон 9V. Блокови на плочи се напајају помоћу напона 9V, 5V и 3.3V. Једносмерни напон 5V се добија помоћу линеарног напонског регулатора SN7805, док се 3.3V добија из регулатора који се налази на самој плочици mbed микроконтролера. Интегрисани аудио појачавач LM386 се директно напаја улазним напоном, тако да максимална вредност напона напајања зависи од максималне вредости напона напајања овог кола и износи 1V. CN9 PowerJack 1 3 D601 1N4007 +9V C601 10 uf C603 100 nf U601 SN7805 Vin Vout C60 10 uf C604 100 nf R601 1k D60 Slika 4 Батерија која се налази на развојном систему служи за напајање сата реалног времена унутар микроконтролера уколико није прикључено спољашње напајање. Напон батерије је 3V. VBAT 3V J60 Battery U60 VIN VB nr p5/mosi p6/miso p7/sck p8 p9/tx/sda p10/rx/scl p11/mosi p1/miso p13/tx/sck p14/rx p15/analogin p16/analogin p17/analogin p18/analogin/out p19/analogin p0/analogin NXP MBED VOUT VU R p30/canrd p9/cantd p8/sda/tx p7/scl/rx p6/pwmout p5/pwmout p4/pwmout p3/pwmout p/pwmout p1/pwmout Slika 5 6
Ethernet Mbed микроконтролер има уграђен 10/100Mbit Ethernet контролер, што му омогућава повезивање на рачунарску мрежу преко RJ-45 конектора. Еthernet дефинише неколико стандарда за повезивање и сигнализацију на физичком нивоу OSI мрежног модела, као и више MAC (Medium Access Control) процедура које се користе на нивоу везе. Ethernet је стандардизован под називом IEEE 80.3. U60 VIN VB nr p5/mosi p6/miso p7/sck p8 p9/tx/sda p10/rx/scl p11/mosi p1/miso p13/tx/sck p14/rx p15/analogin p16/analogin p17/analogin p18/analogin/out p19/analogin p0/analogin NXP MBED VOUT VU R p30/canrd p9/cantd p8/sda/tx p7/scl/rx p6/pwmout p5/pwmout p4/pwmout p3/pwmout p/pwmout p1/pwmout Eth_ Eth_ 5 4 8 6 7 3 1 9 10 Eth_R Eth_ CN1 CT R CT SHIELD1 SHIELD RJ45 Slika 6 RS3 RS3 се користи за пренос података на малим брзинама (до 38kbps) и кратким растојањима, обично до 30m. Овај стандард користи технику небалансираног серијског преноса и дефинише скуп правила за размену података између уређаја заснованих на микропроцесору. RS3 комуникација се обавља преко 9-пинског SUB-D конектора, USART модула микроконтролера и MAX33 кола, које прилагођава напонске нивое. Микроконтролер LPC1768 има три USART модула, од којих користимо само један. Tx и Rx сигнали се налазе на пиновима 8 и 7, респективно. Да би серијска комуникација била могућа потребно је да се краткоспајач JP4 остави у горњи положај. 7
Slika 7 Пример: #include "mbed.h" #include "mbed.h" Serial device(p8, p7); // tx, rx int main() { while(1){ device.baud(1900); device.printf("ekis 006\r\n"); wait(); Код из примера исписује поруку EKIS 006 у хипертерминалу на рачунару са којим је повезан. RS485 RS485 је индустријски стандард који омогућава повезивање до 3 уређаја на једној магистрали. Код овог протокола се користи балансирани (диференцијални) пренос података, што га чини отпорнијим на сметње (шумове). RS485 комуникација се обавља преко клема конектора СN13, USART модула микроконтролера и MAX3485 кола, које прилагођава напонске нивое. За коришћење овог типа комуникације, потребно је краткоспајач ЈP4 поставити у доњи положај. Уколико се развојни систем налази на крају RS485 магистрале, потребно да се између линија преко којих се обавља комуникација постави завршна импеданса од 10Ω, постављањем краткоспајача на JP5. 8
Slika 8 САN CAN (Controller Area Network) представља комуникацијски стандард намењен првенствено за употребу у аутомобилској индустрији. Захваљујући њему микроконтролер може да комуницира са уређајем у аутомобилу без употребе хост рачунара. Поред аутомобилске, овај вид комуникације је широко распрострањен и у индустријској аутоматизацији. На развојном систему се за CAN комуникацију користи коло SN65HVD30DR које представља везу између микроконтролера и неког спољашњег уређаја. Помоћу краткоспајача JP1 бира се мод рада овог кола. Када је краткоспајач у десном положају коло ради у high-speed моду, а када се пребаци у леви положај коло ради у slope-control моду. Уколико се развојни систем налази на крају магистрале, што захтева завршну импедансу од 10Ω, потребно је поставити краткоспаја JP. 9
Slika 9 PS/ PS/ конектор (CN3) омогућава улазним јединицама, као што су тастатура и миш, да буду прикључени на развојни систем. Клема конектор CN4 дели пинове микроконтролера са PS/ конектором, па стога није могуће истовремено коришћење ових периферија. U60 VIN VB nr p5/mosi p6/miso p7/sck p8 p9/tx/sda p10/rx/scl p11/mosi p1/miso p13/tx/sck p14/rx p15/analogin p16/analogin p17/analogin p18/analogin/out p19/analogin p0/analogin NXP MBED VOUT VU R p30/canrd p9/cantd p8/sda/tx p7/scl/rx p6/pwmout p5/pwmout p4/pwmout p3/pwmout p/pwmout p1/pwmout key_1 key_ 1 3 4 5 6 CN3 PS-6PIN S 8 7 Slika 10 10
USB Микроконтролер LPC1768 има уграђен USB.0 full-speed device/host/otg контролер са додељеним DMA контролером. USB-B конектор омогућава повезивање микроконтролера са одговарајућим USB уређајима. U60 VIN VB nr p5/mosi p6/miso p7/sck p8 p9/tx/sda p10/rx/scl p11/mosi p1/miso p13/tx/sck p14/rx p15/analogin p16/analogin p17/analogin p18/analogin/out p19/analogin p0/analogin NXP MBED VOUT VU R p30/canrd p9/cantd p8/sda/tx p7/scl/rx p6/pwmout p5/pwmout p4/pwmout p3/pwmout p/pwmout p1/pwmout USB_ USB_ 1 3 4 CN VBUS USB_B Slika 11 Пример: #include "mbed.h" #include "USBMouse.h" DigitalOut led(led1); USBMouse mouse; int main() { while(1) { mouse.move(30, 0); led =!led; wait(0.4); Овим примером је могуће користити развојно окружење као USB миш. Када се развојни систем повеже са рачунарем преко USB-a кабла, курсор миша почиње да се креће. 11
IR пријемник IR пријемник прима сигнал из инфрацрвеног спектра светлости, послат од стране даљинског управљача или сличног уређаја и претвара га у одговарајућу поворку битова које микроконтролер може да прихвати и интерпретира. Уграђени пријемник TSOP136 детектује сигнал чија је фреквенција носиоца 36KHz. Постављањем краткоспајања JP6 у леви положај омогућава коришћење ове периферије. Да би се улазни аудио сигнал ваљано одмерио, потербно га је појачати, филтрирати и извршити померање једносмерног нивоа, што је и учињено помоћу два операциона појачавача LT1498. Slika 1 Аналогни улази Помоћу 1-битног AD конвертора је могуће конвертовање аналогних сигнала у дигитални облик. Максимална фреквенција одмеравања износи 00KHz. Аналогни сигнал је могуће довести до пина микроконтролера на два начина: Преко потенциометра тако што се краткоспајач JP6 постави на десно. Овако се на аналогни улаз поставља вредност између 0 и 3.3V. Преко конектора CN18. Овај конектор има 3 извода, на доњем је потенцијал масе, на средњи се доводи екстерни аналогни сигнал и на горњем је напон 3.3V. 1
Slika 13 Пример: #include "mbed.h" #include "TextLCD.h" AnalogIn pot(p0); TextLCD lcd(p17, p16, p4, p3, p, p1); // rs, e, d4-d7 d0 d1 d d3 rs rw e int main() { while(1) { lcd.printf("%0.3f wait(0.3); ",(pot.read()*3.3)); Овим примером се мери напон на пину p0 и приказује на LCD х16. AUDIO IN/OUT AUDIO IN/OUT модул омогућава повезивање микроконтролера са микрофоном односно слушалицама преко 3.5mm конектора, тако да је могуће снимање и репродукција звука. Појачавач снаге на излазу је реализован помоћу интегрисаног аудио појачавача LM386 и има појачање 0. Микроконтролер је опремљен DA конвертором који се користи за побуђивање овог појачавача. 13
CN11 3 4 1 5 Phonejack Stereo SW R108 3k C109 100 nf R115 1k R109 1M C113 10 uf R106 00k 3 4 8 A R107 110k Audio C114 100 nf 1 R113 10k C11 10 pf C107 100 uf C115 10 uf U10A LT1498 R114 1k Audio C116 100 nf C118 100 nf U10B 5 6 B LT1498 R116 10k C117 7 R11.4 k C111 0 nf U60 VIN VB nr p5/mosi p6/miso p7/sck p8 p9/tx/sda p10/rx/scl p11/mosi p1/miso p13/tx/sck p14/rx p15/analogin p16/analogin p17/analogin p18/analogin/out p19/analogin p0/analogin NXP MBED VOUT VU R p30/canrd p9/cantd p8/sda/tx p7/scl/rx p6/pwmout p5/pwmout p4/pwmout p3/pwmout p/pwmout p1/pwmout Audio 10 pf Audio Slika 14 Slika 15 Пример: #include "mbed.h" /* ADC for the microphone/input, DAC for the speaker/output */ AnalogIn mic(p19); AnalogOut speaker(p18); #define NUM_SAMPLES 15000 unsigned short buffer[num_samples]; int main() { int i; for (i = 0; ; ) // infinite loop 14
{ /* read mike */ buffer[i] = mic.read_u16(); /* Write to speaker */ speaker.write_u16(buffer[i]); /* Increment index and wrap around */ i = (i+1) % NUM_SAMPLES; Овим кодом се чита сигнал са микрофона преко АDC-a, уписује у бафер и онда преко DAC-a шаље на излаз (звучник). Taстатуре На развојном систему се налазе две тастатуре: KEYPAD 4x4 и MENU KEYPAD. KEYPAD 4x4 представља стандардну алфанумеричку тастатуру, која је са микроконтролером повезана преко порт експандера U301, чија је адреса на IC магистрали 0x40. За очитавање стања тастера ове тастатуре користи се техника скенирања. SW306 SW305 SW307 SW308 SW309 SW310 SW311 SW31 SW313 SW314 SW315 SW316 U301 4 VCC 16 P0 5 A0 1 6 P1 7 P A1 9 P3 A 3 10 P4 11 P5 SCL 14 P6 1 SDA 15 P7 8 INT 13 PCF8574N C301 100 nf R604 4.7k R605 4.7k U60 VIN VB nr p5/mosi p6/miso p7/sck p8 p9/tx/sda p10/rx/scl p11/mosi p1/miso p13/tx/sck p14/rx p15/analogin p16/analogin p17/analogin p18/analogin/out p19/analogin p0/analogin NXP MBED VOUT VU R p30/canrd p9/cantd p8/sda/tx p7/scl/rx p6/pwmout p5/pwmout p4/pwmout p3/pwmout p/pwmout p1/pwmout SW317 SW318 SW319 SW30 Slika 16 Тастери који чине MENU KEYPAD су директно повезани са пиновима микроконтролера и могу да генеришу захтев за прекид. Да би се користио MENU KEYPAD потребно је да се пин p16 програмски постави на 1. 15
U60 VIN VB nr p5/mosi p6/miso p7/sck p8 p9/tx/sda p10/rx/scl p11/mosi p1/miso p13/tx/sck p14/rx p15/analogin p16/analogin p17/analogin p18/analogin/out p19/analogin p0/analogin NXP MBED VOUT VU R p30/canrd p9/cantd p8/sda/tx p7/scl/rx p6/pwmout p5/pwmout p4/pwmout p3/pwmout p/pwmout p1/pwmout 7 89 5 6 1 3 4 R401 4.7K D301 D30 D303 D304 SW301 SW30 SW303 SW304 Slika 17 MENU KEYPAD, LCDx16 и излази оптокаплера деле пинове микроконтролера тако да није могуће њихово истовремено коришћење. 16
Пример (тастатура 4x4): #include "mbed.h" #include "PCF8574.h" PCF8574 io(p9,p10,0x40); TextLCD lcd(p17, p16, p4, p3, p, p1); // rs, e, d4-d7 d0 d1 d d3 rs rw e char key; int main() { while(1) { io.write(0xbf); wait(0.); key = io.read(); if (key == 0xBB) { // 9 lcd.printf("9"); if (key == 0xBD) { // 8 lcd.printf("8"); if (key == 0xBE) { // 7 lcd.printf("7"); io.write(0xdf); wait(0.); key = io.read(); if (key == 0xDB) { // 6 lcd.printf("6"); if (key == 0xDD) { // 5 lcd.printf("5"); if (key == 0xDE) { // 4 lcd.printf("4"); io.write(0xef); wait(0.); key = io.read(); if (key == 0xEB) { // 3 lcd.printf("3"); if (key == 0xED) { // lcd.printf(""); if (key == 0xEE) { // 1 lcd.printf("1"); wait(0.); Овим примером се скенира тастатура 4х4 и притиснути тастер се приказује на LCD x16. 17
LCD дисплеј x16 Алфанумерички LCD дисплеј са x16 карактера се као посебан модул прикључује на плочу преко конектора P40. Тример R40 служи за подешавање контраста на дисплеју. LCD дисплеј ради у 4-битном режиму, што захтева мање пинова микроконтролера. Сваки карактер се састоји од 7x5 тачака. LCD x16 и TFT дисплеј деле исти простор на плочи. U60 NXP MBED VIN VB nr p5/mosi p6/miso p7/sck p8 p9/tx/sda p10/rx/scl p11/mosi p1/miso p13/tx/sck p14/rx p15/analogin p16/analogin p17/analogin p18/analogin/out p19/analogin p0/analogin VOUT VU R p30/canrd p9/cantd p8/sda/tx p7/scl/rx p6/pwmout p5/pwmout p4/pwmout p3/pwmout p/pwmout p1/pwmout R40 10 k 6 7 8 9 1 3 45 R401 4.7K CN17 Vss Vdd Vo Rs R/W E DB0 DB1 DB DB3 DB4 DB5 DB6 DB7 A K C401 100 nf LCD x16 connect Slika 18 Пример: #include "mbed.h" #include "TextLCD.h" TextLCD lcd(p17, p16, p4, p3, p, p1); // rs, e, d4-d7 d0 d1 d d3 rs rw e int main() { lcd.printf("ekis '06\n"); Овим примером се исписује EKIS 06 на LCD x16. 18
ТFT дисплеј ТFТ дисплеј резолуције 43x40 се користи за приказ графичких садржаја и повезује се са микроконтролером преко SPI магистрале. Дисплеј је опремљен тач панелом, што омогућава одређени степен интеракције са корисником. Контролер тач панела ADS7843 обрађује добијене аналогне податке и преко SPI магистрале прослеђује микроконтрлеру одговарајуће координате у дигиталном облику. Засебни модул на коме се налази овај дисплеј се причвршћује на плочу преко посебног конектора. TFT дисплеј и тач контролер се налазе на различитим SPI каналима. Постављањем краткоспајача JP8 у горњи положај, омогућавамо да TFT дисплеј и тач контролер имају заједнички CS, на пину p16 микроконтролера, па је тада могуће користи пин микроконтролера p15 као аналогни улаз. Тач контролер, SD/MMC и FеRAM налазе на истом SPI каналу. Уколико се истовремено са TFT дисплејом жели користити и SD/MMC или FеRAM, тада треба раздвојити CS сигнале TFT дисплеја и тач контролера раздвојити што се реализује постављањем краткоспајача JP8 у доњи положај. Краткоспајач JP9 се користи за постављање вредности на ID пин дисплеја. У горњем положају се поставља на, а у доњем на VCC. 19
Slika 19 0
Серијски RАM Захваљујући уграђеном колу FM556-Gx4 систем поседује 56k битова фероелектричне RAM меморије, која приликом губитка напајања не губи садржај. Меморија са микроконтролером комуницира преко SPI магистрале. Да би се омогућила комуникација неопходно је најпре краткоспајач JP7 поставити у доњи положај. Slika 0 Серијски EEPROM EEPROM (Electrically Erasable Programmable Read-Only Memory) представља уграђени меморијски модул који служи за чување података када је развојни систем искључен. Коло АТ4С51В може сачувати 51k битова података и за комуникацију са микроконтролером користи серијску IC везу. Адреса EEPROM-a на IC магистрали је 0xA0. 1
C501 100 nf U501 1 E0 VCC 8 E1 3 6 E SCL SDA 5 7 WP 4 AT4C51 EEPROM_SCL EEPROM_SCA R605 4.7k R604 4.7k U60 VIN VB nr p5/mosi p6/miso p7/sck p8 p9/tx/sda p10/rx/scl p11/mosi p1/miso p13/tx/sck p14/rx p15/analogin p16/analogin p17/analogin p18/analogin/out p19/analogin p0/analogin NXP MBED VOUT VU R p30/canrd p9/cantd p8/sda/tx p7/scl/rx p6/pwmout p5/pwmout p4/pwmout p3/pwmout p/pwmout p1/pwmout Slika 1 SD/MMC SD/MMC конектор (CN16) се користи за повезивање MMC картице са микроконтролером. Ове картице се користе за смештање података у преносивим уређајима и лако им је приступити са рачунара. Диода D50 светли уколико је картица убачена, а D501 уколико је забрањен упис у картицу. За коришћење SD/MMC картице је потребно поставити краткоспајач JP7 у горњи положај. Slika Напомена: Погледати повезивање TFT дисплеја (део о постављању краткоспајача JP8).
Порт експандер (додатни улазно излазни портови) Помоћу линија за IC комуникацију и кола PCF8574 развојни систем поседује могућност проширења броја расположивих улазно/излазних портова. PCF8574 омогућује 8-битно паралелно проширење. Адреса овог порт експандера на IC магистрали је 0x4. CN15 1 3 4 5 6 7 8 9 10 Headerx5 C303 100 nf 4 5 6 7 9 10 11 1 8 U303 P0 P1 P P3 P4 P5 P6 P7 PCF8574N VCC 16 A0 A1 A SCL 14 SDA 15 INT 1 3 13 SCL SDA R605 4.7k R604 4.7k U60 VIN VB nr p5/mosi p6/miso p7/sck p8 p9/tx/sda p10/rx/scl p11/mosi p1/miso p13/tx/sck p14/rx p15/analogin p16/analogin p17/analogin p18/analogin/out p19/analogin p0/analogin NXP MBED VOUT VU R p30/canrd p9/cantd p8/sda/tx p7/scl/rx p6/pwmout p5/pwmout p4/pwmout p3/pwmout p/pwmout p1/pwmout Slika 3 3
IC/SPI На конектор CN14 су изведени сигнали који могу да се користе за повезивање екстерних уређаја на SPI или IC магистралу. Уколико повезујемо екстерну SPI перифериј и ако се за CS користи сигнал са конектора CN14, потребно је да се краткоспајач ЈP7 постави у средњи положај. R605 4.7k SCL R604 4.7k SDA CN14 1 3 4 5 6 7 8 9 10 Headerx5 MISO MOSI SCLK CS U60 VIN VB nr p5/mosi p6/miso p7/sck p8 p9/tx/sda p10/rx/scl p11/mosi p1/miso p13/tx/sck p14/rx p15/analogin p16/analogin p17/analogin p18/analogin/out p19/analogin p0/analogin NXP MBED VOUT VU R p30/canrd p9/cantd p8/sda/tx p7/scl/rx p6/pwmout p5/pwmout p4/pwmout p3/pwmout p/pwmout p1/pwmout Slika 4 DIGITAL IN/OUT Овај модул омогућава повезивање пинова p3 и p4 микроконтролера са екстерним уређајима на два начина: Директно повезивање преко клема конектора CN4. Преко оптокаплера U04 чији је улаз на клема конекторима CN5 и CN6. Оваква веза омогућава галванско раздвајање и тада су пинови p3 и p4 искључиво улазни. 4
Slika 5 PWM OUT PWM (импулсно ширинска модулација) је најчешће коришћена техника за контролу снаге код инертних електричних уређаја, као што су мотори, итд. Основна предност ове технике јесте чињеница да су губици на прекидачу веома мали. Уређај којим се управља овом техником се повезује преко клема конектора CN8. PWM излаз се побуђује преко транзистора Q101 чији се колекторски напон ( ) бира помоћу краткоспајача JP3. Уколико је краткоспајач у: левом положају,, средњем положају и десном положају. Диода D101 служи за заштиту транзистора од инверзне струје. U60 VIN VB nr p5/mosi p6/miso p7/sck p8 p9/tx/sda p10/rx/scl p11/mosi p1/miso p13/tx/sck p14/rx p15/analogin p16/analogin p17/analogin p18/analogin/out p19/analogin p0/analogin NXP MBED VOUT VU R p30/canrd p9/cantd p8/sda/tx p7/scl/rx p6/pwmout p5/pwmout p4/pwmout p3/pwmout p/pwmout p1/pwmout PWM_out R105 470 D101 1 6 5 3 4 JP3 1 CN8 Q101 MMBT +9V Slika 6 5