Professional Documents
Culture Documents
AoE 2001-02 PDF
AoE 2001-02 PDF
AoE 2001-02 PDF
• r;inrprrtkxp
AM-mottagare
förO-1.8MHz
Experiment
for Gameo1J
• UppgraI
BASIC-52 !E
I
• Omvandl
MIDI till-
INTERPRESS 0173-02
7 366617
Alit om http:llwwwal Itomelektronik.com
Eiektronik
Chefredaktör och
ansvarig utgivare
Bill Cedrum
Redaktionen
Experimentkort for PCI-bussen
Box 2094 Utvecklingen av PCI-baserade expansionskort är ganska kom-
194 02 Upplands Väsby plicerat och kräver vanligtvis storre investeringar I bade tid och
Besöksadress
lndustrivagen 8 pengar innan man nâr mâlet. Det utvecklingskort far PCI som vi
194 77 Upplands Väsby presenterar här är en betydligt bekvämare losning. Dess för-kon-
Redaktionssekreterare figurerade PCI-avkodare och 16 bitars breda databuss, tilisam-
Asta Russell mans med en serie portar, gär att du kan koncentra dig pa att
Utgivare
utveckla och testa din prototypkrets, utan att fastna I detaijer
Electronic Press AB angâende PCI-busstandarden
Box 2094
19402
Upplands Vasby
Tel: 08-710 08 90
Fax: 08-710 08 92
E-mail: red@alitomelektronik.com
http://www.alltomelektronik.com
Prenumerationer 2001
PressData AB
Tel: 08-799 63 25
Fax: 08-98 45 72
Helâr (I I nummer) 435:-
Halvr (6 nummer) 255:-
2 âr (22 nummer) 825:-
Norge helâr 370:- Nkr + porto
Norge halvr 224:- Nkr + porto
Norge 2 Ar 705:- Nkr + porto
Annonser
Annonsavdelningen
Box 2094
194 02 Upplands Vasby
Tel: 08-710 08 90
Fax: 08-710 08 92
E-mail: annons@alftomelektronik.com
Tryck
NDB-Printing
Zoeterwoude, Nederland 2001
30
ISSN 0280-8765
42 GBPB
GameBoy Prototyping Board
46 Omvandlare for
MIDI-till-spänning
4nvänd MIDI till annat On musik
16 MCS BASIC-52V1.3
\11~~ Den gamla BASIC-tolken har fOtt en
behOvlig ansikslyftning
51 Nästa nummer
16
tvecklingskort for
Pcimbussen (I)
Utlorska PCI-bussen
Av H. Kolter (Kolter Electronic)
Peripheral Component Interconnect, eller PCI- mycket kraftfull multiplexad 32/64 bi- alla de PCI-kort som ax anslutna till
bussen, ax en relativ nykomling när det galler tar bred adress/databuss. Ett av ma- datorn och kornmer att initialisera
datonnterface, men den hMler snabbt pa att len vid utvecklingen av bussen vax dem under set-up proceduren for BI-
ersätta den äldre, och mer välkanda, ISA-bus- att den inte skulle bli förâldrad I stort OS. Sâ fort kortet har konfigurerats
sen. En attraktiv egenskap far utvecklare av sett Over natten, utan fortfarande an- under BIOS tiildelas det en âtkomst-
kringutrustning är att denna buss inte bara vändas efter det att mânga proces- adress (accessadress). Dot firms olika
används med IBM-kompatibla PC-datorer, sorgenerationer kommit och gâtt. PCI-rutiner som gar att derma infor-
utan ocksâ med arbetsstationer och Apple PCI-bussen är oberoende av system- mation kan läsas eller ändxas.
Macintosh system. I grunden ax interfacet en processom och ax nännast att betrak-
ta som en i stort sett fristâende sys- PCI-kontroller
tembuss som har en relativt hag da-
taoverfaringshastighet.
och Vendor ID
Kortet omfattar: Moderna moderkort far PC har inte Den centrala kärnan i ett PCI expan-
- 32-bitars PCI-kontroller implementerad langre nâgra expansionskontakter for sionskort ax PCI-avkodaren eller kon-
med ispISI ISA utan enbart fOr PCI. Nackdelen trollerchipet. Detta chip bildar Ian-
- 16 baars användannterface likande ISA- ken mellan datorns PCI-buss och
fOr en konstruktär av ett instickskort
bussen
(plug-in) ax att designprocessen ax den krets du har utvecklat. De fiesta
- Atkomlig avkodare GAL22V 10 (Synario)
ganska komplex. Det ax inte langre kommersiella kontrollerchips far PCI
- Stor 2.54-mm maths med genomplaterade
mojligt att piilra med kortslutnings- som firms pa marknaden ax inte bara
hi
byglar (sâ kallade jumprax) utan kor- mycket komplexa (och dyra), utan de
- DC/DC omvandlare +1- IS volt
tet konfigureras helt via mjukvara. Ox ocksa ganska otympliga bestar p&
- Lampligt for utveckling av digitala och
analoga kretsar.
PCI-kortet har sitt eget operativ-sys- grund av de stora kapslingarna. For
- Valbar Product ID
tern, som initialiseras genom att vârt PCI-experimentkort i detta pro-
- 8/16 bitars buss med CS-signaler skriva till de interna registren via jekt har PCI-kontrollern implemente-
PCI-interfacet. PCI-BIOS känner av rats i ett ispLSI1032 programmerbart
00.D15,
IspLSII032E
din hârdvara pa snabbare tid an 90 ns. Alla 100.1 1_pcicSi-I
nodvandiga komponenter firms pa kortet och 1- -
Själva kretsen I
L -------------------
PCI BUS
huvuddelar:
ICI: PCI-bussens adapterchip av typ Figur I. ôversikt av funktionsblocken hos PCI-utvecklingskortet. En
ISPLSI1032 med ID-switch. forklaring av forkortningarna visas i rutan nedan.
Al
*036 2*
7032
• 2 103 02 ClOt 3 27 M 1$ £03fll.,P0-Att I
I080L 21 70 *02401 0 0,23C
123
-100 *00 25 02
''"-- 3IS 32
4021_ 02
AS .12 .12 *00 21 12 *00 03 4 71 C
U 21 402 4038 64 03
MS •IV *031 P0.CI$../131.Dl $ 1C2 20
410 4037 12 IS
MS : MS *030 33 PCI-CSo,.fl..._08 '
46
•, : MS Cm S 0610
, 006 0035
75 oo.A)\pcI.fv 7
7
GAL
05
04
AIL
*10
*402.00
010
4016 34
808 4040
78 o,Akpo-co* , II
22V10
07
,7
VCC419/323) 8.3.n.d 21 *0$$I AC
All Ill Vol 404' Cl It OS16
#016 70
Al2 C=1 077 11010 40 11$ 00
CM 0582 _________ III
A13 1 073 11011 11043 070
All
N09..o21 o...nd
" "'A"!
*07
3*
(1Q12 (1044
80 05
4' ROT.OUT 13 72
I
So
01.6410
YCC)1273V3) CLII 002SEL41
MIS
M ., 13
__ + P021
5005
46
45
vo Is
opL
09 1 70014,
(5909339CC 410 17 41349
700
*021 , 020
827
*031
*015 II
4078 7050
0l2j
70 8. 704 * II
*27 *061 6
372 *020 40 19 $057
' I
£22 Sn CISOl
47020 4052
0l3j
1
CO *078 *077
_
823 *077 *034 50
11021 0053 I
__ • 024 800 8013 81
0052
•
°'5 P
2. • 03
*25
*26
Cm *034 .303
021
we 01003
8072
8075
12
So
70
II P0RWJ1ft1
I
10171. W
027 800 *030 14 72 *DSIJW1_30
82$ _
AM
___ H.L. *00 56 3 *C30/10$
829 : *061
529 *031 AN 56
vo 27 19
14
II *021 jI..08
535 *010 010110 *7 _______________________
VO 21 7021
037
8017
407
808
IS
2157
.062
78
Il
*077
*00j.,39
r
l$
*32
*33
*076 *057
00
033 010(2 ADS
0*
so So
w 7031 .063IS
am
835 _ go, Cm 830 *01 1541107 21
00
20 01.0410
' .303
3SPHOOK S2 DI .0
*37 837 050051. 0(41100 44
*000.057
SOOOW
83 ...392
p *0384*
- 534 510001.0 SI
90*
01.53 73
*2 013
p
•' SW0 *760 6471
K8*
*40 ____ 545 410217 4110(7 $4 1.0l5V
*47 24 2$PREIJ
MS .33 IS
*42 _ 822 0544 K4
P811 •3V3
*44
*011
.293 1 8' ,5V A. F
.I
7.4$ 824
*47
*077 *032
047 8013 '
A41 046 *070 P0*0 I 7 03
9177 1710 0 10 I
12.J
•5V lo oJ-" I I
14 1 lS4p cl3* 5T3$-,5725 111p I
+
I 1
C13 .I6V ()-. III 0T24 ,,, $T27 191
p I
IC4
______
ST" 25
0 n 8726
I I
JCI7 I NUHOSI OS I oo.T fl0T27 27 20 5315 ,,0T2e "1
I
.4.406*3 5T 21 25 30 ST20 ..,j,,. $l30
I 1
T001. I occc 31 p 32 5T32 0Y31 10
p I
0153
37 p1
1 335
_____ /73*
.0 .0001 + .isv
!—LJTo 061 ____
.52 070009.77
Figur 2. Kretsschemat for PCI-kortet. Den största delen av kretsen, PCI-bryggan som Iänkar PCI-bussen till kret-
sarna pa experimentytan, är implementerad i ispLSl-chipet.
P
"i1111 gi 1
000000 --
00000000000
00000000000
°
00 -0-0-0-0 -0 -0 - 101 00000000000
000
Li 00 000 00000000 00 0
00000000000
0 00 00
I 0000000000 a )
00 0.I:0000000000 00 ) /
0 00000000000 0_
I ' 0\IiI 00000000000
___\. ,,0 00000000000
/ 00 000000000
Ioo L ° 00 000000000
I 0 00 00 : UIII\
0
000 000000000
I 6000L0 I 0 UII_ \J 00000000000
10 0 0000A : 00000000000
0
00000000000
00000000000
00
00000000000
00000000000
Ona 00000000000
- 00000000000
00000000000
0000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
O 000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000
programmerade LSI-chipet ispLSI1032 fr&n detta schema lämnas i en särskild är VID far Kolter Electronic i Tysk-
Blockschemat for PCI-kortet visas i figur 1. Den Vendor ID-kod som namndes ti- applikationer i vilket ispLSI-chipet
IC1 visas bar som 'PCI target bridge'. En färk- digare ax farprogrammerad i ICI och fran Kolter utnyttjas.
laring till de färkortningar som anvânds i har i detta fall värdet OxlOOl. Detta IC 1 bildar bran mellan datorns PCI-
10 MI om Elektronik 2/2001
I1
0 0 000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
oo___ O 000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000
CM 00000000000
go ce
000a:: o:o::000
00000000000
63 63 CS
00000000000
::QoQ
co 00000000000
ce so 00 000 ________________________ 00000000000
0000000000
Z
00 1100000000000
00
do
to CM
(:1
0 O\000O___\\
40 CM jI II 00000000000
a) CM 40 CM 00000000000
K) 40 CO 00000000000
0 0 00000000000
L
o 0 0
CO
eIII1€, 00000000000
00000000000
0
0000000000
0 I00000000000
0 0
0 0
: 00000000000
0 00000000000
o0 \__ 0 0 00000000000
as 00000000000
i 11111 I I i1
0 00000000000
liii I liii
PCI_ADR
Detta program iiknar PCIVIEW, men
visar endast information om PCI-en-
heter med Koiter Electronics Vendor
ID, inldusiver detta PCI experiment-
kort,
HWT
Hardware Test Program, HW'E ax ett
PCI diagnosprogram som körs under
Windows. Förutom tillverkarens Ven- Test LED
dor ID och utrustningens Device ID
visas ocksâ kortets 1/0-basadress.
Den visade basadressen har Okats
med ett, sa att, till exempei, en ad-
ress som visas som E001 egentligen
är E000. Adressutrymmet far PCI-
kortet sträcker sig fran denna bas-
adress Over ett 256 byte stort omrâ- Figur S. Oversikt av stiftlisterna och andra element pa kortet.
de. I vart exempel blir dâ det verkli-
ga adressomradet E000 till EOFF.
Med hjälp av basadressen ax det ma- kan sparas i viiken underkatalog corn (se weblänkarna i slutet av derma arti-
jligt att fâ tillgâng till portarna med som heist. Om du anvdnder Win- kei).
8 eller 16-bitars databredd. dows NT4/2000 är det nOdvändigt
Funktionerna Read* 106 och Wri- att kopiera SYS-data till katalogen Använda med Linux
te * 106 är inkiuderade och kari an- c:\Winnt\system32\drivers och se-
vändas for att bestämma det maxi- dan starta om datorn. HWT kan dâ Ni som arivänder operativsystemet Linux
mala dataflOdet genom porten i din startas fran utforskaren. finner i aiimänhet att det är enkeit att pro-
dator. Om du klickar pa derma funk- grarnmera hârdvarukort som 1/0-kort, A/D
tion kommer 1000000 portcykier att Programexempel och D/A omvandlare, med hjaip av GNU-C
utföras. Genom att mäta tiden far Detta program, komplett med källko- kompileraren. JämfOrt med operativsysteme
dessa far du en uppfattning om ge- den i Delphi, gOr att du snabbt kan fran MS sã finner du att det inte firms nâgra
nomstranmingshastigheten i ditt testa den krets du byggt pa PCI-kor- gomda adressmekanismer elier nâgra tricks
system. Hardvarutabellen är en stan- tets experimentyta. Du kan ocksa som normalt är nodvandigt när man arbetar
dard textifi och kan enkelt utOkas till kolla om PCI-kortet sjäivt fungerar, i med programmering av MS-systemet. Linux
dma önskemal. sâ fall biinkar test-LEDen pa kortet. operativsystem och Linux applikationsmjuk-
Med Windows 95/98/ME behöver du Det finns en NT-drivare for Windows vara är iätt att fâ tag pa och fOr det mesta
inte nâgon ytterligare registrering for NT/2000. Detaijer om denna finns vid gratis. Att programmera i Linux är sa mycket
att använda HW'E alia datafilerna webadressen http://www.pci-card . enklare sâ vem som heist som har kunskaper
hemsida. http:llwww.pci-card.com/pcideko.htm/
http:ljwww.pci-card.com/pciversion.html
Dataöverföring, timing och htti)://www.pci-card.com/pciboards . htm/
adressering http.IIww-w.rxi-card.com/Hwt.zi
http:llwww.pci-card.com/pci pins. htm
Den andra artikeln i denna serie kommer att http://www.pci-cord.com/pro3pci.ip
mer i detalj att undersöka haghastighets
da mikrokontrollerfamiljen. Tyvärr
kan inte MCS BASIC 1.1 käras direkt
med de snabbaste medlemmarna ur
denna familj. Forfattarna har därför
gjort ett stort antal modifieringar av
källlcoden och komxnit fram med ver-
sion 1.3, med fäljande resultat:
r EUXTOR
000121-11
till och med kan kOras pa en Dal-
las 80C320 med 33 MHz!
- En ny resetrutin känner igen baud-
L_ eps no rate och olika typer av kontroller.
_.
copyright ) Segment B V 2001
Detta betyder att BASIC-52 V1.3
kan köras pa mânga medlemmar
ur 8052-familjen (80616, 517(A),
528, 535, 537, 575 etc.).
- Den nya OPCODE 43h laser ett var-
de fran argumentstacken in i en
variabel.
- Storleken pa tolken ax fortfarande
bara 8 kB, vilket betyder att den
far plats i en 87C52 med 8 kB in-
ternt EPROM.
MCS BASIC-52 V1.O tolken utvecklades un- lagts ner. Men tolken ax fortfarande Intel har flu slappt tolken som free-
der 1985 specieilt for mikrokontroilern 8052- mycket popular i sin slutliga 'offi- ware. Den kan sâledes hãmtas lag-
AH. Med sin kodstorlek p& endast 8 kB fick ciella' version (1.1) trots en del fel. ligt fran Internet som en kommen-
den plats i det interna ROMet i denna kon- Idag ax 8052-familjen, med sina man- terad källkod. Trots kommentarerna
troller. Tyvärr har produktionen av 8052-AH ga denvatversioner, den mest använ- är källkoden into sãrskilt enkel att
180 PRINT VOLTAGE*RANGE/256, Volt : REM Adapt value to meas. range dessa tecken till motsvarande sym-
190 END boler under symboliseririgsprocessen.
Till exempel Oversattes ett frâge-
- En ny baudratedetektor anvãnder som motsvarar den uppmätta timin- WRSFR (address) value
'Timer 2' i stället far 'code loop' gen av mellanslagstecknet (4800 Skriver 'value' till den indikerade SFR-
timing fOr att mäta den använda eller 9600 baud). Kontrollern adressen.
baudraten. Detta gOr matningarna 800517A, som ocksâ används ofta, RDSFR (address) variable
helt oberoende av kontrollertyp fOr en färbättrad speciell baudrateg- Laser innehâllet i den indikerade SFR-
och klockfrekvens. enerator. Denna stOder godtyckliga adressen pch skriver det till 'variable'.
- Timer 0, som används for tids-mät- transmissionshastigheter, men arbe-
ningar (BASIC Software Clock), tar fortfarande oberoende av Timer Med hjälp av dessa kommandon är det erilcelt
körs flu i 16-bitars mod i stället far 2. BASIC-52 V1.3 känner automa- att adressera extema expansioner hos de oli-
det 13-bitars mod som användes tiskt igen denna processortyp och ka processordenvaten, sasom ytterligare I/O-
tidigare. Detta betyder att det aktiverar den med lämplig baudrate. portar hos en A/D-omvandlare. Den tva
maximala värdet far XTAL nu är Med samliga dessa specialtyper av exemplen pa BASIC-program i textrutorna
78,627,473 Hz. Grundvärdet vid kontrollers är Timer 2 fritt tillgänglig (AD-5351IS och AD-517A.LIS) illustrerar hur
uppstart är 11,059,200 Hz fort- fOr användaren. SFR-kommandon kan användas.
fararide, men detta värde kan mo- Eftersom BASIC-52 V1.3 ocksa kan kOras pa
difieras med 'XTAL = value'. 12C och SFR 80535, 537 och 517 kontrollers, saval som pa
Alternativ kan grundvardet and- andra typer, och eftersom den externa kom-
ras genom att färse foljande plat- BASCI-52 kan enkelt byggas Ut I mandoutakningen nu gor att expanderade
ser i EPROM med lampliga nya assembler med ytterligare BASIC- SFR kan användas utan problem for att
värden: kommandon. Naturligtvis kan dessa komma at nya hârdvaruegenskaper, är det flu
l7Flh = 11 utbyggda kommandon irite placeras enkelt att skriva programmerbara styr och
l7FOh = 05 mom 8-kB ergionen hos BASIC- justeringsprogram i BASIC i stället fOr att
17EFh = 92 tolken. FOrfattarna har implemen- brottas med assemblerprogrammering. Pro-
17EEh = 00 terat sex nya kommandon. Fyra av gramexemplen visar användningen av AID-
dessa är relaterade till 1 2C-kom- omvandlaren i en 80535 och en 80517(A).
Far baudratedetektering mâste an- munikation pa fäljande sätt: A/D-omvandlaren i en 80535/537 kontroller
vändaren fortfarande skicka ett mel- har en upplosning pa 8 bitar. Den externa
lanslagstecken till BASIC-52 via I2CSTART referensspanningen fOr omvandlaren satts
seneinterfacet. Teckenlangden mats Sander en Start-kondition pa 12C- normalt till + 5 V. Detta ger en maximal upp-
dâ av detekteringsrutinen med hjälp bussen. lösning pa 20 mV. Eftersom den interna refe-
av Timer 2. I priflicip anvãnder I2CSTOP rensspänmngen hos omvandlaren kan pro-
BASIC-52 Timer enbart som baud- Sander en Stop-kondition pa 12C- grammeras med SFR 'DAPR' är det mojligt att
rategenerator. Detta galler 8052-kon- bussen. fa hogre upplosning (till exempel 4 mV) ge-
troller och Dallas 80C320. 80535, I2CPUT (value) nom att gora en andra matning med ett
80515 och 80517 kontrollers kan inte Sander ett byte pa 12C-bussen. mindre matomrade. De SFR som listas i 'Ihbell
aktivera Timer 2 som en baud-rate- I2CGET (value) 1 kan användas for detta ändamâl.
generator. De har en speciell bau- Laser ett byte fran 12C-bussen in I
drategenerator som är helt obe- en variabel.
roende av Timer 2 och detta gOr att
endast tvâ olika baudrate kan gene- Tvâ ytterligare kommandon gor att
reras med ett specifikt färhâllande SFR (Special Function Registers) kän
till processorns klockhastighet. Om läsas och skrivas. De olika derivat-
klockfrekvensen är exakt 12 MHz är versionerna I kontrollerfamiljen ut-
de tillgangliga hastigheterna 4800 nyttjar supplementara SFR. FOljande
och 9600 baud. Om setup-rutinen fOr kommandon har implementerats sa
BASIC-52 V1.3 detekterar denna typ att dessa register kan kommas &t via
av kontroller aktiverar den baud- BASIC:
rategeneratorn med den baudrate
Design av seriell
kri'lngutrustning (6)
Matning med sensorer
'1
Av B. Kainka
IYFR 0
T = T * 0.932
R = 2200 + 7800 * (T - 76300) I (294600 - 76300)
REALTIME (False)
R = Int(R)
Labell.Caption = StrS(R) + - Oh
y2 = 300 - R / 100
If n = 0 Then yl = y2
xl = ii
n=n+ S
x2 =n
Picturel.Lirie (xl, yl)-(x2, y2)
yl = y2 OcOMI OCu2
End Sub
till ratt storlek med hjalp av musen. 300 (30000 Q =30 ku). Vane sekund
For det här exemplet (plotterl.frm) plottas ett nytt värde for kurvan i fi-
behöver vi en PictureBox pa 300 gan- gur 3 och ett nytt linjesegment dras RI
ger 500 punlcter. fran den senaste punkten till den 0Th 216
Vi kan rita i PictureBox med hjälp av nya. De gamla koordinatvärdena D R2
Line-kommandot, se lista I far ett mâste sparas och far detta ändamâl
exempel. Plottningen dras under en används globala variabler.
period pa 100 sekunder och x-koor- DSR
dinaten flyttas framât 5 pixiar efter Mätningar av
vax]e avlasning. En global variabel n
mâste specifikt dekiareras far att
hudresistens (:) ___V
_"7
000074-6. 4
TX0
spara den aktuella positionen aver En annan mtressant 'sensor' an den
anropen till timerproceduren. mänskliga huden och ett par oiso-
Etefter y-axeln plottas resistensen lerade tthdar kan lindas kring tvâ fin-
(R/100) med ett maximalt värde pa Figur 4. Förstärkare for mätning av
grar. Hudens resistens är inte kon-
hudresistensen.
R3,R7 = 2k2
R5,R6,R9-R12 = lk ordernr 000070 41 -
I
En servofarlängningska-
bel som deiats i tvâ kan
an-vändas som ansiut-
nings-kabel. Det är en bra
ide att montera en liten
ferrit-ringkarna p& kabein
till mottagaren, eftersom
det-ta isolerar kretsen fr.n
hOgfrekvensssignaler som
kommer fthn mottagaren
och resten av kabeln kom-
mer dâ inte att färsämra
signalmottagningen.
När allting är fardigt skall
du vänta lite innan du sat-
ter in mikrokontrollen i
dess hâliare.
Anslut forst SpeedControl
till en justerbar span-
ningskaila med ett omrâ-
de p& 0-6 V och anslut en
voltmeter melian 0 V en
nAl som satts in i ansiut- Figur S. Den färdigbyggda SpeedControl enheten.
ress, kommer att visa innehâllet i byte OOh till denna adress. Avsluta o R2
F/B
den valda minnesplatsen pa skär- vane post med Enter. Nan Speed 0
ov
men och den uppdateras ungefar tre Control switchas till igen kommer o '
KOMPONENTLISTA Halviedare:
Dl = STPS3045CT
0
SpeedPower I
D2 = BAT85
Motstând: TI = BC547
RI = 6802 T2,T3 = 1RL2203N
R2,R3 = 470Q IC I = HCPL2630
R4,R5 = 2k2 1C2 = TC4426CPA
R6= I 1C3 = L4940V5
R7= I00kQ
R8= 150 Ovrigt:
Re 1, Re2 = relä, Fujitsu 51ND06-N
Kondensatorer: (Conrad Electronics #505099-I1)
C = IOpF 16V radial PC -PC9 = Iodstift
C2,C3 = IOOnF Kretskort 000070-5 (tillsammans med
C4 = 47pF 16V radial SpeedControl - se Läsarservice)
C5 = 22nF Figur 9. Kretskortslayouten fOr
SpeedPower I.
LL
•5V +
vona barjar fladdra, kan strömforbrukningen 0
L_4
BEC I 7V2/12V
stiga arxda upp till 1,2 A och mottagaren mâs- 68 D3 R9
Cl
te fortsätta att fungera tillfOrlitllgt även under 47 p 1 6V
dessa förhâllanden. PWM och 'for/back' sig- 1611
loon 4V7
1C2
D2
BAT85
-M
.
14 RIO
T3), medan den andra utgângen styr switch- ol
5
ningstransistor Ti, sam aktiverar reläet. Ett
par Schottkydioder i en dubbelkapsling är
ansluten over MOSFET-utgângarna far att ta
hand am 'flyback'-strOmmar, tillsammans
0v
II
P 64 BAT85
7.10 - 2 . 16
22n
BEC
0
P fl
D4
EUE TR10
—Q118 ()C2
derar en broms-FET. Drivaren for
effekt-MOSFEThrna, 1C2, är en annan
typ an den drivare sam används i
Basen pa T3 är ansluten till en fast
spanning pa 3 V. Nãr 'far/back' är
Lag är emittern has Ti ansluten till
RlI" .IR3 -+3R4 SpeedPower 1. Den har ett inverte- jord via R7. Ti fungerar dâ sam en
FIB (Th ? TI
000070-2
rande och ett icke-inverterande steg. konstantstrOmkälla och dess kollek-
I -
R7 CFNI ~ o
D2 Nàr for/back' inte är aktiv är ben 6 tar sänker 20 mA. Detta drar gate
EC D1
4
C3
KOMPONENTLISTA Halviedare:
SpeedPower 2 DI,D2 = BAT85
D3 = zenerdiod 4V7
MotsUnd: D4 = STPS3045CT
Rl,R2,R3 = 470 TI = BC547
R4 = 3309 T2 = MTP5OPO3HDL
R5,R6 = 2k12 T374 = 1RL2203N
R7 = 39 Id I = HCPL2630
R8,RII = 1c2 1C2 = TC4428CPA
R9 = 560 1C3 = L4940V5
RIO= l5C
Ovrigt:
Kondensatorer: PC -PC9 = solder pin
CI,C4= IOOnF Kretskort 000070-4 (tillsammans med
C2,C5 = 47pF 16V radial SpeedControl se Läsarservice)
-
Mottagningsomrâdet far den mottagare som den extra sektionen fr&n 1600 till un- ocksa mycket intressant. Aktiviteten
besknvs här, är kontinuerligt variabelt fran gefär 1800 kHz. Flera kustbevak- mom detta omrâde omfattar, bland
DC (llkspaxinu g) till 1,8 MHz. Detta gär den- ningsstationer arbetar mom detta arinat, kommunikationen med ubâ-
na mottagare mycket speciell, eftersom de omrâde och dessa länmar ofta intres- tar. Det finns ocksâ fiera service-sta-
fiesta AM-mottagare endast är lampliga for sant information, specielit när det tioner här, inklusive teleprinter-sta-
lângvâgsbandet (150-433 kHz) och mellan- galler vädret. tioner (RTTY), vädertjänster och den
vâgsbandet (ungefar 520-1612 kHz). Vad kan I den nedre delen av avstämnings- berOmda tidssändaren DCF77 (pa
detta extra breddade band dâ ha att erbjuda? omradet, specielit det sa kallade 77,5 kHz). FOr entusiasterna ar VLF-
Ni som bor nära kusten uppskattar säkert VLF-omrâdet fran 9 till 148,5 kHz, är bandet ett fascinerande omrâ-de.
Tabell 1 ger ett litet urval av de sta-
tioner som firms mom bandet.
Dubbel superhet
FOrst en kort äversikt av mottagaren.
Pa grund av vâra krav när det galler
känslighet och selektivitet sâ har
mottagaren designats som en dub-
be! superhet. For de av er som vill
uppfriska ert minne vad en superhet,
eller bättre sagt, en superheterodyn
mottagare, är for nâgot, refererar vi
till textrutan om detta.
For antenn valde vi en mycket kort
vertikalantenn, det racker med en
langdpâlocm!
Avstamningen av mottagaren sker
med en potentiometer och en kapaci-
tansdiod (varicap). Filtren är stan-
dard keramiska filter och färdiga
drosslar. Du behäver inte linda nâ-
gon spole! Vi vet att mânga av v&ra
las are inte viii hâlla pa med att linda
sma egna spolar. Och darigenom blir
denna mottagare ocksâ mycket en-
kel att bygga.
Dessutom kan vi berätta att motta-
garen är mycket integrerad, och be-
Zi
färsta mellarifrekvensen). Denna sig- sändarna och en detektor. När antalet sändare
nal förstärks och filtreras âterigen Okade blev det snart uppenbart att ett enda HF-
och läggs till en annan blandare. steg var otillräckligt fOr att separera sändarna fran
Denna gang med en signal fran en varandra. For att öka känsligheten si adderades
A
ett andra HF-steg. Sâdan dubbelavstämda
fast oscillator pa 10,245 MHz. Blan-
radiofrekvensmottagare (TRF), flgur A, var popu-
darens skillnadssignal (den andra
iära under lang tid.
mellanfrekvensen) har en frekvens
Men till slut gay inte heller TRF tillracklig känslig-
pa 455 kHz och filtreras ocksâ, far- het. Naturligtvis kan konceptet utOkas till ire, fyra
stärks och demoduleras slutligen. eVer fern steg, men alla LC-avstämda kretsar mste justeras synkront. Och detta är ingen
Signalen färs därefter, via ett lag - enkel uppgift.
passfilter, till en audioförstärkare Tillkomsten av den superheterodyna mottagaren, figur B, innebar ett stort steg framt.
som höjer signalen till hagtalarnivâ. Knepet är att blanda ingângssignalen med en variabel oscillator, som justeras synkront
Den linje som startar bakom demo- med HF-steget (genom att använda tvA kapacitansdioder pa samma axel, pa samma satt
dulatorn och sedan gâr tillbaka, via sorn med en dubbel TRF). Oscillatorfrekvensen väljs sâ aft skillnaden mellan ingangs och
ett l&gpassfilter, till mellanfrekvens- oscillatorfrekvenserna är konstant. I exemplet i figur A, när ingangsfrekvensen ändras fran
förstärkarna, är en del av AGC-kret- 500 1600 kHz, sâ ändras oscillatorfrekvensen samtidigt fr&n 955
... ... 2055 kHz. DärfOr,
sen (automatiskt fOrstärkningskont- oberoende av den valda ingângsfrekvensen, kommer skilinadsfrekvensen
(mellanfrekvensen) alltid aft vara 455 kHz. FOrdelarna är tydliga. For bättre selektivitet
roll). Denna kontroll ser till, att vid
kan hur m&nga stag som heist läggas till efter blandaren, utan aft dessa behöver avstammas
mottagning av en stark station sâ
synkront med
minskas färstarkningen i mellanfrek-
r
ingângssteget. De
vensförstärkarna sa att starka och B
kan belt enkelt ha
svaga stationer later ungefar lika en fast frekvens
hagt. (455 kHz I detta
fall). Superheten
Schemat byggs ofta ut till en
dubbel superhet
Det är nu dags att titta p& hur de genom aft addera
olika blocken skapas i praktiken. en blandare och
Figur 2 visar det kompletta krets- oscillator till. Detta
ger ytterligare for-
schemat fOr mottagaren.
bättrade prestanda.
En MOSFET med dubbel gate an-
vänds som ingangsfOrstarkare. Den
12V
46fl,A
Figur 2. Kretsen är relativt lite tack vare att vi använder en speciell mottagar-IC for AM, 1C2.
o
I
H7c3 H H7,
OFRIO
t.I
~2
~ 5 5
C2
X2
L6 0
C30 "oEiEJo C27 C23 : W6
2 °'°
C20
1C4 0001761
Figur 3. Det intelligent designade kretskortet gör det enkelt att bygga mottagaren..
Av Oliver Thamm
0000 FF Fl 00 00 Fl Fl 00 00 iF 00 2C 1.9 FF 00 00 00
mikrokontrollerfamilj inkluderar en 010 08 00 Fl 00 00 00 09 00 00 00 00 00 00 00 60 F2 .............. '. J
0020 00 00 00 00 IF 00 00 00 00 00 00 00 00 00 00 00
0030 7F 3F 00 00 00 00 00 00 00 00 00 00 20 00 31 IF .' .............
0040 OF FF OF IF 00 00 00 00 EQ 85 EU 85 EU 85 EU 65
Figur I. NoICE - ett typiskt
exempel pa en grafisk BDM-
React' Line 1 intoge.c ANUFA I
avbuggare.
COP Programmeringsverktyg
Mânga programmerare kanner sig totalt vilse om koden fungerar perfekt i monitor-pro-
grammet eller avbuggaren, men inte visar ngra livstecken när det kOrs 'fristâende'. Den FOr att kunna programmera HC12
vanligaste orsaken är att 'watchdogtimern' (COP) har aktiverats efter reset. Aven om du sâ behOver du en verktygsuppsätt-
inte använder denna egenskap s& kan du inte ignorera den. Du mste &tminstone koppla ning, pa samma sätt som med and-
bort den omedelbart efter en reset. ra mikroprocessorer. Detta bOrjar
med en PC, pa vilken du kan skriva
Program Counter
kallprogram med hjälp av en (pro-
Efter en reset hämtar CPUn ett ord fran adresserna $FFFE och $FFFF. Detta ord innehâller
resetvektorn, som bestämmer var CPU-n startar med exekveringen av maskin-instruktion- gram) editor och sedan Oversätta
erna. Om inte ngonting fungerar I ditt program, sâ skall du omedelbart bOrja tanka pA exis- dem till maskinsprak med hjälp av
tensen av resetvektorn. en kors-assembler eller en kors-
kompilerare. Efter detta skall det
Stack Pointer fardiga programmet (det 'exekver-
Stackpekaren används av CPUn varje g&ng som en subrutin anropas. CPUn sparar tillfalliga bara programmet) fOras Over till
data i denna minnesregion. Om odefinierade krascher uppstar (speciellt efter en period mâlsystemet. Och slutligen kanske
med lyckosam programmering) skall du ta dig en närmare, kritisk titt pA stackregionen. Du
ditt hemsnickrade program inte
skall kolla följande: (a) är stackpekaren initialiserad for den korrekta RAM-regionen, (b)
fungerar rakt av. Detta betyder att
finns det overlappningar med andra användare'av RAM och (c) racker storleken p stacken
det kan vara bra att ha lite idéer
till?
och verktyg när det gàller avbugg-
Interrupter fling.
Interrupter kan avbryta funktionen hos en programkorning asynkront, eller med andra ord, Aliting borjar alltid med källpro-
I stort sett vid vilken plats som heist. Problemen uppstâr endast om interruptrutinen aldrig grammet. For att hjälpa dig vid Ut-
âtervänder till huvudprogrammet. Om du misstanker att detta är fallet skall du omedelbart vecklingen av program sâ skall du
kolla tva saker: (a) Overensstämmer interruptrutinen med den korrekta instruktionen (ISR) skaffa dig en bra programeditor.
och (b) är de lokala interruptflaggorna korrekt rensade i rutinen. Om de lokala interrupt- När det galler 'bra' sa skall du inte
flaggorna inte gterstaIls kommer aliting att gâ runt i en cirkel, interrupten väntar pa att ISR
stirra dig blind pa priset. Det är
skali bli fárdig och alkihop bOrjar om fran borlan.
inte antid som dyrare program är
bättre. Vad som är viktigare är hur
Monitor vs interruptvektorer
Om ett monitorprogram anvands I mlsystemet s 'blockerar' detta vanligtvis de inter- du fungerar ihop med mjukvaran. Vi
ruptvektorer som är placerade i siutet av adressutrymmet. For art dessa vektorer fort- har goda erfarenheter av PFE (Pro-
farande skall kunna anvandas av appli kationsprogram met är det vanligt art monitorn flyttar grammer's File Editor) ett gratis-
vektorerna (de som den inte använder själv) in i en RAM-region. Här kan du som anvandare program fran Alan Phillips.
ange 'pseudo-interruptvektorer', vilka var och en bestar av en 3-byte stor hoppinstruktion
av typenJMP Addr. Denna teknik torde vara välkänd for alla som h&Ilit pa med HC II, dar Ôversäftare
den används i Special Bootstrap mod.
Nästa steg är att Overlämna käi.ltex-
ten till en assembler, som letar efter
syntaxfel i programmet. Om ailting
Att anropa AS Assembler är felfritt (fram till denna punkt),
kommer du att erhMla ett program i
@echo off maskinsprâk. Formatet S-Record är
rein här den etablerade standarden fOr
rem -L generates xxx. 1st Motorolaprocessorer. En S-Recordfil
rem -E generates xxx. log (error list) Or en textfil som inte bara represeri-
terar alla kodbyten hos det gene-
rem
rerademaskinprogrammetutanock-
c:\as\bin\as.exe %l.a -L -E -g noice
sâ information angâende adresserna
rein
där de olika delarna av programmet
rem -F Moto specifies S-Record output skalliaddas.
rein +5 deletes S5 records FOr HC12 finns det redan ett antal
rem -r expands the image window assemblers tillganliga fran olika pro-
rem ducenter. Om du har en C-kompi-
c:\as\bin\p2hex %l.p %1.s19 -F Moto +5 -r $0000-$ffff lerareforHCl2 (till exempel den bil-
liga ICC12 fran Image Craft), be-
if exist %l.p del %1.p
hOver du inte leta langre eftersom
det alltid firms en assembler i kors-
+5V
t+ WR
A13
21 7
DX
2—
k_. -
Ki () 3I--
T
F
Game Boy
74HC138 WR
'32l A14 4
5
ECLKI _!L 6- } A000
A15 6& 7RD
: ---- I I +5V
:
AO +5V c2 16
Al
1C2
A2 +5V oo[_
1
A3
Al
K2
K3
F,
VPP
28
:
TirT12
'l A0 AO 10 I A0
® I
S Al 9
20 A7 A0 Al
A7 I 42 8
K4
Al 7_ p 8 A2 A2 11 DO 00
AS :--- A3 7 DO
A3 9
Io 0
10 AS .
44
6A4
A3
IC1 Dl
12 01 Dl
AS 11 10 0
12 .
02
13 02 D2
Mo:
All:
A7
A9
13
15J
10 0
14
16 AlO .
46
5
4
A5
A6 EPROM
03
15
16
03
04
03
04
0 A7
14 A13 All 18 Al2 Al 17 05 05
1710 0 48 25 05
A 13 :
A13 1910 20 27C256 18 06 06
A14 0 A9 24 06
A15 : A9 19 07 D7
211p AlO 21 07
AlO
0o :
Dl 23 10 0
24 02
All 23
03 25 D4 All
DI 0 Al2 2
05 271.. 128 05 Al2
02 Al3 26
A13
A14 27
31 A14
05
5 D6 20 14 22
D6 Al 5
D7 :
RESET
AUDIOIN :
GND 000151 - 11
I nummer 1/2001 av Alit om Elekt- ga omOjiigt, att utföra nAgra mat- Ett hjälpande kort
ronik pekade vi pA flera olika Game ningar pA det nya kortet. Det är vis-
Boyemulatorer som gjorde att mjuk- serligen mOjligt att oppna Game Alla ovanstAende problem undviker du med
vara for denna oerhört populara 'kon- Boyhaljet genom att lossa nAgra hjälp av vArt expenmentkort vars kretssche-
sol' kunde testas pA en PC. Emula- skru-var pa bakpanelen. PA sA sätt ma visas i figur 1 och kretskortslayout i figur
torer ar fina verktyg for projekt som far du tillgAng till kassettkortet, 2.
enbart bestAr av mjukvara. Men, i Atminstone fOr mätningar. Att Oppna Alla komponenter pA expenmentkortet kom-
det Ogonblick som extra hArdvara höljet är dock inte det lättaste efter- mer att vara synliga och &tkomliga när Game-
skall lãnkas till GameBoy sA uppstAr som skruvarna är svAra att ta bort Boy ligger ner pa arbetsbordet. Detta innebär
det tvA problem: Kontakten for spel- med en vanlig skruvmejsel. Dess- att du kan utfära mätningar pA den hArdvara
kassetten (cartridgen) är Nmtendos utom, am du Oppnar hOljet sA förlorar du hAiler pA att utveckla, samtidigt som dis-
egen design och for att gOra saker du den eventuelia garanti som du playen och knappama pA GameBoy är Atkom-
och ting ännu svArare, den är dold kanske har kvar, och utan bakpane- liga.
djupt rnne i GameBoyhOijet. len sA firms det ingen batterthAllare! Kassettkontalcten ax en del av kretskortet och
Dessa problem med kortkantkonta1- Det mest irriterande problemet är dess anslutnrngar ax länlcade till en standard
ten uppstAr inte när du designar och dock att prototypen befirmer sig pA 34-polig boxheader. I mAnga fall ax detta fuilt
etsar ett kretskort for den kretsproto- baksidan av GameBoy medan dis- tilhrackligt eftersom det dA ax enicelt att kopp-
typ som du har tankt dig. Men fort- playen och kontrollerna finns pA la in ditt eget (experiment) kort till GameBoy
farande, eftersom den stOrre delen fraxnsidan. Man kan ju frAga sig vad via en längd vanlig flatkabel. Stifttilldel-mn-
av kassettkortet är dolt i GameBoy- konstruktören tänkte pa när han gen visas i tabeill. Notera att boxheadem har
höijet, sA är det svArt, fOr att inte sä- (eller hon ) designade GameBoy. 34 stift medan kassettkontakten fOr Game
Kondensatorer:
Boy endast har 32. Att vi valde en kOpa hos vilken elektronikhandlare
CI,C2 = lOOnF
34-polig boxheader beror helt enkelt som helst och àr làtta att ansluta via
pa att det inte finns nâgra 32-poliga. en bit flatkabel. Dessutom, trots flog-
Halviedare: grann lodning och avlodning sâ bru-
Den typ av expansionskort som be-
ICI = hâllare for 27C256 skrivs här har vanligtvis en utveck- kar inte utvecklingskort räcka sär-
1C2 = 74HC138 lingsyta dar ytterilgare komponenter skilt lange om de används ofta.
Ican monteras for testning av kretsar.
Ovrigt: Denna utvecklingsyta har vi uteläm- Alternativ
(K I = (kortets kantkontakt) nat hal. Den viktigaste punkten i det-
K2 = 34-pol boxheader ta fall är att gOra den speciella Kontakterna K3 och K4 är ursprung-
K3 = 16-poi SIL-stiftlist kassettkontakten och expansionde- ligen avsedda att underlätta mätnin-
K4 = 8-pd SIL-stiftlist larna atkomhga utanför GameBoy- gar pa data och adressbussen. Du
häljet. S& kallat Veroboard eller ex- hittar data och adresslinjerna snyggt
Kretskort 000151-I (se Läsarservice)
perimentkort àr billiga och finns att och prydligt arrangerade pa dessa
kontaktlister. Naturiigtvis kan un- Lag las respektive skrivsignalerna header K2. Om du hailer pa med att utveckla
jerna användas for externa anslut- fOr adress A000. FOr enkel ansiut- och testa mjukvara fOr GameBoy sa racker det
ningar. Detsamma gailer stiften for ning sa har dessa imjer dragits Ut till med att endast montera EPROM-ha.11aren.
RD, WR, ECLK och de tva matnings- kretskortsstiften.
spanningarna +5 V och GND.
De senare stiften skali endast an- Själva bygget
vändas far mätningar av matnings-
spänningen elier for att fOrsörja en Innan du värmer upp lOdkolven skail
extern krets. De far aidrig användas du kolla sa att kortet passar i Game
fOr att stromfOrsarja GameBoy eller Boy. Notera att den normala tjockle-
hârdvaran pa expansionskortet. ken pa kassetthöljet plus kortet skall
Alla kassetter skall innehalla sa myc- vara ungefar 2,5 mm fOr att de skall
ket mjukvara i ROM att GameBoy bli ordentlig kontakt med kassett-
kan startas. Det ar dãrför som det kontakten i GameBoy. Här använder Tabell I.
firms en háliare for ett 27C256 EP-
ROM pa expansionskortet. Minnet
vi bara ett kretskort, dvs inte sjalva
hOijet, och det är därfOr som det kort Anslutningar pa
kan naturiigtvis ocksâ placeras pa vi säljer via Läsarservice har tifiver-
det kort som ansiuts till K2. I detta kats i ett specielit tjockt material.
expansions-kon-
fall skall 101 mte monteras pa expan-
sionskortet.
Om du viii tifiverka ditt eget kort fran
layouten i figur 2, men inte har krets-
takten.
En EPROM-emulator av det slag sam kortsmateriai av rätt tjocklek, sâ kan
beskrevs i fOrra numret av Alit am du anvãnda tunnare material. Där- K2 stift # .......... signal
Elektronik kan enkelt kopplas till h&l- efter kan du limma kartong eller vcc
laren fOr 101. En sâdan konfiguration plastremsor pa kortets undersida fOr 2 ................... ECLK
är mycket anvãndbar och bekväm att fA ratt tjockiek. Detta skall utfOras 3 ................... WR
om du hailer pa att utveckla mjuk- noggrannt. Om kontaicten är far turn 4 ................... RD
vara far GameBoy, skriv och as-sem- kommer anslutningen inte att vara 5 ................... RAMCS
bla koden pa en PC, ladda in objek- tilfOrlitlig, elier ocksa blir det ingen 6-21 ...............A0-A15
22-29 .............. D0-D7
tkoden i emulatorn med hjalp av en ansiutning ails. Om kortet är far
30 .................. RESET
HEX-fil sam sands via serie-porten tjockt nskerar du att skada kontak-
31 .................. Audioingâng
och testa slutligen program-met pa ten inuti GameBoy sa svart att den
32 .................. GND
GameBoy. Detta är en betyd-ligt inte gar att laga. 33,34 ...............ej anslutna
snabbare process an att radera och Att bestycka kortet borde inte vara
omprogrammera ett EPROM ef-ter nagot problem. Du skali dock tänka K3 stift # .......... signal
varje modifienng av programmet. pa hur kortet skaii användas, det 1-15 ...............A0-A15
Kretsen inkluderar en 74HC 138 (1C2) viss saga, med ett EPROM monterat
sam gOr att tvâ väljarlmjer kan avko- pa det elier med minneskomponen- K4 stift # .......... signal
das for att styra extern hardvara. ten placerat pa ett externt kort. I de 1-8 ................D0-D7
Benen 9 och 10 pa 1398-an bar alctiv- manga fail racker det med box-
46 AN on Elektronik 212001
E__ E- E IvAlY,1 211101151
Numera har varenda dataor ett ijud- detta fall har konstruktären utveck- En PlC med m&nga
kort och ijudicortet har ailtid ett MI- lat en krets som gär att vãrdena far
DI-interface. I det fiesta fall används flera DC-spanningar kan ställas in
omvandlare
dock inte detta MIDI-interface. De pa ett enkelt satt. Dessa kan sedan Kretsen är byggd runt en milcrokontroller av
fiesta användare styr sina musik- anvãndas for matapplikationer, till typ P1C16F84 fr&n Microchip och 1 till 16 Lin-
instrument med hjälp av MIDI-kom- exempel. Fran 1 till 16 kanaler är ear Technology LTC 1452 D/A-omvandlare, se
mandon (om de flu har ngra musik- mojliga, där vane kanal har sin egen figur 1. Det firms sMedes en separat D/A-
instrument förstâs ... ). D/A-omvandlare och en justerbar Ut- omvandlare for vafle utg&ng, i stället fOr en
En mikroprocessor är en utmärkt gângsspanning som sträcker sig enda D/A-omvandlare som multiplexats Over
startpunkt far att bygga en krets fran 0 till 5 V. fiera utg&ngax. Denna stora fördelen med den-
som reagerar far MIDI-kommandon. I na lasning är att vi slipper bade en multi-
Figur I. Kretsens kärna bestir av en PlC I 6F84 och upp till 16 D/A-omvandlare.
MIDI i korthet
FOr de verkliga kännarna av musikelektronik behovs ingen fOrklaring av MIDI. Men det
kan vara I sin ordning med en kort genomgâng av strukturen och funktionen hos 'kontroll'n-
drings' meddelandena for de läsare som inte är helt inforstâdda med MIDI.
Midi (Musical Instrument Digital Interface) är ett protokoll som OverfOr data fran en san- KOMPONENTLISTA
dare (MIDI Ut) till en mottagare (MIDI in) via en seriell anslutning. I princip är MIDI ett sys-
tem for enkelriktad datatrailk. Pa grund av sitt musikaliska (syntheziser) ursprung, desig- Motstând:
nades dessa signaler som meddelanden som aktiverar eller deaktiverar en musikalisk ton, RI ,113 = motstandsnät SIL
ändrar en syntinstallning, modifierar en volymnivâ eller anger en frekvensforskjutning for 4x l0kf
alla toner i en synt ('pitch bend'). R2 = 33kf
Ett MIDI-meddelande bestir vanligen av tre 8-bitars byte. Det fOrsta bytet i varje med- R4 = 470
delande (statusbyte) visar vilken typ av meddelande det är är fOr vilken MIDI-kanal som det R5 = 220n
är avsett. Det finns 16 MIDI-kanaler sâ flera syntar eller flera Ijud mom en enda synt kan R6,R7= l0k
styras separat av en enda dator som har en enkel MIDI-anslutning.
En grupp meddelande kallas 'control change' (ändring av kontroller). Dessa meddelande Kondensatorer:
reglerar kontroller mom en apparat (ssom en synt) for funktioner som pitch bend, volym CI = 4 iiF7 16V radial
och portamento. Nar andra typer av apparater (som effektgeneratorer och reverb eller C2,C3 = 27pF
delayenheter)styrs via MIDI, sâ kan control change meddelanden användas fOr att modifiera C4,C7-C 10 = I OOnF
dealytider eller reverbinstallningar. Det finns ett antal control change meddelanden som är CS = 470I.iF 25V radial
fOrdefinierade fOr ett stora antal syntar och tillhOrande apparater. C6 = I0.tF 16V radial
Det andra bytet hos ett control change meddelande kan adressera upp till 127 kon-
trollers (mest signifikanta bit hos det andra bytet är alltid '0'). Det tredje bytet i medde- Halviedare:
landet innehâller det värde som skall skickas till kontrollern ifrâga. Aven här ligger vardena Dl = lN4l48
mellan 0 och 127 eftersom mest signifikanta bit hos det tredje bytet ocksa at '0'. D2= 1N400l
Det är bara det första bytet i ett meddelande som har 'I' i positionen for mest sig- IC I = programmerad
nifikanta bit. Detta betyder att man alltid kan skilja statusbytet fran fOljande byte. PlC I 6F84- 10/p. ordernummer
De control change meddelanden som används i denna krets är fOljande: 000158-41, se Läsarservice
1C2 = 6N 138
1C3 = 7805
1C4 = TL06I
11101111101010101 IOIcIcIcIcIcIcIcI IOIvIvIvIvIvIvIvI lC5-1C20 = LTCI452CN8
---
0000 channel I controller number controller value
0 11 = control change vrigt:
1=
status byte 000158.12
K = S-pol DIN-kontakt for
kretskort, 180°
K2 = 20-pol boxheader, vinklade
stilt
Ett MIDI-meddelande sända ailtid med bit-rate 31.25 kbitls, sâ en bit tar 32 /is. K3 = jack for nätadapter, fOr
Varrje byte fOregas av en startbit (alltid '0' och foljs av en stoppbit (alltid 'I'). kretskortsmontering
Tomgangsvardet mellan bytes är ocksa 'I'. SI ,S2 = 4-pol DIP-switch
ett 3-byte meddelande inneh&ller s&ledes 3 x 10 bitar och tar sâledes 30 x 32 Ps att X = l0MHzkristall
skicka (ungefar I ms totalt). Diskett med källkod och
Nat det galler hârdvara sa är MIDI-anslutningar alltid strOmslingor där optokopplare hexkodfiler, ordernr 000 158-11,
används i mottagaren fOr att undvika jordslingor. se Läsarservice
Programstruktur
Den processor som används i denna krets kommer fran Microchip Inc. PlC serien (http:I/wwwmicrochipinc.corn).
PlC i 6F84 har I k ord om I 4-bitars flashminne, 68 byte dataminne, I timer, 13 1/0-portar och flera interruptalternativ. Kapseln har
endast 18 ben.
Mjukvaran for PlC I 6F84 är skriven i CVSAM-sprket fran TechTools. Detta assembIersprk kan egentligen ses som en samling makros
som oversätter enkla källkodsinstruktioner till en, tvä, tre eller ibland fyra processorinstruktioner. De nya instruktioner som uppstãr p
detta sätt Iiknar mycket standard instruktionerna for 'stora' mikroprocessorer och är mycket lätta att anvanda. Det egentliga instruktions-
setet i PIC-processorerna Iàses och assemblas ocksâ korrekt av CVSAM. I vissa fall kan det vara nâgot effektivare att använda originalin-
struktionerna. Detta kan man overvãga med realtidsapplikationer och i de fall där interrupter mste hanteras si kvickt som moIigt. Nàr
det gàller läsbarheten hos program skrivna i CVSAM är detta lika tydligt, om inte tydligare, som hos Microchip-assemblern (MPASM).
Optokopplaren är ansluten till port BO, vilket är standard i nterru ptbenet. Startbiten hos varje mottaget byte triggar sIedes en interrupt.
lnterruptrutinen pollar port BO tvi gnger i snabb fOljd for att kunna eleiminera eventuella bruspulser som kan finns. Om startbiten känns
igen deaktiveras port BO interrupten och en ny interrupt aktiveras, den for timern. Timern startas dA sA att en ny interrupt inträffar efter
ungefar 32 ps. I den fOijande rutinen lagras vàrdet vid B0-ingângen och timern startas om. Pi detta satt lases de âtta bitarna hos bytet in.
Efter detta iteraktiveras BO interrupten si att fOljande byte kan tas emot.
När varje byte har tagits emot gOrs en test for att kolla vilken typ av byte det är. Om det är ett statusbyte fOr ett control change med-
delande sätts en switch si att fOljande byte tolkas som ett kontrollernummer. Efter detta byte sätts switchen till ett nytt varde sã att bytet
som fOljer efter kontrollerbytet tolkas som ett kontrollervárde. Skulle ett statusbyte tas emot pi fel tid (nar ett databyte väntas) s ignor-
eras alla byte som tagits emot upp till denna punkt och allting startar om fran borjan.
När alla data fOr kontrollern har tagits emot uppdateras tabellen med de aktuella värdena.
Silange som ingen interruptrutin är aktiv tar huvudprogramslingan hand om sändningen av data i tabelln till D/A-omvandlarna. Periodti-
den hos huvudslingan ár ungefar 620 ps.
0 °0o/-0j
0 0)
91
Figur 2. Samtliga komponenter for projektet sitter pa detta enkelsidiga kretskort.
kretsen reagerar fOr. Om alla switcharna är men eftersom det àr enlcelsidigt bor-
slutna startar kretsen med kontrolital som de det inte vara nâgra problem med
bOrjar pa noll. Om switchen far RAO ar Oppen att etsa det sjãlv. Nãr du bestyckar
('1') bOrjar kontroiltalen med 8. kortet sâ tank pa att det firms flera
Kanalnumret fOr MIDI kan stàllas in med DIP - stycken trâdbyglar, speciellt runt
switchama som ax anslutna till portarna RB4- omvandlarkretsarna, som du inte Mr
RB7. Denna port Uses ocksâ vid uppstart. Om glOmma. Montera sâ manga om-
alla fyra switcharna är slutna ('0000') väljs vandlare som du behöver och bOrja
MIDI-kanal 1. När alla fyra switcharna är med den fOrsta (105).
Prenumerationserbjudande!
Alit om Eiektronik är Sveriges största tidning när det gailer praktisk eiektronik. Hàr hittar du
kompietta byggprojekt, praktiska tips och iäsvàrda artikiar om elektronik och data.
Eiektronik àr roligt och kànsian nàr man byggt en fungerande krets mâste upplevas. Nu viii
vi iâta dig uppieva denna kànsla. Om du börjar prenumera pa Alit om Eiektronik sâ skànker
vi dig en kompiett byggsats. Du kan välja melian tvâ olika byggsatser.
Gm du beställer en 2-ârs prenumeration far du bâda byggsatserna.
Priset for en 1 -ârsprenumeration är endast 435:- och fOr 2-ârsprenumeration endast 825:-
Sjàivklart viii jag bOrja att prenumerera pa Alit om Elektronik och jag vàljer fOijande byggsats
(du far bâda om du prenumererar i 2 âr). Sàtt kryss i ràtt ruta: