| ||||
|
| ||||
| Mikrokontroleri - SX | Autor: Milan Vukobrat, dipl. ing. | |||
|
| ||||
|
|
|
Ima još: Neka bude sa Flash memorijom, sa taktom 50MHz , ali da dobar deo instrukcija radi u jednom ciklusu, jer hoćemo 50 MIPS-a, neka sam snimi stanja bitnih registara pri interrupt-u i neka ih posle vrati, da ne moramo to da radimo programski ...
I još: Da bude kompatibilan sa nekim od već poznatih mikrokontrolera, recimo od Microchip-a, da ne moram opet da učim i arhitekturu i mnemonike, pa da se stare rutine i programe lepo presele u njega ...
Ah, zaneo se, sanja, mislite ... Ne, pričam o SX mikrokontrolerima.
SX - Key
Ako je strpljivi čitalac pročitao uvodnik ovog članka, postalo mu je jasno zašto su SX mikrokontroleri firme Scenix dospeli na listu “ 100 Hot Products 1998” časopisa Electronic design (EDN) .
Ključ njihovog uspeha bukvalno se i zove SX - Key, a delo je inženjera firme Parallax. Jednostavno, Scenix je napravio mikrokontroler sa podrškom za In-Circuit emulaciju, a Parallax softversku podršku koja omogućava programiranje / emulaciju / debagiranje kroz minijaturni sklop koji se zove SX - Key. SX - Key ima prema kontroleru 4 priključka - 2 za napajanje (uzima ga sa kontrolerske ploče) i 2 za preuzimanje kontrole nad mikrokontrolerom (SX mikrokontroler se programira preko OSC pinova).
|
|
Nikakvi dodatni elementi za
proces emulacije nisu potrebni. SX - Key daje svoj takt SX
mikrokontroleru, zaustavlja ga , čita sadržaj njegovih registara,
menja te iste sadržaje prema želji korisnika, vodi računa o Brek
point-ima ako su postavljeni, a korisnik kroz softwer prati “uživo”
šta se u mikrokontroleru dešava ... |
(jer je pomislio ono čuveno: “to je
to”), dovoljno je odspojiti SX - Key i mikrokontrolerje prepušten sebi
i svom okruženju ... jer se sve to radilo ne na protobordu ili nekom razvojnom sistemu, već na ploči gotovog uređaja koji je sada spreman za isporuku.
U daljem tekstu biće opisan editor / emulator za ovaj razvojni sistem.
SX - Key Editor
Editor je namenjen za unos sors koda i ima standardne opcije za njegovo uređenje:
· File za rad sa fajlovima: (New, Open, Save, Save As, Print, Exit )
· Edit (Undo, Cut, Copy, Paste, Select All, Find/ Replace ...)
· Run (opisan dalje u tekstu)
· Help (Contents, About)
Editor se može besplatno preuzeti sa Parallax-ovog sajta www.parallaxinc.com
Aktuelna verzija je 1.02 (sa dodatnim poboljšanjima unutar opcije Debug).
Na istom sajtu nalazi se i kompletan priručnik za rad sa SX - Key razvojnim sistemom u .pdf formatu (oko 2MB), kao i niz dodatnih informacija.
Run meni
U sklopu Run naredbe nalaze se opcije za emulaciju (slika 2):
Run: asemblira izvorni (sors) kôd i programira SX mikrokontroler
Debug: asemblira izvorni (sors) kôd, programira SX mikrokontroler i inicira Debug mod
Assemble:asembira izvorni kôd
Listing: generiše listing
Device: otvara Device dialog box za modifikaciju parametara mikrokontrolera
Configure:otvara dijalog box za konfiguraciju parametara kod programiranja
Debug mode
|
|
Debug mod (Registers) prikazuje status SX mikrokontrolera (memorijsku mapu i kôd koji treba da se izvrši) i predstavlja interaktivni kontrolni panel za emulaciju i debagiranje (Slika 4).
Na slici 4 levo su registri posebne namene (prikazani i kao heksadecimalni i binarno) sa nazivom svakog registra sa strane (i posebno označenim bitima u Status registru).
Ovi registri imaju adrese od $00 do $07. Ispod njih su registri opšte namene sa adresama $08 do $0F. Cela ta grupa od 16 registara ($00 do $0F) jedinstvena je za ceo memorijski prostor (mapirana kroz sve memorijske banke).
U sredini je prikazan kôd koji se izvršava, a desno je prikazan RAM (registri opšte namene kod SX mikrokontrolera su grupisani po 16 (adrese $10 do $1F) i podeljeni po memorijskim bankama (od Bank0 do Bank7), pa im se tako i pristupa. Trenutno selektovana banka je svetlija u odnosu na ostale, a aktivna površina se automatski širi (na osnovu odabranog mikrokontrolera) tako da uvek prikazuje sve raspoložive lokacije RAM-a. Na taj način se uvek vidi celokupni memorijski prostor.
Stanja registara ili vrednosti pojedinih bita lako se menjaju u toku emulacije pomoću miša (klik na bit menja njegovo stanje u suprotnu vrednost).
|
|
Debug naredbe grupisane su u poseban panel (Slika 3). |
Device window
Ovde se biraju parametri kontrolera koji se koristi, programira se, verifikuje ili čita sadržaj kontrolera. Poznavaoci PIC serije od Microchip-a lako će prepoznati način označavanja tpa oscilatora i slično.
|
|
Pod opcijom Fuses nalazi se deo koji je specifičan za SX kontrolere (Turbo mod, ne deli takt sa 4, nego instrukcije izvršava u jednom prolazu, Stack Extend - radi kompatibilnosti sa PIC16C5x može se koristiti samo 2 nivoa ili svih 8 koliko inače ima i sl. 5.
Vitrual Peripheral
Čitaocu neće promaći da je struktura SX mikrokontrolera siromašna hardverskim dodacima: nema SPI, I2C, UART i sličnih stvari ... Dizajneri kontrolera okrenuli su se drugom rešenju - napisali su softverske module za ove i mnoge druge funkcije i nazvali ih Virtual Peripherals.
Korisnik ove softverske module koristi ili kao interrupt rutine, ili kao podprograme (opširniji opis videti pod vp_paper.pdf na www.scenix.com). Tamo se mogu preuzeti i razni VP moduli (mnogi novi se već pišu) i mogu se pogledati njihove primene.
Ideja sa VP je veoma dobra: snižena je cena proizvodnje samog mikrokontrolera (nema hardverskih dodataka), a sa druge strane, ceo problem je zahvaljujući ogromnoj snazi procesora prebačen na teren softwer-a, pa ako vam modul treba, sami ga i ugradite (koliko puta vam je u projekat “otišao” kontroler sa A/D konvertorom, SPI, UART i sl., a ništa od toga nije bilo potrebno!).
Prema najavama iz SCENIX-a, nova serija njihovih kontrolera SX18/28AC100 radi na 100MHz (instrukcijski ciklus 10ns, a svi interrupt-i se servisiraju za samo 30ns!). Uz pomoć VP modula ovi kontroleri uspešno obavljaju funkcije DSP srednje klase (za one koji se bave digitalnim filtrima - funkcija FIR digitalnog filtra četvrtog reda uz pomoć softverskog VP modula izvršava se za manje od 10ms), ili menjaju FPGA i PLD.
U tabeli 1 imate kratak spisak najzani-mljivijih VP modula
| Funkcija | EEPROM reči |
| DC-100kHz generator frekvencije | 30 |
| DC-100kHzmerenje frekvencije | 40 |
| I2C Master | 50 |
| I2C Slave | 80 |
| Keypad Scaner | 70 |
| LCD Modul | 120 |
| 19.2kbit/s serial UART | 60 |
| Centronics Paralel port | 30 |
| 500 kHz SPI/Microwire | 50 |
| Dallas serial port | 130 |
| DTMF I/O | 120 |
| Caller ID | 180 |
| 300/1200 baud modem | 280 |
| PID loop | 160 |
Karakteristike
SX Mikrokontrolera
Navešćemo samo neke od karakteristika SX mikro-kontrolera :
· Izvršavanje instru- kcija u jednom ciklusu (20ns pri 50MHz - Turbo mod)
· Internal RC, External RC, resonator ili oscilator sa kristalom
· 2048x12 EE/Flash programske memorije (10 000 ciklusa r/w)
· 137 bajta RAMa
· Hardverski stek 8 nivoa
· Fiksno vreme odziva na interrupt: 60ns na interni, 100ns eksterni
· Multi Input Wake Up (MIWU), objašnjeno u tekstu ispod
· In - system - programming (OSC pinovi)
· Ugrađen analogni komparator
· Brown - out detector (4,2V)
Posebna zanimljivost je da su izlazi na Portu A izvedeni kao komplementarni (u stilu push-pull kod audio pojačavača), čime je postignuta bolja pobuda pojedinih vrsta potrošača (zvučnik, ultrazvučni davači i sl.).
Svi portovi imaju i mogućnost softverske konfiguracije da budu CMOS ili TTL kompatibilni, a Port B i Port C mogu se konfigurisati da budu Schmitt Triger ulazi. Postoji i interni Pull - Up koji se aktivira softverski.
Port B ima mogućnost generisanja interrupt-a na bilo kom pinu (Multi Input Wake Up - MIWU).
I/O pinovi mogu se opteretiti do 30mA.
Nivo kompatibilnosti SX mikrokontrolera sa Microchip-ovom serijom PIC16C5x:
· Imaju isti raspored izvoda kao odgovarajući kontroleri Microchip-a serije
· Mogu se programirati na isti način (preko istih pinova), iako se preporučuje da se koristi originalni metod preko OSC pinova
· RAM registri i memorijske banke su identični, kao i programska memorija
· Objektni kod razvijen za 16C5x programira se u SX bez izmena
· Instrukcije se, u kompatibilnom modu, izvršavaju istom brzinom
Razvojni alati
Uz SX - Key kod Parallax-a može se preuzeti i njihov SX - Key Assembler - preporučljivo ne samo zbog toga što je prilagođen SX mikrokontrolerima, već i zbog efikasnosti, rada sa makroima i sl.
Posebna vrednost ovog asemblera za pojedine buduće korisnike je što setom instrukcija prati sintaksu asemblera koji su pisani za 80C31 seriju mikrokontrolera, pa se programeri bez mnogo muke mogu “prebaciti” na ovaj razvojni sistem.
|
|
Za Sx već postoji i odgovarajući BASIC (videti prikaz BASIC STAMP IIsx iz prošlog broja), a firma Byte Craft Ltd. ima i C kompajler i asembler za SX.
Parallax proizvodi i SX Demo Board, gde se mogu isprobati primeri programa, rad VP modula ili testirati vlastite rutine.
|
C o p y r i g h t 1998 mikroElektronika. All Right Reserved. Za sva pitanja obratite se redakciji |