AoE 2001-02 PDF

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 44

2/2001 Nr. 205.

Pris 49:00 Norge 52:00

ff [A] nno ()I7Th1__


11 /

• 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

Denna tidning àr TS-kontrollerad.


AM - motta-
Samtliga artiklar, fotografier, kretskortslay-
gare
outer och annat är copyrightskyddat och Inte alla AM-
fr endast 9terges efter utgivarens
skriftliga tillstând. Detta galler även delar
mottagare är
av materialet. Alt om Elektronik har, sâ skapade lika. Den
lngt som är mojligt, kontrollerat samtliga
byggprojekt. Dock tar vi inget ansvar far mottagare som
fel som ligger utanfär var kontroll. Ej beskrivs här är defiriftivt inte en sâdan som du hittar
helter tar vi ansvar far byggen som vara
lasare utfär. i en billighetsaffar. Omrâdet är inte begransat till
mellan och langvagsbanden, utan gâr ända ner till de
Copyright: Segment By.
(Beek. the Nederlands) 2001 extremt laga frekvenserna. Detta öppnar for nya
P0. Box 75 majligheter.
6190 AB Beek (L), The Nederlands
ALLT OM ELEKTRONIK nr. 205
0
ARGANGI9 NUMMER2/2001 INNEHALL
Omvandlare: MIDI till spanning 10 Experimentkort for PCI-
Aven om MIDI (Musical Instrument Digital Interface) bussen (I)
fran början utvecklades fOr att styra musikinstrument, Utveckla dma egna projekt for
s'kan det ocks användas fOr mânga andra ändamI. I PCI-bussen med detta kort

den krets vi presenterar här används MIDI-signaler for


24 Fartkontrollen Duett (2)
att ställa in ett antal likspanningar (DC). Upp till 16
Nu bygger vi fardigt projektet
utgngsspanningar kan justeras oberoende av varan-
d ra. 30 AM-mottagare
FrOn 0 till 1.8 MHz

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

20 Design av seriell kringutrust-


ning (6)
Sensorer

52 Uppgradera till 68HC 12


I 6-bitars mikrokontroller
MCS BASIC-52 V1.3 (2)
MCS BASIC-52 tolken, utvecklad av Intel, är fortfarande
mycket popular, men efter femton âr pa marknaden
'

behövs det en ansiktslyftning.


35 Läsarservice

51 Nästa nummer
16
tvecklingskort for
Pcimbussen (I)
Utlorska PCI-bussen
Av H. Kolter (Kolter Electronic)

Utvecklingen av PCI-baserade expansionskort är ganska komplicerat


och kräver vanligtvis större investeringar i bade tid och pengar innan
man nâr mâlet. Det utvecklingskort for PCI som vi presenterar här är
en betydligt bekvämare lOsning. Dess fOr-konfigurerade PCI-avkodare
och 16 bitars breda databuss, tillsammans med en serie portar, gOr att
du kan koncentra dig pa att utveckla och testa din prototypkrets, utan
att fastna i detaijer angaende PCI-busstandarden.

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

6 AlIt om Elektronik 2/2001


\ -- -
:-
7 /1

chip fran Lattice. Denna lasning ãr Tekniska data


mte den optimala for alla PCI-appli- Digital utgng: I xTTLnivâ(0/+5V)
Arbetssatt (mod): TTL UT portpolling,
kationer, den utvecklades for att an-
eller programstyrd
vändas med aktuella 16 bitars ISA-
PCI-avkodai-e: I x ispLSl 1032E (Lattice)
applikationer. Avkodaren (dekodern)
Vendor-ID: KOLTEROxIOOI
ar avsedd att anvandas far de lang-
Product-ID: KOLTER OxOO 17 (justerbar)
samma och medeisnabba datahas-
Adressering: variabel, PNP (Plug and Play)
tigheterna i PCI-specifilcationen, lag-
Buss: 32/64 bitars PCI
re eller lika med 33 MHz, och stödja
Anvandarinterface: 8/16 bit
specifikationerna 2.1 och 2.2 for PC-
Kontakter:
ISIG-gruppen hos PC98 och PC99
37-stifts sub-D kontakt (K4), kontakt p& fästvinkel
specifikationen. PCISIG-gruppen är
Stiftlister for virning:
ocksa ansvarig far tilidelningen av
I x 9 stift (0), ± IS V. AGND och +5 V. GND, stromforsorjning fOr analoga experimen-
en unik VID-kod (Vendor Identity) till
tkomponenter
varje tiliverkare av PCI-kompatibla
I x 6 stift (K8), interrupt select
produkter och ocksâ en komponent-
2 x 17 stifts (KS), patchstift fOr utg.ngskontakt. (se figurerna I och 5)
kod (Device ID) for vane typ av PCI- I x 3 stift (K6), ej definierad. Lamplig fOr applikationsspecifika prototypsignaler.
produict som derma tillverkare produ- I x 6 stift (K 10), 3-pol stromfOroslrjning +5 V. GND, for digitala experimentkretsar.
cerar. Dessa koder, tilisammans med I x 16 stift (K3). databuss
information om kortets I/O och mm- I x 16 stift (K2), I/O-buss
nesadressomrâde firms i en 64-byte Dimensioner:
informationsheader som är lagrat pa 95 x 215 mm (kortstorlek utan fastsattningsvinkel)
kortet. Denna information läses av Temperaturomrade 0-70 °C typiskt. (kontinuerlig funktion)
PCI-BIOS varje gang som datorn Lagringstemperatur —20 till +85 °C
startas om.

2/2001 Alit om Elektronik


Kortegenskaper
GND
vcc 37-way sub-I) socket
IJtvecklingskortet for PCI har ett omrâde med r34
LED
genompläterade hal med 87 x 37 lödpunkter 00000000000000000

(minus 46 x 21 for PCI-dekodern). Denna ex- U _


- _;: , U? woefr,ad winng
perimentyta är ett mycket bra utrymme att - - - -
CkKk
0000 000 00000O00=
snabbt och enkelt placera Ut h&rdvaran for Powa IDisoal P00w .f 16 DO .015 rio PSI OUT

din specifika PCI-applikation, till exempel add,ess d00000,

A/D eller D/A-omvandlare, I/O-kretsar med GAL 22V10


TTL, eller far mer allmangiltiga interface. Det PCI Target Budge
firms ocksâ en stramfarsOzjning pa ± 15 V fran
en separat DC/DC-omvandlare pa kortet och 1
en 16-bitars databuss tilisammans med en
sene portadresser ser till att du kommer at
I
PCI PLD Core
16 bit USER Bus
A'4
PC,
IPClAJE.
kie
IPCI
RESET

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- -

ar konfigurerade att overfora data till och fr&n


ISTM1
II TCB
I
PCI-bussen.
Konfigurationen av kortadresserna sker auto-
_3
I
matiskt med PnP (Plug-and-Play). PCI-verk- II UIF
4:1 32 bit
I
tyg som körs under Windows 95/98/NT och Bus MUX
2000 gär att kortets I/O-adressomrade kan DEC
I
bestämmas. Det behövs ingen ytterligare mi-
tialisering av komponenterna fOr att kunna rMi I

skriva till och läsa fr.n kortet pa registernivâ. I J LI lAo A3l


PCWSER-Intecfe

CB:ET ,cBE3t FRAMEWERR t


-

Själva kretsen I
L -------------------
PCI BUS

En snabb titt pa blockschemat i figur 1 visar


att experimentkortet for PCI bestar av fyra F PCI SLOT

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.

Förkortningar använda i blockschemat


PC[/USER Interface: Bussinterface med dubbelriktad port och bussdrivare for signalerna CLK, System Pin, Adress/datastift. CBE och
andra interfacekontrollsytift tillsammans med felmeddelande stift.
STM, DEC och CFG-ID: STM star for State Machine, denna laser Ut informationen till PCI-bussen Over 4:1 32-bitars multiplexern for alla
de 64 byten hos CFGregistren dat- det kommer en fOrfrâgan fran PCI BIOS, dvs nkr datorn startas. CFG-registret är'fOr-kopplat'.
lngängarna for Produkt-ID IDO, ID och 1D2 tillâter val av ett av atta ID. Vendor ID är forprogrammerat och inte valbart.
UIF och Bus-MUX: Bussdrivare och Turnaround genereras har fOr PC(-malet. Bussens multiplexer koordinerar adress och data i bada
riktningarna. Samtliga las och skrivinstruktioner används i deta interface.
TCB: Timing Correction Block genererar fOrdefinierade buss-cykler s/s air anvandabuissen körs med exakt timing. Detta block är nod-
vandigt fOr art kunna använda moderkort med olika busshastigheter.
PGM: Programming Interface fOr ispLSl chip (inte fritt atkompligt).
ALE: Address Latch Enable, switchar den multiplexade användarbussen mellan adress och data.
DO - DI 5: I 6-bitars bred databuss. Data latchas (lases) med ALE och CSL/CSH.
Al - A7: Adresslinjer som används for att generera minnesmappade chip select. Adresslinje A0 används inte (avkoddas fran CSL och
CSH). Andreslinje Al används inte heller. Endast de lagre 16 bitarna hos 32-bitars dataordet kan avkodas.
RW: Användares Bus Signal Read/Write: for avkodning av Ns och skrivcyklerna far 1/0-timingen.
CSL / CSH: Chip Select Low och Chip Select High signalen. Nat- en 8-bitars utgang eller ingang utfOrs kommer CSL att vara aktiv när de
Iagre 8 bitarna hos I 6-bitars dataordet används och CSH när de hOgre 8 bitarna används. Om en I 6-bitars instruktion används at
bada linjerna aktiva sa att en I 6-bitars ord kan lasas eller skrivas under en period (cykel). Det är aIltid de lagre 16 bitarna hos ett 32-
bitars dataord som avkodas.
RESET: Nat denna linje aktiveras tvingas chipet in i sin in itialiseringskonfigu ration.

Alit om Elektronik 2/2001


1C2: adressavkodare av typ GAL gar (RFI, Radio Frequency Interfe- mentyta. K4 är en kontakt av typ D-sub far
22V10. rence). anslutning till extema signaler. Om vi flu tittar
1C4: DC/DC spanningsomvand- K2 till K10: Dessa rader med stift- pa kretsschemat (figur 2) och krets-kortslay-
lare tillsammans med dämpnings- lister och kontalcter kan anvandas for outen (figur 3) sâ ser du att de mer komplexa
komponenter for hOgfrekvensstarnin- kopplingstrêdar till kortets expen- funictionerna i kretsen utfärs av Id, det for-

KI PCI 8)0* ai Ia 00n

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

Ass C3 ADS WSE.= IM, P007


P0*2 I 0 702
159*0
*53
*005 *07 -$4
063
8007
*04 ___ 054
435 . . . 046 405 ,5V Cl Cl C3 Cl
*41
07*3 *00 K7 4 G)
847 0(41000 2
*03
866 *0' 10 p1'
*04
800
(04154007 'Ip I
200(591393) (19739339CC ED 559
*41107.5
ol
81p 0.I.7.
847
Sv 051 ..
All
*59 • : .59
'82 owns 07, KS
2 *0

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.

2/2001 Alit om Elektronik 9


oEjJo 0C000000000000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
00000000000000000000000000000000000000000000000000
1 0000 0 0000000000000000000000000000000 000000000000000000000000 000
000000000000000000000 00000000 0000 0 00 0 00 0 00000 0000 00000000000000

O 00000000000 000 0 0000000 0 000 0000 00000000000000000000 0000000000000


00000000 0000 00 0 0 00000000000000000000000000000000000 0000 000 0 0000
Ce oo000000000O0000000000000000000000000000000000000000000000000
_____ 0000000000000000000000000000000000000000000000000000000000
V 0000000000000000000000000000000000000000000000000000000000
CO
V 0000000000000000000000000000000000000000000000000000000000
40 Ca OCw 0000000000000000000000000000000000000000000000000000000000
4000 IDGM 0000000000000000000000000000000000000000000000000000000000
goCM 10 CS _ 00000000000
IDCo X3 CM K9 KIO 00000000000

j00000j I0000000000000000) 1000000) :: ::


V:
40 ::
K3
db
II& I0Ip(5 11 0000000000
I Cil Si
IIV 101
I I I I CS 0 I-I
IIV I 101 0000000000
CS K4 'D Ca hi H I lol I I - 101
V 0000000000
CS
C,
M CM
M at HHHKSIg I £
l-I N
o
101 0000000000
101 0000000000
lol C? C7
V 101 0000e00000
V C)4 [2.] K2 101 j00000000000
C13 0(10 0 0 0 0 0 0 0 0 0 0
V
101 100000000000
K6 101 l00000000000
I 1 0 100000000000
0 c4 _ Q 0110
E
:( ) 5I°Iloe000000000
OAN 10 1 l00000000000
1C4 9çIJo 1 0 1 lo 0000000000
' ?4J.1N L2J) 0 0 0 0 0 0 0 0 0 0 0
;; t E
:IIII:
: 00000000000
C12 ) 00000000000

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

Figur 3. Kretskortslayouten och komporieritplaceringen.

programmerade LSI-chipet ispLSI1032 fr&n detta schema lämnas i en särskild är VID far Kolter Electronic i Tysk-

Lattice. textruta. land och kan användas for alla de

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

KOMPONENTLISTA 1C3 = oscillatormodul i 8-bens DIL-


kapsel (Se text) 32-bitars bredd är tyvärr inte mojligt med
Motstând: iC4 = NMH05 15S (se text) derma LSI.
RI,R4= lkQ DIP-switchen Si har tvâ funktioner. Med den
R2 = 22kQ Ovrigt:
fjärde av de fyra omkopplarna, S1-4, kan du
R3 = 3kQ9 KI = Kantkontakt far PCI-bussen
K2,K3 = I 6-stift SIL-stiftlist switcha mellan PCI-specifikationern 2.1 och
R5,R6 = motstãndsnät 8 x I OkQ
K4 = 37-pol sub-D sockel 2.2, medan du kan ändra Device-ID med om-
Kondensatorer: KS = 34-stifts boxheader eller stift- kopplarna Si-I, S1-2 och S1-3 (figur 4). Pa
CI-05,CI0,CI I,03,04 = IO0nF header detta satt kan flera PCI-experimentkort plug-
C6,C7 = IOOpF 16V K6 = ej m onte rad* gas in pa samma PCI-buss och styrmjuk-
C8,C9 = IOnF K7 = ej monterad varan kan skilja vane kort at med hjälp av
C12 = 2201U 16V K8, K9,K 10 = 6-stifts stiftheadetr dess Vendor-ID. Device-ID och kontakt (slot)
S = 4-po1 DIP-switch nummer.
Spolar: Kretskort 010009-I * 1C2 är en programmerad sa kallad gate ar -
LI ,L2,1_3 = 2iH7 (se text) ray' inneh&llande en adressavkodare som
For programmerade kontroller,
producerar fyra CS-utgangar (Chip Select),
H alvI e dare: GALs och kretskort, se Läsarservice
DI = LED eller vr hemsida pi http://www.all- CSi, CS2, CS3 och CS4 samt genererar en RD
ICI = ispLSIIO32 (ordernummer tomelektronik.com och en WR-signal tilisammans med tre avko-
OIOOO94I)* Se text dare for adresslinjer, ADR2, ADR3 och ADR4.
1C2 = GAL22VI0 (ordernummer En 1-bits digital utgâng ger ocksa en indiker-
OIOOO942)* ing pa att kretsen arbetar korrekt genom att
den tänder LED Di via motstândet R4. Han är
det viktigt att notera, att nan chip select CSi
och CS3 är aktiva sâ sker dataover-foringen
over databusstiften D0-D7. Nan C52 och CS4
är aktiva sker dataoverfo ring en via D8-D15.
När en 16-bitars overfOring sker är CSi, CS3
och CS2, CS4 aktiva.
Programmeningsdata for GALen firms till
buss och den 16 bitar breda bussen hastigheten for data kommen att gänglig gratis och visas i figur 5. GAL-list-
pa vart experimentkort. Om din app- halveras, men detta an ofta inte nâ- ningen firms ocksâ i en av de filer som kan
likation barn behöver en 8-bitarsbuss got viktigt krav och den kan vara laddas ner fran var hemsida http://www. ail-
s& är det bara att lämna de övriga 8 fullt tillracklig i alla fall fOr din app- tomelektronik.com under Download. Med
bussbitarna oanvända. OverfOrings- likation. Att expandera bussen till hjälp av denna information är det mOjligt att

2/2001 Alit om Elektronik 11


inte använda K7. Annars loper du kan laddas ner frk var hemsida vid
ON____ risken att PCI-kortet inte längre
fungerar. Den ligger under DownloadlNuxnmer
2/2001. FOrutom dnivrutinerna firms
'3 Att bygga dma egna kret- det ocksa programexempel tilisam-
mans med deras källkoder som kan
sar kOras under DOS, Windows 9x, Win-
12 När du konstruerar egna kretsar pa dows 2000/NT och Linux. Denna
kortets experimentyta sa är det mOj- mjukvara firms ocksa tillgänglig pa
ligt att använda IC-kretsar ur fa-mil- en CD-ROM 'PC Card Software CD'
jerna 74ALS, 74ACT, 74AHC eller fran Kolter Electronics. P& CDn firms
010009-14 74F. 74HCT-familjen har en switch- ocksa sharewareprogram, demos,
ningshastighet som ligger precis pa datablad, dokumentation for PCI-
gränsen fOr att vara acceptabel när kort samt användbara Internetlän-
Figur 4. Välj Product ID med DIL-switch den används med PCI-kortet och vi kar.
(exemplet visar 17 hex). kan inte garantera att hardvaran fun-
gerar tfflforlitligt med dessa kretsar. Anvãndning med DOS
Vi byggde en testkrets med HCT -
komponenter och när dessa byttes Ut For att kOra PCI-kortet pa en PC med
ändra chip select eller att generera nya I/O- mot HCT-kretsar fran en annan DOS an det inte nOdvandigt att lagga
signaler fOr dma egna applikationer eller tiliverkare slutade kretsen att funge- till nagra drivrutiner i CONFIG.SYS
sarskilda processorstyrsignaler. ía. Med tanke pa tillfarlitligheten är eller AUTOEXEC.BAT. DOS-mjulcvara
Programmeringsverktygen far Lattice GAL det inte tillrâdligt att inicludera HCT- far direkt tiilgâng till haidvaran med
firms att hämta pa Internet. Om du avser att kretsar i de konstruktioner du byg- hjãlp av assemblerinstruktionerna IN
omdesigna adressavkodaren sa skall du get pa expenmentkortet. och OUT.
tänka pa att endast hälften av de 256 adres- Om du 'interfacar' till nagon av PCI-
serna används eftersom vi endast använder bussignalerna sa är det viktigt att PCIVIEW
16 av de 32 tillgängllga bitarna. Ma adresser notera att specifikationen fOr denna Detta DOS-program visar alla de
med adressbit Al satt till en 1' är ogiltiga. buss tillater maximalt en TTL-belast- installerade PCI-busskomponenterna
ning pa vane PCI-bussignal med en tillsammans med information som
Ytterligare egenskaper maximal ledningskapacitans pa 10 visar varje Vendor ID och Device ID.
pE Detta betyder att, bortsett fran Det visar ocksa (sa langt det an
FOrutom de grund-IC som at nOdvandiga for PCI-dekoderchipet, sa àrdet inte mOjligt) tillverkarens namn och en
att PCI-interfacet skall fungera sa firms det majligt att gära nagra ytterligare beskrivning av alla enheter som an-
ocksa nagra fOrkopplade' IC-positioner pa anslutningar till PCI-busskontakten. vänds pa kortet. En viktig egenskap
kretskortet for ytterligare IC-kretsar som kan Om PCI-avkodningschipet IC1 an- hos detta program är att det visar
vara användbara vid prototyping. vänds i nagon annan utvecklings- basadressen pa det kort som an-slu-
Komponenterna RI, R2 samt 06, 07 kan mon- krets at det viktigt att layouten fOr tits till PCI-bussen. Med denna infor-
teras far att bygga en reset-krets i en av tva kopparbanorna till detta chip är mation kan du bestämma kortets I/O-
varianter. Antingen aktivt-Lâg eller aktivt- densamma som i detta experiment- adress och använda detta värde i din
Hog reset. Om du monterar Ri, R2 och C7 far kort. Andringar av layouten eller egen mjukvara fOr att skriva till och
du en aktiv-Hog resetsignal vid RST-OUT längden pa banorna kan orsaka ti- läsa fran PCI-kortet.
stiftet, medan Ri, R2 och C6 get en alctivt-Lag mingproblem i PCI-avkodarchipet. En viktig punkt att hâlla Ogonen pa
resetsignal. I detta fail är R2 1 kil och R2 22 En 16-bitars databuss hat lagts till han ar att kortets adresstilldelning
kQ Notera att du skail montera antingen C6 fOr kretsexpansion. kan ändras automatiskt om det sker
eller 07, men inte bada. en fOrändring i PCI-systemet, till
I positionen for 103 kan du sätta in ett Mock- Mjukvarudrivare exempel vid installation av nya kom-
generatorchip och i positionen fOr 1C4 en ponenter eller om du tar bort hard-
DC/DC-omvandlare av typ NMH 0512S eller Drivrutinen for PCI-experimentkortet vara. I dessa fall maste du ocksa and-
NMH 0515S for att generera antingen ± 12 V ra den motsvarande adressen i din
eller ± 15 V. Dessa matningsspanningar är de egen mjukvara.
mest användbara när man experimenterar Att använda PCI-kortets basadress i
med analoga komponenter. Tabell I ditt program är den mest direkta me-
Kondensatorerna ClO till 014 och spolama Li toden att programmera kortet, även
Utgngar fran den adress-
och L2 filtrerar bort otrevliga spikar pa mat- om det betyder att det fardiga pro-
avkodare som implementerats i grammet inte àr flyttbart, dvs det fun-
ningsspänningen.
Om du placerar kortslutningsbyglar Over GAL IC2 gerar enbart i derma miljO och inte i
stiften pa K7 kan du aktivera modet In Cir- CSI Bas +0 nagon annan PC eller om andringar
cuit Programming' av LSI, IC1. Detta àr i CS2 Bas +l gOrs i hardvaran. FOr att f& program-
huvudsak avsett som en hjalp vid utveck-lin- met flyttbart ar det nOdvandigt att
CS3 Bas +4
gen av LSI. De av er som inte känner till anvOnda PCI-funktionerna i PC BIOS
CS4 Bas +5
dessa egenskaper hos detta LSI rader vi att eftersom DOS inte han nagot PCI

12 AlIt om Elektronik 2/2001


Applications Programming Interface,
API.

PCI_ADR
Detta program iiknar PCIVIEW, men
visar endast information om PCI-en-
heter med Koiter Electronics Vendor
ID, inldusiver detta PCI experiment-
kort,

Användning med Win-


Product ID switch
dows 95/98/NT
Instaliationen av experimentkortet
fOr PCI ar lika enkelt som installa-tio-
nen av vilket annat kort som heist
00e Doe C
under Windows 95/98. När du mon- for analogue 00 000C
oee0ooC
terat kortet i din dator kommer Win- supply voltage 00000 C
oc

dows att hitta det nästa gang du


startar datorn. Du Mr ett medde- PCI decoder
lande att ny hârdvara har hittats och
du ombeds att installera drivrutin. K8: interrupt
Supplyvoltage filter connections
Nu skali du referera till filen
';.::•:F (Se avsnittet ang&ende dri-
vare). Windows tittar flu efter fileri K5: 34-pin header K7: programming
och installerar driv- for user-defined plug (optional)
rutinen. När datorn startas om igen wiring of 37-way
konmier experimentkortet att instal- sub-D socket
(only pins 1, 2, 20 and
leras. 21 are pre-wired) DC-DC converter

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

2/2001 AlIt om Elektronik 13


i ANSI-C kan gära detta utan problem. In- dataaverfOring, timing och adres-
struktionerna ltpern och iopl ger pro-gram- sering. Vi tittar ocksâ pa BIOS-kon- Leverantör:
met till&telse att accessa I/O portarna utan figureringen och stifttilldelnin-gen Kolter Electronic,
behov av ngra extra devicedrivare eller kryp- pa PCI-busskontakten i 5 V och 3,3 P0 Box 1127,
tiska kommandon i kompile-ring- V system. D-50362 Erftstadt,
sprocessen. Programmeringsprocessen Tyskiand.
pminner om ANCI-C under DOS men i stäl- Tel. (+49) 2235 76707,
let for endast en 8-bitars dataaccess sâ kan Litteraturforslag:
Fax (+49) 2235 72048.
du nu ocksâ använda 16 eller 32 bitar. FOr att PCI Bus Demystified, av Doug Abbott,
LLH Technology Publishing, ISBN I-
verkligen flytta data genom portarna firms
878707-54-x.
instruktioner som outb (value, address)
och inb(address) i katalogen /usr/include/
asm/io.h. Alla dessa instruktioner är inline
makros s& det är bara nodvandigt att in-
clude<asm/io.h>. Inga extra kataloger
behOvs. Kompilering av programmet kan
utfOras med XWPE under KDE eller med gcc
fr&n Linux bash skal. Aridra kompilerare kan Weblänkar
ocksA användas fOr att kompilera koden och Länkar for PCI-experimentkortet och PCI-dekoder:
de har i allmänhet faire problem med detta an http://wwwpci-card.com/pcintern . htm
kompilerare under andra operativsystem. Ut- http://www.pci-card.com/neuep.htm#i)roto3
farlig information om anvandningen av Linux http://www.t)ci-card.com/Proto iT . p df
operativsystem firms att ladda ner fran var htt b://www.pci card . com/p~gideko.pdf
-

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

14 Alit orn Eiektronik 2 2001


MCS BASIC-52 V 1 *3
foryngrng av en popuär tolk

Av H.-J. Bohling och D. Wulf

MCS BASIC-52 tolken, utvecklad av Intel, är


fortfarande mycket popular, men efter femton
âr pa marknaden behövs det en ansiktslyftning.

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:

- Tolken har inte längre nâgra kända


felkällor.
- BASIC-52 V1.3 kan programmera
EEPROMs, även när den ax place-
rad i ett externt minne.
software - Det nya kommandot 'ERASE' rade-
Before use run A: (B:) J CHECK 1 rar ott EEPROM.
Vor Gebrauch starten A: (B:) f7 CHECK 2 4J
Staflvoorgebruik
- Maxvärdet far XTAL kan du sättas
A: (B:) 1 CHECK 3
Coinmencez par faire A: (B:) .7 CHECK 4 41
sâ hogt som 78 MHz, sâ att tolken

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

16 Ailt om Elektronik 2/2001


läsa och författarna till denna artikel - en BASIC Autostart EPROM kunde förse färfattarna med kãllkoden for dessa fOr-
tvingades anvanda en simulator far arbeta tillsammans med komman- bättringar.
att komma underfund med tolkens doexpansioner och
funktioner. Detta är dock ingenting - variabelnamn med F kunde an- EPROM-programmering
vi behOver bekymra oss om. vandas utan hinder.
Dan Karmann var vanlig nog att Tyvärr kan inte, MCS BASIC-52 V1.1 pro-
Skräddarsydda förbät-
tringar
..
Arbetet startade med en omfattande
sokning p Internet efter fOrslag till
Att ko ra BASIC-52 VI. 3 pa
forbättringar och felbeskrivningar
som relaterades till MCS BASIC-52.
Alit om Elektroniks kort
Tyvärr var den tillgangliga koden Hrdvarukraven fOr att kOra BASIC-52 pa 800537 eller '537-Lite' korten har beskrivits i
atikein 'Basic-537' i nummer 2 avAilt om Elektronik 2000. Informationen i den artikein galler
inte relokaliserbar, vilket betyder att
speciellt V1.3 med foljande undantag:
dess instruktioner inte fritt kunde
flyttas runt. Att infoga bara nâgra fâ - Det är inte Iangre nodvändigt att ange värdet fOr MTOP manuellt, eftersom VI .3
extra byte med kod resulterade ome- automatiskt detekterar hur mycket RAM som finns tillgangligt.
delbart i en felaktig funktion. Detta - BASIC-52 V1.3 känner automatiskt igen den baudrate som används och ett mellanslag-
berodde i huvudsak pa det faktum stecken m.ste därfOr sändas till kortet efter en omstart!
att källkoden farms i tvâ separata Den 80C32 styrdator som vi beskrev i nummer 2 och 3/1998 av Alit om Eiektronik kan
filer, en for sjàlva tolken och en an- användas med BASIC-52 VI.3, inklusive anvandningen av Dallas 80C320 'Speed it pP'.
nan fOr flyttalsberakningarna. Följ- Dallaskontrollern är hârdvaru och mjukvarukompatibel med 8052. Processordesignen är
aktligen blev den första uppgiften emellertid helt ny och det tar endast fyra klockcykler att exekvera en instruktion i stället
att slâ ihop de tvâ ifierna till en enda, fOr 12. Den kan kOras med klockfrekvenser upp till 33 MHz. FOr art modifiera kortet fOr
gemensam flu. Labels (etiketter) ad- denna kontroller kan du ersatta kristallen med en pa 22.118400 MHz och den resulter-
derades ocksâ till alla icke-eti.ket-ter- ade processorhastigheten kommer att bli ungefär sex ganger snabbare an med en vanlig
ade absoluta och relativa hopp och 80C32. Kontrollern kan hantera 33 MHz, men detta är inte mojligt här, delvis pa grund
av det inte finns sa snabba EPROM (vilka dâ skulle behova en accesstid p
anrop. Vissa delar av källkoden var
40 ns) och delvis pa grund av art det inte finns nagon lamplig kristall tillganglig. Av
kodade som bokstavsdata efter-som
tekniska skal tillverkas 'grund'kristaller endast for frekvenser upp till ca 22 MHz. Ovan-
den assembler som anvàndes pa den fOr denna frekvens används Overtonskristaller, med ett supplementärt resonans-filter
tiden inte stodde de nya 8052- som tvingar kristallen art svanga vid en harmonisk frekvens. Aven vid 22 MHz m.ste du
instruktionerna. Bokstavsdata Over- anvanda tillrackligt snabba programminnen (70 ns) for tolken. Dataminnet kan bestyckas
sattes därefter till motsvarande med komponenter som har en standard accesstid pa ISO ns, eftersom kontrollern
mnemonics. En rutin i källkoden automatiskt lagger in vantetider när den accessar dataminnet. De tva TTL-IC (74HC573
skiljde sig fran den ursprungliga och 74HC00) skall ersättas med snabba 74AC eller 74F typer. En 28C64 kan anvandas
Intel ROM-koden och ersattes därfOr for EEPROMet (105 pa kretskortet). Du maste dock forst kapa anslutningarna mellan
med mnemonics motsvarande ROM- +5 V och benen I och 27 pa hâllaren for EEPROMet. Ben I kan Iämnas oppet men ben
koden. När dessa modifieringar 27 m.ste anslutas till IWR-signalen fran kontrollern (ben 27 pa 10).
gjorts blev koden relokerbar sâ att
ett antal ORG-anvisningar, speciellt
de som lärikade ihop tolken och flyt-
punktskoden, kunde elimineras. Den
primara vinsten var dock art det
nesutrymme som sparades in tack " Terminal MCS-51
vare fOrbattringarna nu kunde Om du beställer BASIC-52 VI .3 fran var Läsarservice pa diskett (ordernummer 000121-
användas fOr ytterligare felkorn-ger- II), far du ocksa en hel uppsattning av den den senaste versionen av Terminal MCS-5 I.
ing. Men det âtervunna minnes- Detta är ett terminalemulatorprogram for DOS-datorer, som naturligtvis ocksa kan kOras
utrymmet var fortfarande fOr litet fOr under DOS-fOnstret i Windows. Terminal MCS-5 I har skrivits for art kompensera de kända
att alla felkorrigeringar skulle fâ svagheterna i BASIC-52. sa har, till exempel, BASIC-52 inte nagot RENUMBER-kommando
plats i koden. FOljaktligen blev man for omnumrering av kommandoraderna i BASIC och det har ocksa mycket begransade
tvungna att radera 'ego' medde-lan- funktioner for redigering av BASIC-program. De funktioner som ges av Terminal MSC-5 I
det fran Intelprogrammeraren J. inkluderar fOljande:
Katausky. Bit 40h i det interna bit-
adresserbara minnet kunde därmed - enkelt art ladda och spara BASIC-52 program,
frigOras och användes fOr att detek- - omnumrering i BASIC-52 program,
- integrerad radredigerare for BASIC-52 kommandorader,
tera en multiplikations-underrun.
- vilken ASCII-redigerare som heist kan länkas in.
Detta hade tidigare inte hanterats
korrekt. Redan 1993 skrev D. Karman
En shareware version av Terminal MCS-5 I kan ocksa laddas ner gratis fran var websida vid
version 1.2 av tolken fOr en 8031-kon- hup:I/www.oiltomelektronik.com . Sharewareversionen är fuilt fungerande, och inte tidsbe-
troller och i denna process eh-miner- gränsad, men du kan inte omnumrera programrader I BASIC med den.
ade han tv& kända fel sâ att:

2/2001 AlIt om Elektronik 17


grammera ett EPROM när den körs
4 REM ******************************************************
fran ett externt minne. De f6r-bät-
5 p4 * Program for controlling AID converter in 80535/537 * tringar som gjorts for att âtgarda
6 REM detta baseras pa ett farslg som R.
10 RANGE=5 : REM Controller reference voltage Skowronek gjorde 1996.
20 ADCO=OD8H : REM Register to check A/D state etc. BASIC-52 V1.3 kan direkt program-
30 ADDAT=OD9H : REM Register for measurement output merare hardvaru-EEPROM med hjälp
40 DAPR=ODAH : av kommandonaPROG(1-6)' och
REM Register for meas. range and start
'PGM', även när den körs fran ett ex-
50 RDSFR (ADCO)BUSY : REM Read other function bits
60 BUSY=BUSY.1ND.0C0H : REM Isolate function bits
till pa samma sätt som RAM, men
70 WRSFR (ADCO)BUSY : REM Pick measurement input 0 (Port 7.0)
med en lãmpligt lãngre periodtid.
80 WRSFR (DAPR) 0 : REM Start measurement in highest meas. range Med denna färaridring behOvs port-
90 RDSFR (ADCO)BUSY : REM Read AiD converter state pirmarna 1.3 (ALEDIS), 1.4 (PRGPLS)
10 IF (BUSY.AND.020H)>0 THEN GOTO 90 : REM wait if busy oco 1.5 (PRGEN) samt bit 15h
110 RDSFR (ADDAT) VOLTAGE : REM Read measurement value (INTELB) i det interna minnet samt
120 PRINT'Voltage on Input 0 equals:', minnesplatserna 12Ah och 12Bh i ex-
130 PRINT VOLTAGE*RANGE/256,V01V : REM Adapt value to meas. range terflt PAM intelängre,utankanfritt
140 PRINT Another measurement required in 1-V range (YIN) ?", UtflyttJaS fOr andra ändamâl.
150 I=GET.AND.ODFH 'PROG'kommandona är ocksâ 6ver-
160 IF I=ASC(Y) THEN GOTO 190 flOdiga och har därfOr tagits bort.
170 IF I=ASC(N) THEN GOTO 260 Detta sparar ytterligare plats och
BASIC-tecknet OF9h har frigjorts och
180 GOTO 150
används for det nya 'ERA-SE'kom-
190 RANGE=1 : REM Measurement range = 1 Volt
mandot. Detta kommando raderar
200 WRSFR (DAPR) 040H : REM Set range and launch measurement
EEPROMet genom att skriva Over
210 RDSFR (ADCO)BUSY : REM Read A/D converter state alla minnesplatser mellan 08-000h
220 IF (BUSY. AND. 020H) >0 THEN GOTO 210 : REM Wait if busy och 00000h med OFFh. ERASE'
230 RDSFR (ADDAT)VOLTAGE : REM Read measurement value anropas i kommandmod och det tar
240 PRINT Voltage on Input 0 equals exactly:, knapp tre minuter att radera denna
250 PRINT VOLTAGE*RANGE/256, Volt" : REM Adapt value to meas. range 16-bitars region.
260 END En speciell egenskap hos BASIC-52
är mojligheten att bygga Ut kom-
AID-omvandlaren i 80517A bar en upplOsning pa 10 bitar och fOrbattrad mätnoggrannhet. Med denna typ mandosetet med hjälp av 16 egen-
av kontroller är det emellertid inte moiligt att modifiera den interna referensspanningen via ett kontroll- definierade kommandon programme-
register. Foljande programexempel I BASIC visar hur ing3.ngen kan valjas for den signal som skall mätas. rade i assembler. OPCODE' bar lagts
till for att tillâta att systemrutiner
används i dessa expansioner. Tyvärr
4 REM
* Program for controlling A/D converter in 80517A * farms det ingen OPCODE tillganglig
5 p
fOr att tilldela ett vdrde placerat pa
6 REM
argumentstacken till en variabel de-
10 RANGE=5 : REM Controller reference voltage finierad i BASIC-text. Foljaktligen
20 ADCO=OD8H : REM Register for measurement input selection var det ailtid nodvandigt att gâ den
30 PDDATL=ODAH : REM measurement value, LSB krângliga omvägen att använda ett
40 P.DDATH=OD9H : REM measurement value, MSB POP-kommando. I BASIC-52 V1.3 har
50 PRINT Please enter number of measurement input (0-7): 1 , OPCODE 43h definierats for detta
60 INPUT CHANNEL ändam&l. Den används, till exempel,
70 CHANNEL=CHANNEL.AND.7 : REM Mask superfluous bits i kommandoexpansionen 'RDSFR
80 RDSFR (ADCO)BUSY : REM Read function bits (address) variable'
90 BUSY=(BUSY.ND.0C0H) .QR.CHPNNEL : REM add channel selection Tidigare nollställde instruktionen
100 NRSFR (ADCO)BUSY : REM Copy channel selection to controller 'TIME= O' inte millisekundraknaren
till noll och värdet for TIME Ater-
110 WRSFR (ADDATL)0 : REM Launch measurement
ställdes därfOr inte exakt till noll.
120 RDSFR (ADCO)BUSY : REM Monitor A/D Busy state
Detta fel har nu korrigerats i V1.3.
130 IF (BUSY. AND. 020H)>0 THEN GOTO 120 : REM Wait if busy
BASIC-instruktionen ASC(x)' retur-
140 RDSFR (ADDATL) UOLTPART : REM Read least significant part nerade alitid ett felaktigt värde for
150 RDSFR (ADDATH)VOLTAGE : REM Read most significant part alla teckenpositioner som ockupe-
160 VOLTAGE=V0LTAGE+UOLTPART/256 : REM Compute maesurement values rades av en BASIC-operator (*, +, -,
170 PRINT'Voltage at input:',CHPNNEL, equa1s:', I, <, =, > eller Tolken oversatte
?).

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-

18 AlIt om Elektronik 2/2001


tecken till symbolen fOr PRINT'. FOl-
jaktligen retumerades värdet far syin- Tabell I. 8053037 A/D-omvandlar SFR
bolen i stället for det korrekt beräk-
SFR Adress Bit(ar) Namn Funktion
nade ASCII-värdet fOr tecknet.
BASIC-52 V1.3 ger flu de korrekta var- ADCON OD81h 2-0 MX2,MX I ,MXO VäJj analog ingâng
dena far alla ASCII-tecken. ADCON OD8h 3 ADEX Starta via harcivara/mjukvara
For att BASIC-52 V1.3 skall kunna ADCON OD8h 4 ADM Singel/kontinuerlig omvandling
käras pa s& manga 802-derivat som ADCON OD8h 5 BSY Omvandling fortskrider
mOjligt och speciellt pa Dallas Semi- DAPR ODAh 3-0 DAPR.3-.0 Lägre referensspänning
conductorns kontroller 80C320 med DAPR ODAh 7-4 DAPR.7-.4 Ovre referensspanning
beteckning 'Speed it pP' har reset- ADDAT OD9h 7-0 8-bitars mätresultat
rutmen omarbetats rejält pa fäljande
sätt:

- 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

2/2001 Alit om Elektronik 19


I,' V
4 1

Design av seriell
kri'lngutrustning (6)
Matning med sensorer

'1

Av B. Kainka

Den bästa demonstrationen involve-


I de föregende avsnitten har vi mätt resistenser rar ett ijusberoende motstnd (LDR).
Figur I visar en enicel ljusmatnrngs-
och kapacftanser. Du kanske har funderat over krets och figur 2 visar hur den kan
byggas. I detta fall är vi intresserade
nyttan med detta eftersom det finns noggranna av hur avläsningar förändras med
tiden och detta visas bast med hjalp
och billiga digitala multimetrar att kOpa Overallt. av en kurva.
I denna artikel visar vi hur vi kan Iäsa av alla Ljusmätning
mOjliga sensorer genom att mäta deras For att kunna producera en kurva pa
skärmen med hjälp av Visual Basic
resistens. behOver vi en sâ kaliad PictureBox,
som kan hämtas fran verktygslâda.
Det ax mycket vilctigt att ställa in den
korrekta storleken. Visual Basic kan
använda flera olika mattenheter och
har viii vi kunna masta storieken i
pixiar. Egenskapen ScaleMode skali
sättas till'3 - pixel' och rutan dras ut

20 Alit om Elektronik 2/2001


Lista I. Resistensplottning DIRJ (_
LDR
Dim yl, y2, xl, x2, n D
Private Sub Form_Load()
i = OPENCOM("COM2,1200,N,8,1')
If i = 0 Then 148
i = OPENCOM( 1COM1,1200.N.8,l') DSR
Optionl.Value = True
End If C
If i = C Then MsgBox ('COM Interface Error")
TXD 0
RTS 0
-by
DTR 0 TXD 000074-6-11
Couriterl = 0
Timerl.Interval = 1000
n= 0 Figur I. Matningar med hjälp av ett
End Sub Ijusberoende motstând.

Private Sub Formjinload(Cancel As Integer)


CLOSECOM
End Sub

Private Sub Optionl_Click()


I = OPENCOM("COM1,1200,N,8,1')
If i = 0 Then Msgsox ('COMl not available")
End Sub

Private Sub Option2_Click()


i = OPENCOM( 1COM2,1200,N,8,l")
If I = 0 Then MsgBox ('COM2 not available')
End Sub
000074.6. 12
Private Sub Timerl_Tirner()
LYR 1
REALTIME (True) Figur 2. Konstruktion av LDR-kretsen.
TIMEINITUS
While (DSR() = 0) And (TIMEREAJJ US)) < 900000)
Wend
T = TIMEREADUS () 12356 06

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

Figur 3. Resultat av LDR-matningarna.

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.

2/2001 AlIt om Elektronik 21


Lista 2. Expansion far temperaturmätning
Private Sub Timerl_Timer()
ETR1
REALTIME (True)
TINEINITUS
While (DSR() = 0) And (TIM1 READUS() < 1500000)
Wend
T = TIMEREADUS()
T = T * 1.0000000001
R = 2200 + 7800 • (T - 763( 10) / (294600 - 76300)
REALTIME (False)
000074-6-15
R = Int(R)
Temp = 1 / (Log(R / 10000) 4300 + 1 / 298) - 273
Figur S. For matning av hudresistens. Temp = mt (Temp * 10) / 10
Labell.Caption = Str$(Temp) +
ryrR 0
End Sub
stant utan varierar i takt med fuktigheten.
Mir folk Ijuger sâ svettas de, och vi kan där-
for bygga en lOgndetektor genom att avgOra
när hudxesistensen faller. Problemet är dock Lista 3. Omvandling till Fahrenheitskalan
att hudresistensen typiskt är hogre an det Aven om den tyske fysikern Gabriel Daniel Fahrenheit dog 1736, finns det dom
maxi-mala värde som vi kan mäta med var som kanner sig mer hemmastadda att arbeta med temperaturer uppmatta I
krets. Vi behöver därfOr en transistor for Fahrenheit. De behover endast ändra nâgra rader i programmet:
forstarkning (figur 4, figur 5).
En NPN-transistor förstärker den lila sträm Temp = 32 + (Temp / 100 * 180)
som flyter genom huden, vilket gOr att var Temp = mt (Temp * 10) / 10
enkla AJD-omvandlare kan mäta relativt hoga Labell.Caption = Str$(Temp) + " F"

resistenser. Kretsingângen skyddas


D7RU av tvâ extra motstând sâ att den B.(i1—)
R(T)=R2se T 298X
D uppmätta resistensen inte kommer
TC att vara for lag, inte ens omtrâdarna
D0k kortsluts. Den erhâllna avlasningen En NTC-termistor specificeras därför
beror pa trâdarnas kontaktyta och till en fOrsta approximering av tv&
DSR(Th
hudens fuktighetsniva. Du kan titta värden, B och termistorns nomineila
p& resultatet med hjalp av resistens- resistens R25. For en typisk NTC-ter-
plottningsprogrammet. mistor pa 10 kQ kan värdet pa B vara
47p 4300. Om vi nu fOrenklar ut-trycket
ovan och i ekvationen sätter in R25
000074 . 6. 16
Temperaturmätningar = 10 kI2 kan vi fâ foljande rad i
Visual Basic att beräkna värdet T i
Figur 6. Anslutning av en NTC- Du kan ocks& mata temperaturer Celsius:
termistor. med hjalp av var resistensmatmngs-
krets. Kretsen i figur 6 visar hur en- Temp = 1 / (Log(R I 10000) / 4300 +
kelt det lr att ansluta en NTC-ter- 1/298) - 273
mistor far att fâ en enicel, men ändâ
fuilt användbar, termometer. 'Log' funktionen i VB beräknar den
Resistensegenskapema hos en NTC- naturliga algoritmen, ofta fOrkortad
termistor kan approximeras med till 'In' i matematiska laroböcker.
hjalp av en exponentialkurva. T är I det program som visas i Lista 2 Ut-
Count - den absoluta temperaturen i Kelvin far vi fOrst en resistensmätning och
(T/°C + 273), medan B är ett varde, omvandlar sedan det uppmätta var-
20.4°C typiskt mellan 2000 och 500 Kelvin,
och detta ges av termostortillver-
det till temperatur. Resultatet visas
med en decimal, vilket du kan se i
karen. Faktum At att värdet fOr B inte figur 4. Slutligen visar Lista 3 hur du
är perfekt konstant utan stiger grad- kan omvandla fran Celsiusgrader till
vis med temperaturen och av derma Fahrenheit.
OOM1 orsak anges ofta vãrdet B 25185 , där
kalibreringen har utfärts vid 25 °C
och 85 °C
Figur 7. Temperaturvisning.

22 AIR om Elektronlk 2/2001


Fartkontrolien
D uett (2)
De 2: Bygge, programmeHng och kraflienheter
Design av B. Stuurman

I del I presenterade vi översikt av projektet. I del 2 gâr vi igenom


bygget av SpeedControl enheten, programmeringen med en PC (via
RS232-interfacet) och slutligen bygget av de tvâ kraftenheterna,
SpeedPower I och SpeedPower 2.

24 AI?t om Elektronik 2j2001


KOMPONENTLISTA D4 = dagsljus-LED gut ~ 6V
Motstând:
D5 = dagsljus-LED grön
D6,D7 BAT85
TI75 = BC547
IN
ci 6y
Rl,R4,R8,R13 = 10k
R2= IOOk2 T2,T3,T4 = BC557
CI =ST62T60BB6, programmerad,
a 63
T'R46
RI R2

R3,R7 = 2k2
R5,R6,R9-R12 = lk ordernr 000070 41 -

Rl4,R15 = 560 (se Lasarservice)


P1 = flervarvig trimpot, stâende
montering (t.ex., Bourns 3386W) Ovrigt:
S = tryckknapp, slutande
Kondensatorer: X = 4M Hz kristall
C = 220pF keramik, lead pitch 2.5 Bz I = AC-summer
MM avstorningsskydd av ferrit
r OLM1(3)
C2 = lOOj.tF 16V, radial Kretskort:
0
0 = lOOnF - tillsammans med SpeedPower I:
C4,C5 = I 8pF keramik ordernummer 000070 5; -

- tiltsammans med SpeedPower2:


Halvledare: ordernummer 000070.4 odo
Dl =zenerdiod 2V3 (se Lasarservice).
D2,D3 = dagsljus-LED (3 mm) rod Si 0 aJP?I
CF-

Att bygga ningen fOr resetsignaien i IC-hal-


SpeedControl laren. Resetsignalen skali färbli Lag
till ungefar 3,7 V, varvid den skail gâ
Figur 4. Kretskortet for SpeedControl
Kretskortet for SpeedControlenheten Hag omedeibart. Fran ca 3,75 V och
(skala 1:1).
visas i figur 4. Av ekonomiska skäl framât skall den falja matningsspan-
firms detta kort endast tiilgangligt i ningen. Om detta at OK kan du sätta
kombination med ett av de tvâ in mikrokontroilern i sin hâliare. Det
SpeedPowerkorten (se Komponent- fardiga mOnsterkortet for Speed-
listan) och din fOrsta uppgift blir dãr- Control visas i figur 5.
for att s&ga isär de tvâ korten (om du
viii det).
Om du arbetar iungt och noggrannt
med en finspetsad iOdpenna och föl-
jer komponentlistan noga sâ bOr du
inte ha nâgra problem
med att bestycka kortet.

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.

2/2001 AlIt om Elektronik 25


V I I VU FAI Z 11111112 M I
används (Sub-C, 1500-2000 mAh).

brake [parameter] Kommandot 'bra-


soul
ke' är avsett for elektriska glidflyg -
sI plan med hopfällbar propeller som är
GND fOrsedd med en SpeedPower 2 enhet.
sa fort som styrspaken (eller trim-
met) är satt till 'back' lage sa akti-
9-polig D-sub (hona) kontakt. Ta bort stiftet och förstora hâlet till 1.4-mm
veras broms-FET efter en inställd
Sätt tillbaka höljet efter 4-pol header, lodanslutningar.
fOrdrojmng. 'Back' till 'tram' har ailtid
hopmonteringen. Avsluta med krympslang.
pnoritet.
Figur 6. RS232 kabel for kommunikation med en PC.
curve (linear) Detta switchkomman-
do växlar mellan en linjär och en ex-
ponentiell kurva. I det senare fallet
Programmering visa meddelandet 'command?' pa är den mangd effekt som laggs till
Innan vi gâr vidare är det bra om du färst an- skärmen. Nu kan du ange komman- motorn bättre anpassad till styrspa-
passar SpeedControl till sändaren med hjälp don. Om du anger ett felaktigt kom- kens position.
av trepunkts timinginstallning och specielit mando eller en felaktig parameter s&
den setup som beskrivs i exempel 2 i den härs ett pip och det kommer upp ett beep (high) Detta ställer in volymen
färsta delen av denna artikelserie. När du meddelande pa skärmen. Du gâr ur pa pipljudet till 'hOgt' eller 'mjukt'.
g]ort detta kan du testa funktionen hos forw/ denna situation genom att trycka pa
back' utg&ngen. Esc. Om du anger kommandot '?' freq [parameter] (2 kHz) Med detta
Efter detta test kan du koppla fran motta- och sedan trycker pa 'Enter' far du kan frekvensen hos PWM-signalen
garen och SpeedControl. Stitt trimpot P1 i fram kommandouppsättningen sâ- ställas in pa fyra olika vàrden.
làge 'speed' och h11 ner tryckknappen när du som den visas i figur 7. Du skall en-
kopplar pa spángen. Nu kan du testa trim- dast använda smâ bokstäver nàr du fail [parameter] (1 s) Kombinationen
potens funktion. Denna skall fungera i stort anger kommandon. Om parametema av detta kommandot och 'safe' kom-
sett pa samma sätt som styrspaken pa san- utlämnas visas den installning som mandot bildar 'fail-safe' (idiotsäker)
daren. är aktiv for tillfãllet. egenskapen hos SpeedControl. 'Fail'
Om du inte har utfört nâgon programrnering kommandot kan användas fOr att
sâ kommer grundvärdena att användas. Kommandon specificera det maximala intervall
Mikrokontrollern kopierar dessa värden fran reptest (on) Detta switchkommando sam tillâts for att inte ta emot nagra
ROM till EEPROM när den startas första g.n- aktiverar eller deaktiverar testningen pulser (eller daliga pulser) innan
gen. En 'jungfrulig' EEPROM-cell inne-hâller av repetitionsintervallet (puishastig-
antingen OOh eller FFh. När värdena har heten). Kappla bort detta test endast
kopierats innehaller 'testcellen' 08h s& att om säridarens repetitionsintervall ax
programmet vet att EEPROM-et redan skri- mycket ostabilt. Notera att detta
cM view Qsl Irenst& He
vits till. I beskrivningen av kommandona vi- kommando kopplar bort testet och
sas grundvardena mom parentes. far att âtergâ till originalinstall-nin-
Det behövs en specialkabel for att Speed Con- gen maste du ge kommandot tva
trol skall kunna kommunicera med en PC. ganger. Detta gäller for alla switch- command?
7.
Schemat for denna kabel visas i figur 6. De tre kommandon! cse t?
loopback' anslutningarna lurar RS232-inter- rep test
facet till att fungera med endast tre kablar, cutoff [parameter] Detta kommando cutoff
'gnd' (jord), 'in' och 'out (Ut). Dessutom används fOr att ställa eller koppla brake
curve
behOver du en terminalemulator, som exem- bort brytspanningen. Detta är ovàr- beep
pelvis Windows tilthehOrsprogram HyperTer- derligt om matningsspänningen for freq
minal. Om du inte anvärider Windows kan du mottagare, servon eller SpeedControl fail
använda nagot annat kommunikationspro- tas fran en effektenhet sa att det inte safe
page
gram, som 'old-timern' ProComm, vilket pas- finns nagot separat batten for motta- log
sar utmärkt fOr detta. Stall in protokollpara- garen. När matningsspänningen fal- mem
metrarna till 19200 baud, 7 databitar, ingen ler under det inställda värdet kopp- put
paritet och 2 stoppbitar. I HyperTerminalen las motorspänningen bort. Spannin- wd
7
kan du spara dessa installningar pa skrivbor - gen till motorn kan âterstallas igen
det under namnet 'Speed.ht' (till exempel). genom att ställa spaken i neutrallage
Stang sedan HyperTerminalen och starta den och den kommer att färbli paslagen
igen via Speed.ht.
FOr att komma in i prograinmeringsmod skall
tills spänningen igen sjunker under
det inställda värdet. I allmänhet refe- Connected O:O213 ANSI
II
du sätta trimpoten i lage 'program' och sedan reras brytspanningen till den full-
sla pa spänningen med tryckknappen in- laddade batterispanningen, for vii- Figur 7. Kommandosetet for
tryckt. SpeedControlenheten kommer dâ att ken ett värde pa 0,7 V per NiCd-cell SpeedControl.

26 AlIt om Elektronik 2/2001


W! I I wV FA Z 1111111
motoreffekten minskas till noll. 1C3

safe (resume) Alternativen for detta


kornmando äresume' (fortsätt igen)
och 'go neutral'. Om motoreffekten
har satts till noll som en reaktion till
ett 'fail' kommando och alternativet
'resume' har valts sa kommer den
normala operationen att âterupptas
sâ fort som styrpulserna tas emot
igen. Om alternativet 'go neutral' har
valts mâste styrspaken fOrst sättas i
neutrallage innan den normala funk-
tionen aterstalls.

log (off) Om 'log' är aktiv kommer


dâliga pulser att registreras i 'logg-
boken'. Detta är en 16-bitars räknare
som ger en indikation pa hur säker
lãnken Or. Loggningsfunktionen kos-
tar en hel del extra tid i kontrollern
och skall dOrför normalt vara fran-
kopplad. Figur 8. Kretsschemat for SpeedPower I.

Diagnostiska kommandon SpeedPower 1


put [parameter] Parameterbytet
wd (on) Derma kan användas for att skrivs till den minnesplats som spe- Kretsschemat for SpeedPower 1 enheten, som
aktivera eller deaktivera den digitala cificerats med kommandot 'mem'. har framât/bakâtmojlighet, visas i figur 8.
mikrokontrollerns watchdogtimer. Sp'ngsregulatorm pa 5 V (1C3), som ocksa
Om watchdogtiden gâr ut kommer page [parameter] 0 = EEPROM pa- ger spanning till BEC (batterieliminatorkrets),
mikrokontrollern att âterstallas (re- ge 0, 1 = EEPROM page 1, 2 = RAM är en lâgfallstyp som kan lämna 1,5 A. Med
set). NOr watchdogen kopplas bort page 2. tvâ standardservon an den genomsnittliga
aktiveras kommandoprocessorn i
programmets huvudslinga och vi kan De diagnostiska kommandona kan
utforska alla minnesplatserna i mik- användas for att âterst011a grundvar-
rokontrollern och modiflera dem efter dena. Detta gOrs pa faljande sOtt.
behag. Ange först 'mem00' for att vOlja mm-
nesadress '00. Ange därefter 'page
SEC 5V
mem [parameter] (off) Detta kom- 0 for att vOlja EEPROM page 0 och
0 ci
mando, följt av en hexadecimal ad- ange sedan put 00' for att skriva WM

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 '

gânger i sekunden. (ga ur med Esc- grundvOrdena âtengen att skrivas in


SEC By
tangenten). i EEPROM-et.

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.

2/2001 Alit cm Elektronik 27


strömforbrulcnlngen fran BEC runt 150 till 250 C3
L4940V5
mA, men am mottagningen färloras och ser-

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

nalerna är elektriskt isolerade fran varandra 12


loon
av en dubbel digital optokopplare (101). 102 I.
är en dubbel inverterande drivkrets for effekt- I ips
MTP50PO3HDL 3045Cr
MOSFETarna. Varje utgâng kan lämna eller
sänka 1,5 A och sparmu gen kan ga fran 0 V
pa jordledaren (ben 3) till matningsspännin-
Ici
J547

1C2
D2

BAT85
-M

gen (ben 6) Ingangarna är TTL-kompatibla.


_
8
PWM RI 12

En drivarutgang (ben 7) används for att styra


tva paralleilkopplade effekt-MOSFET (T2 och

.
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

30 L!J TC4428CPA 47i'


15V
20
1RL22

7.10 - 2 . 16
22n

med 'snubber'filtret (R8 och 05) som skyddar


MOSFETarna. Kretsen har designats pa sâ
sätt att motorn inte kan käras am det inte
firms nâgon ingângssignal. Figur 10. Kretsschemat for SpeedPower 2.
Figur 9 visar kretskortet fOr SpeedPower 1.
Detta levereras tillsammans med kretskortet
far SpeedControl och kan separeras fr.n detta Sätt slutligen fast anslutningskab- hos optokopplaren (101) Hagt, vilket
om man sâ vill. Samma anmarkningar galler lama och BEC-kabein. Om avstandet spärrar dioden Dl. 'PWM'-signalen
for bestyckningen av detta kort sam far mellan strOmenheten och mottaga- nar den icke-inverterande drivaren,
SpeedPower kortet. De strömbärande banor- ren ar langre an 20 cm àr det en bra sam kantrollerar effekt-MOSFEThrna,
na är extra breda och de kan förstarkas ytter- ide att färse BEC-kabein med en fer- via den inverterande drivaren och
ligare om du lOder fast koppartrâdar ovanpa ntnngkarna intill mottagaren. diaden D2. När 'for/back' ãr aktiv är
dem. utgângsben 6 has optakopplaren
SpeedPower 2 Lâgt, sâ att dioden Dl leder. In-
g&ngsben 4 has optokopplaren far-
0 Figur 10 visar kretsschemat over blir Lâgt och fOljaktligen acksâ 'gate'
SpeedPower 2 enheten, sam inklu- hos T2 och T3.

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)
-

Figur 11. Kretskortslayouten for C3 = 22nF


SpeedPower 2.

28 AlIt om Elektronik 2/2001


hos MOSFET T2 mot jord tills zenerdiod D3
Effekt-MOSFETs baijar att leda. Dâ uppst&r ett stabilt tilistand
i vilket T2 -kortsluter' motorn med en resis-
Pa grund av det l&ga nominella värdet hos stromforsorjningen (7.2 'v'), är det inte
tens pa ca 20 mL. Detta är 'broms' tilistandet.
mojligt att använda vanliga MOSFET i kraftenheterna utan att ta till en massa När for/back' mte langre är aktivt stängs Ti
tricks. TrOskelspanningen hos dessa komponenter V(thrh) ligger runt 4 V och och gate hos T2 dras &terigen mot source-
mattningsresistensen Rds(ofl) som anges I databladet uppnas endast vid en spanning nivân, vilket stanger T2.
pa 7 till 8 V. Med logiska effekt-MOSFET ligger troskelspanningen betydligt lagre Om bromstillstandet inte fungerar tilifreds-
(2 till 2,5 V) och till-resistensen är redan extremt lag vid 'logiska spanningsniv&er' ställande kan värdet pa R9 ökas efter behov,
(5 V). Priset man maste betala fOr detta är att gate- kapacitansen är betydligt upp emot 1 kI2.
hOgre an hos vanliga effekt-MOSFET. Detta betyder att det behOvs mer effekt for Det kretskort som designats for SpeedPower
(PWM) drivsignalen och det är därför som speciella driv-IC anvands i kraften-
2 visas i figur ii. Detta levereras ocksâ till-
sammans med SpeedControllcortet. Aven här
heterna. Vi har valt tre typer av logiska effekt-MOSFET som är mycket väl lam-
är avstandet mellan de relevanta banorna sa
pade att användas i kraftenheterna. De listas nedan.
stort som mOjligt, men vi rekommenderar er
Samtliga av dessa tre MOSFET har ett TO-220 hölje. Denna typ av kapsling kan
att förstärka anslutningama mellan T2-T4 och
avleda I W utan extra kylning. Med ett litet kylelement (en bit 2-mm tjock alu- M+ och M- anslutningarna genom att läda
miniumplat, ca 10 x 27 mm) kan detta Okas till 2 W. Den maximala kontinuerliga fast koppartrâdar ovanpâ dessa.
strOm som en enda MOSFET kan hantera är sâledes den mangd som producerar Bâda kraftenheterna skall testas initialt med
en effektforlust pa 2 W. FOr 1RL2203 är detta (2/0.01) = 14 A. En kraftenhet med hjalp av ett nataggregat som är strömbe-
tvi 1RL2203 kan s&ledes hantera en kontinuerlig strOm som ligger pa 28 A. Den gränsat till 2 A. Efter detta kan du ansluta
hOgsta stromnivan, 36 A, kan uppnas med h1älp av ett par 1RL3803, men dessa är dem till batteripaketet, men var farsiktig med
betydligt dyrare. GlOm inte att vi pratar om kontinuerlig strom har, betydligt tanke pa de hOga strOmmar som kan flyta.
stOrre strOmmar kan hanteras under kortare tid. Tabellen visar strOmhanter-
Det firms brandrisk om det skulle uppsta en
kortslutnrng, till och med en explosion om du
ingskapaciteten hos kraftenheter forsedda med parallellpar av de listade typerna
har slarvat med lodningarna.
av effekt-MOSFET, bade kontinuerligt och for 30-sekundersintervall.
Men flu är bygget fardigt och du har kon-
trollen helt i egna hãnder!
MOSFET RIDS(on) RIDS(on) '(cont) I(30s)
typ Vg5 =S V VgS = 10 V 2 St 2 St

BUZIOOL 18mQ 1 2 m26A 39A


1RL2203 15m l0 m) 28A 42A
1RL3803 9 MQ 6 mQ 36A 54A

Figur 12. Bud pa tvá de tvà SpeedPower enheterna.

22001 Alit om Elektronik 29


AMmmottagare
FrãnDCtiII 1,8 MHz
Design av G. Baars

Inte alla AM-mottagare är skapade lika. Den mottagare som beskrivs


här är definftivt inte en sdan som du hittar i en billighetsaffar. Omrâdet
är inte begransat till mellan och lângvgsbanden, utan gâr ända ner till
de extremt Iâga frekvenserna. Detta öppnar for nya mojligheter.

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-

Alit om Eiektronik 2/2001


star i huvudsak av tre IC-kretsar,
supplementerade av en handfull
Table I 9.0 till 148.5 kHz. Nâgra stationer
stan-dardkomponenter. Och slutli- Frekv. (kHz) Anrop Beskrivning
gen, eftersom kalibreringen är be- 18.3 UNID Teleprinter
gransad till en enda trimmer, sâ kan 53.6 RTO Moskva väder
alla med de minsta kunskaper i 16d- 60.0 MSF Rugby TS
fling bygga ihop mottagaren pa det 75.0 HBG Nyon TS
framtagna kretskortet och fâ den att 77.5 DCF77 Mainflingen TS
fungera direkt, utan problem. 82.8 MKL RAF Edinburgh
111.3 SOA2II Warszawa väder
117.4 DCF37 Offenbach väder
En rad med block 129.1 DCF49 BMPT Bonn
139.0 TBA TN Ankara
Vi börjar med en beskrivning av 147.3 DDH47 Hamburg vader
blockschemat, eftersom detta visar
hur alla de olika delarna i mottaga-
ren fungerar tillsammans. viktigaste funktionen hos detta steg andra mellanfrekvensen pa 455 kHz. Pral.ctiska
Som man kan se av figur 1 sâ leds är impedansanpassningen. Det är experiment har visat att vissa stationer har
den mottagna signalen, med en frek- darför vi valt en mycket kort, och sa- betydande faltstyrkerester vid derma frek-
vens pa 0 till 1,8 MHz, in i ett for- ledes hOgimpedant, antenn. Denna vens.
stärkarsteg, fortsätter till ett filtre- följs av ett lagpassfilter, villcet elimi- Som vi kan se laggs den filtrerade signalen till
ringssteg och matas sedan till en nerar signaler Over ca 2 MHz. Detta ben I pa ICI. Denna IC (typ SA612.AN) best.r
blandare. Har blandas signalen med filter, som bestar av L2, L3/C6, C7 av en balanserad blandare och en oscillator
en signal fran en vanabel oscillator, och C8, har designats pa sa sätt att och är idealisk fOr den första blandnings-cer-
med en frekvens som är 10,7 MHz det ger en extra 'notch' vid den emonin. Ringoscillatorn ar ansluten till benen
hOgre an den mottagna signalen.
Denna variabla oscillator används for
att stämma av mottagaren.
Den skillnadssignal som blir resul- Superheterodyn
tatet av blanctningsoperationen har De tidigaste mottagarna bestod inte av mycket
en fast frekvens pa 10,7 MHz (den mer an ett avstämbart HF-steg fOr att välja mellan

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

2/2001 Alit om Elektronik 31


107 .12.5 MHZ
10245MHZ
andra mellanfrekvens pa 455 kHz.
Denna signal förstärks âterigen, filt-
reras sedan med hjälp av ett kera-
miskt filter, demoduleras och skickas
till utgangen via ett lâgpassfilter.
Den änskade oscillatorsignalen ge-
nereras av kretsen runt FET T4. Den
kristail som används har har ett skär-
mat hälje, som skall jordas. Färdelen
med denna externa oscillator är att
det inte firms behov av att justera
den.
Förutom det keramiska 455-kHz filt-
Figur I. Blockschemat over AM-mottagaren, en 'dubbel superhet'. ret och nâgra fâ passiva komponen-
ter (i huvudsak kondensatorer), är
kretsen runt T3 och D3 den enda ex-
6 och 7. Den är dimensionerad pa sâ sätt att ningsprocessen. Vi är endast terna kopplingen. Detta är en enkel
oscillatorfrekvensen, med hjälp av kapaci- intresserade av skillnadssignalen avstamningsindikator vars kanslig-
tansdioden Dl och den flervarviga trimpo- mellan oscillatorn och ingângsfrek- het kan justeras med P3.
tentiometern P1, kan varieras fran 10,7 till vensen (12,5 MHz - 1,8 MHz = 10,7 Den demodulerade signalen firms
12,5 MHz. P1 kan därfär användas for att MHz) och inte summan (12,5 MHz + vid ben 9 pa 1C2. C32 bildar en del
ställa in mottagaren. 1,8 MHz = 14, 3 MHz). av lâgpassflltret, efter villcet signalen
Vi skall direkt saga att valet av Icapacitans- Emitterfäljaren T2 ger impedansan- via C33 och volymkontrollen P2
diod Dl är extremt kritiskt. MV1401 har en passning mellan utgângen fthn 10,7 laggs till en liten audioförstärkare i
kapacitansvariation pa 30-600 pF när av - MHz filtret och ingangen till 1C2. form av en IC-krets. Detta är den
stämningsspäriningen gâr fran 1 till 10 V. En Denna IC, en TDA1572, är en komp- välkända LM386, den kan lämna
komponent med en annan kapacitans kom- lett integrerad AM-mottagarkrets. nâgra hundra milliwatt vid full Ut-
mer att medföra att mottagaren far ett annat Den innehaller, bland annat, en gang till en liten hogtalare pa 8 92.
frekvensomrade. blandare, tv& MF-förstärkare med Detta är fullt tillräckligt for vanhigt
Ett 10,7 MHz bandpassfilter kommer efter AGC-kontroll och en demodulator. vardagsrumsbruk.
den första blandaren. Detta filter ger den öns- 10,7 MHz signalen färstärks först och Slutligen nâgra anmarkningar när
kade selektiviteten och tar ocksâ bort oäns- blandas sedan med en (fast) 10,245 det galler strOmforsorjningen. Det
kade frekvenser som resulterar fran bland- MHz oscillator, vilket resulterar i en firms tre matningsspänningar: 12 V,

12V
46fl,A

Figur 2. Kretsen är relativt lite tack vare att vi använder en speciell mottagar-IC for AM, 1C2.

32 AlIt om Elektronik 2/2001


Ji11i
Al
E' ••
oED 6 ojjo •
C17 15
OE
•••. • •
1i
CI (:: u
\T C33
C5 S" ~ o 01to
P
C13 0 ..z.. )o1I
18 C40 / It
H K.II
P1 CII
777 C12 C31U ';-Y
; 0

6 o[XJo o[Do poop o[Jo\'


01 0 C4
to o-fl-o Cs Ici xi T4
cQ L3 () OQP
0

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..

2!2001 Alit am Elektronik 33


9 V och 6 V. Du kan använda en vanhig 12 V
KOMPONENTLISTA C37,C38 = 220pF I6V radial
natadapter, vars spanning laggs direkt till C39,C40 = I 0/iF 63V radial
audioförstärkaren 1C3. Spanningsregulatorn Motstând: C42 = 39pF
1C4 ger stabila 9 V far 1C2 och resten av mot- RI =
tagaren kärs fran de stabiliserade 6 V som R2,113 = I00k Spolar.
kommer fran 105. R4= IkLi L = 3pH9
R5 = 82092 L2,L3 = lOOpH
L4 = IpH5
Sjãlva bygget R6= Ik8
L5 = 68OpH
R7= I5Ok
R8 = 3k9 L6 = 82pH
Att bygga radiofrekvenskretsar är traditio-
R9 = 11d12 L7= I2pH
neilt lite besvarligare an lâgfrekvenskretsar
RIO = 2kQ7
eller digitala konstruktioner. Byggandet av Halvledare:
RI I = 330k
denna mottagare är dock mycket enkelt och R12= IOO Dl = MVI40I (Motorola)
de fâ kritiska omrâdena har vi noga övervägt R13 = 22 D2= IN400I
vid designen av kretskortet. Det betyder RI4 = 10 D3 = LED dagsljus
korta banor runt Ti och oscillatoranslutnin- R16 = lokQ TI = BF96I
garna for IC 1, avkoppling via kortast mojliga R17 = 82Ok T2 = BF494
väg till jord och en hel del koppar som fun- R18,R2O = 2k2 T3 = BC550C
R19 = 220kQ T4 =J3l0
gerar som jordplan.
P1 = 50 k I O-varvs cermet IC I = SA6 I 2AN (Philips
Det firms därför väldigt lite som kan gâ fel Sem iconductors)*
P2 = 50 k logaritmisk potentiometer
under bygget. Om du är noga med lOdningen lC2 = TDAI 572
P3 = 2kQ5 trimpot
och fäljer komponentlistan sâ vâgar vi pâstâ IC3 = LM386N
att mottagaren fungerar direkt. Kondensatorer: IC4 = 78L09
Var uppmarksam nãr det gãller polariteten C1,C23,C35 = IOpF IC5 = 781-06
hos halvledare och andra polariserade kom- C2,C3,C5,C I I ,C I 7,C 18,C2 I ,C24,C2
ponenter sâ att du vänder dessa at rätt hail. 6,C27,03,06,C44 = lOOnF Ovngt:
Detta gàller specieilt Ti, det korta benet med C4,C9,C I O,C28,C29 = 220nF LS = miniatyrhogtalare 8Q I watt
C6,C8 = 56pF XI = I OM7A* keramiskt filter
den utstickande delen (source) skall anslutas
C7= I8OpF X2 = SFR455H keramiskt filter
till C3 och det langsta benet (drain) till C4.
C12 = 22pF X3 = 10.245 MHz kristall
Spolama är, utan undantag, standarddrosslar Lida, t.ex.,Bopla typ E440
C13 = 33pF
som ser Ut scm motstând, villcet gOr det en- Kretskort 000176-I
C14,C16,C43 = IOOpF
kelt. Ingângen till filtret Xi är markerad med (se LOsarservice)
CI 5 = 40pF trimmer
en svart punkt, derma sida ansluts till R9. X2 09,00,C41 = IOnF
har ett assymmetrisk placerat ben, vilket gOr C22= I2OpF *) Eventuell leverantOr:
det i stort sett omajligt att placera derma at C25 = 47pF 16V radial Barend Hendriksen, websida vid
fel hail. Kristallen X3 har inget mittben. Detta C30 = 2pF2 16V radial hup://www.xs4o!I.nI/'—barendhl
tredje ben tihlverkar du själv genom att C3 I ,C34 = 22pF 16V radial Email: borendh@xs4o11.nl
(snabbt!) lOda fast en bit oisolerad trad till C32 = 3nF3
kristallen och jorda den.
Storleken pa kretskortet gOr att det enkelt
passar in i en lâda av typ E440 fran Bokla.
Eftersom bada potentiometrarna sitter p Du kan ocksa anvOnda en frekvens- ligger nagonstans mellan 10 och 20
kretskortet Or ledningsdragningen enkel, det rO.knare far att justera signalen pa cm. En langre antenn rekommende-
är bara antennen och hagtalaren som behöver ben 7 hos ICi till 10,700 MHz. Nack- ras inte pa grund av de okade stOr-
anslutas. LOngden pa potentiometerax1arna delen med detta ar dock att mat- ningar scm orsakas av atmosfäriska
och pa benen for LED D3, skall väljas pa sa instrumentet ger en liten belastning storningar.
sãtt att de sticker Ut genom lâdans front. och orsakar en frekvensforändring.
StrOmforsorjningen kan vara en standard nat- Detta kan förhindras genom att till- O176 I

adapter pa 12 V, och eftersom strOmförbruk- falligt ansluta ett motst&nd pa 10 k


ningen endast är knappa 50 mA sâ finns inga fran ben 2 pa iCi till jord. Detta far Hembyggare se hit!
ytterligare krav pa denna. en buffrad version av oscillator-sig-
Jag etsar och borrar
nalen att lOggas till ben 5 pa IC I.
Justenng och användning Nu kan du koppla in vertikalanten- dma kretskort efter eget
nen och panarja testkorn.ingen. Pro- original, tidningskopia
Justeringen är begransad till kalibreringen av totypen var mycket kanslig och vi eller film.
oscillatoromrâdet med C15. Den enklaste fick in stationer fran hela Oster- Prisex: Euroformat,
metoden är denna: Kortslut tiilfalligt antenn- sjoomr&det (fran Stockholm) under
anslutningen (punkt A) till jord och vrid av- dagtid. Under kv011stid fick vi in sta-
100x160 mm,
stOmi'gspotentiometern P1 fuilt till vänster. tioner lângt ner i Europa och Eng- enkelsidigt 100 kr.
Justera därefter langsamt C15, barja i mitt- land. I omradet under 150 kHz hör- 011-164985,
lage, tills du far en signal. Oscillatorn är flu des m&nga datastationer. 0730-202032
exakt vid 10,700 MHz. Den idealiska langden pa antennen

34 AlIt om Elektronik 2/2001


Uppgradera till
68HC 12 16obl'otars
m1krokontroller (2)
De 2: Programmering och verktyg

Av Oliver Thamm

Efter att ha gâtt igenom hârdvaran I del I av denna HC I 2-artikel, sâ ger


vi nu en summering av hur man programmerar HC 12, tillsam mans med
en genomgâng av de nödvandiga verktygen for detta.

36 Alit om Elektronik 2/2001


HCl2 är en typisk CISC-mikrokon-
troller, vilket betyder att den har ett Nya HCl2-instruktioner
relativt stort antal instruktioner med
MOVB #$OD,$ 1234
relativt komplexa arbetsmod. I all-
For att kunna skriva en konstant till en speciell minnesplats med HC II mste du alltid
mänhet är denna typ av mikrokon-
utfOra LDAAJSTAA-dansen. Detta betydde art värdet I ackumulatorn ailtid fOriorades
troller enklare att programmera i as-
efterât! En lasning var art 'parentesa' instruktionerna med PSHA och PULA. Lyckligtvis
semblersprâk an vad medlemmarna
kommer HC 12 med den efterlängtade MOVE-instruktionen, vilket förkortar denna proce-
fran RISC-familjen ãr. Den senare ty-
dur.
pen medfär (av nodvändighet) gene-
rering av 'spagettikoder', vilka be-
DBNE B,Loop
star av l.nga och i stort sett obegrip-
Loopar finns överallt! Med den indikerade instruktionen 'Decrement and Branch if Not
liga kodsekvenser. Detta behöver
Equal', är det enkelt art implementera denna viktiga grundstruktur, som du hittar pa dussin-
inte vara nâgon nackdel sa lange
tals platser i varje assembiersprâksprogram.
som kodgenereringen äverlâts till en
kompilator. Eftersom vi dock vill bör-
LDAA l,X+
ja med assemblersprak sâ är HCl2
Vad är det som laddas in i ackumulatorn här? Det värde som pekas pa av indexregister X.
precis vad vi behäver.
Gamla nyheter kanske du tycker? Inte alias eftersom X ocksa inkrementeras (okas med I) i
Instruktionssetet far assemblerspr&k
processen. Detta betyder att du kan kiara dig utan den gamla HC II .-instruktionen INX,
i HC12 bestâr av nOrmare 200 olika
specielit när du viii inkrementera med 2, 3, 4 eller mer!
instruktioner, vilken kan tyckas vara
ett avskräckande stort antal om man
LBRA Label
är nyborj are. Detta ar dock inte alls
Med HC II kunde du alitid hoppa med hjalp av BRA, men ailtid fOr kort. LBRA eliminerar 8-
sâ hopplost som det kanske verkar
bitars hoppregionen. Naturligtvis behöver denna instruktion ett byte till.
eftersom instruktionerna ar arran-
gerade i logiska grupper och vissa
EXG D,X
instruktioner anvOnds ganska sällan.
Känner du till XGDX? Detta är samma sak. Vad är fördelen? EXG arbetar med alla regis-
Om du hanterar problemen ett steg i
terkombinationer, du kan till och med blanda 8-bitars och I 6-bitars register!
taget kommer du inte att ha nâgra
svarigheter att reda Ut detta.
PSHD
Du kan nu gOra PSHB, PSHA snabare. PSHD gOr alla 16 bitarna pa en gang.
Fran HC11 till HC12
SEX
Far tidigare HC 1 1-användare är det
Denna har inkluderats for art öka forsaljningen av CPU 12 referensmanual. FOrutom detta
särskilt enkelt. Eftersom alla de väl-
kommer ocksâ instruktionen 'Sign EXtended' väl till pass i C-kompilerare.
kända HC11-instruktionerna firms
med i HC12-setet behävs ingen ini-
tial anpassning. Befintliga HC11-pro-
gram kan âteraversättas med hjOlp _iDIXi
av en Iamplig HC12-assembler utan Ee edit w jemoy ebos Preakpoffit fiun Erocesso Qption dow 11*
att nagra felmeddelanden ge-ner-
eras. Atminstone när det gäller
ISTEII J —ox ®J II? IIThIP?1I W1 I
A B X Y PC SR CC NVTBDIZC
(matematiska) algoritmer kan du 00 r 0899 OBDO .r 0BFE B.:: ijiijuj
spara en hel del tid pa att âter- #xnclude <hcl2.h>
använda redan befintliga program-
källor. Men att âteranvända rutiner unsigned char p

som adresserar specifika kontroll- void main(void)


register i mikrokontrollerna har inte
lika stora utsikter att lyckas. Själv- DDRS = 0x04;
while(l) {
klart kommer ett HC11-program som p PORTS I 0x04;
adresserar serieporten (SCI) inte lan- PORTS =
gre att fungera korrekt med HC12 p = PORTS & 0x04;
:ro PORTS
om adressen och meningen med
SCI-registret har ändrats.
HC12 skall dock inte erthart be-trak-
tas som bara en snabbare, kom-pat- 100 00
ibel efterfäljare till HC 11. Denna nya
1E1 RedI -

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.

2/2001 AlIt cm Elektronik 37


hel del ytterligare forbättringar,
Program merungsti ps och tricks ssom nya instruktioner och adres-
seringsmod. N&gra av de stärre for-
Nir man slutligen ar klar med programmet, men det ändâ inte fungerar, är det ofta svârt att
bättringarna beskrivs i textrutan
veta vad man skall gOra. Det finns dock nâgra tamligen vanliga fel elier problem. De fOljande
Nya HC12-instruktioner'.
fem är de viktigaste när det oiler HC I 2-programmering.

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-

38 Alit om Elektronik 2/2001


kompileraren. I detta fall kan du välja mellan
Programexempel for serielit inter- assemblerspràk, C eller en kombination av
dessa.
face Som nyborjare skall du dock ailtid barja med
assemblersprâk eftersom detta är det enda
sätt pa vilket du direkt kan följa hur sam-
spelet mellan hârdvaran och mjukvaran far
File: SCI12.A mikrokontrollern fungerar. De insikter du far
Func: Serial-I/O via the Serial Communication Interface (SCIO) pa detta sätt är mycket nyttigt näi du langre
fram Winder dig mot hognivâsprâk. Om du
letar efter en lamplig assembler kommer du
CPU 68HC12 snabbt stäta pa namnet Alfred Arnold'. Dea-
include Ireghcl2.inc , ne författare till den universella assemblern
AS har stätt HC12 sedan 1996. AS har tvâ
framtradande fördelar, den är universell, vil-
SCOBD egu SCOBDH ket betyder att den kan användas for alla
SCOCR equ SCOCR1 typer av mikroprocessorer (inklusive HC11
och en serie andra mikrokontrollers) och den ar
gratis, vilket ofta är ett avertygande argu-
Furic: Initialize SCI (9600 Baud, 8Nl, Polling Mode) ment, speciellt for privatanvändare.
Args: - Att skriva program i assemblersprâk är inte
Retn: - särskilt enkelt och du mâste skaffa dig er-
Dest: D farenhet genom praktik. Om du inte vet ett
dugg om detta sâ skall du bOxa med att spen-
initSCl ldd #26 19200 Sd dera lite tid tillsammans med en eller tvâ
std SCOBD introduktionsböcker for HC 11-programme-
ldd #$000c 8N1, TE + RE ring. Alit du lar dig om HC 1 1-programmering
std SCOCR ; A:B -> SCOCR1:SCOCR2 kan du direkt använda pa HC12.
rts Att anvànda assemblern är ganska enkelt,
âtminstone i jämfOrelse med utvecklingen av
källlcoden. I rutan Anropa AS assembler' firms
en provsekvens i form av en batchfil fOr DOS
Func: Test if any character available (received)
som anropar assemblern, skickar den Ons-
Args: -
kade assemblerfilen och slutligen genererar
Retn: A = 0 (Z = 1) -> no char
den laddbara S-Recordfilen (i ett separat steg
A <> 0 (Z = 0) -> char available
när det galler AS). Den visade batchfilen kan
Dest: -
aropas direkt fran PFE-editorn med hjalp av
en snabbtangent, vilket gOr programmerin-
testSCl ldaa SCOSR1 read status
gen lite bekvämare.
anda #$20 receive data reg full?
rts returns 0, if no data
Overföring av kod
Snart kommer du fram till det 'sanningens
Func: Get character from SCI (wait for) ogonblick' nar du skall starta det fãrdiga pro-
Args: - grammet fOr fOrsta g&ngen. Färst mâste du
Retn: A = char dock ladda in programmet i mâlsystemets
Dest: - minne. Det firms flera sätt att gora detta p&
Det färsta sättet är den klassiska monitorlOs-
getSCI brclr SCOSR1,$20,getSCI receive data reg full? ningen. I detta fallet firms det ett monitorpro-
ldaa SCODRL read out data gram tillgängligt pa mikrokontrollerkortet.
rts. Detta stycke firmware dr placerat i en liten
region av minnet hos mâlsystemet, som i EE-
PROMet hos MCUn.
Func: Send a character via SCI När mâlsystemet är anslutet till PCn via en
Args: A = char serielänk kan du se uppstartsmeddelandet for
Retn: - monitorprogrammet. Pa PC -sidan använder
Dest: - du ett terminalprogram fOr att visa de inlom-
mande tecknen pa skàrmen och for att sända
putSCI brclr SCOSR1,$80,putSCI transmit data reg empty? dma tangenttryckningar till mâlsystemet.
staa SCODRL send data Terminalprogrammet skall ocksâ ha en upp-
rts laddningsfunktion sâ att filer kan transpor-
teras fran PCns hárddisk till mâlsystemet.

2/2001 AlIt om Elektronik 39


Denna funktion behövs for att kunna ladda GD. Signalens interaktion pa BDM- av hexdumpar, medan den aktuella
HC12-programmet i form av en S-Recordfil. I interfacet är ganska komplex (se del statusen hos processorregistren vi-
praktiken gâr detta till pa foljande sätt: Först 1 av derma artikelserie) och mycket sas i separata delar av fOnstret.
startar du monitorprogramniet och i terminal- snabb. Det är ocksa därfOr som en Dessutom visar ett annat fOnster in-
fönstret ser du vãlkomstmeddelandet. Nu BDM-pod ailtid maste finnas mellan nehallet i programminnet i disas-
knappar du in laddningskommandot pa tan- den PC som mjukvaran utvecklas pa semblerad form. Brytpunkter kan
gentbordet (till exempel L<ENTER>). Efter och BDM-interfacet pa malsystemet. laggas in i detta fOnster och pro-
detta talar progranimet om att det äi redo att BDM-poden översãtter datastrOm- gramexekveringen kan ocksa fOljas
ta emot en S-Recordfil. Du startar dA upp- men när det gäller innehall, signal- ett steg i taget (Se figur 1). N -
laddningsfunktionen i terminalprogrammet nivaer och timing fran BDM till RS- aturligtvis har all denna bekväm-
och väljer den önskade filen och PC-n skickar 232 och tvärtom. lighet ett pris. Professionella grafiska
dâ iväg derma fil till mâlsystemet. Nãr filen Det firms tvâ former av avbugg- avbuggningsprogram (som till exem-
skickats Over sander monitorn tilibaka sys- ningslOsningar som fungerar via pel ZAP fran Cosmic) kostar nagra
temprompten som en bekräftelse pa detta BDM. Den fOrsta av dessa baseras tiotusentals kronor. Om du bar lite
och programmet firms flu i minnet pa HC12- pa en kommandoradsonenterad lOs- mer modesta krav kan du dock hitta
systemet. ning Här används ett terminalpro- attraktiva avbuggningslOsmngar fOr
Den enda kritiska faktorn när det galler att gram fOr att styra poden och dàrnied HC12 till betydligt lägre priser. Vi har
välja ett lämpligt terminaiprogram (eller kom- det anslutna mâlsystemet. Detta lik- goda erfarenheter av, bland andra,
munikationsprogram som det ocksâ kallas) àr nar mycket den tidigare beskrivna StingRay (skrivet av Sid Price) och
att se till att det uppfyller mâlsystemets krav lOsningen fOr programnedladdning, John Hartmans NoICE Debugger.
pa timing. Att ställa in dataoverforingshastig- med en viktig skillnad: Monitorns
heten (baud rate) är i allmänhet inget pro- firmware kOrs i poden i stället fOr i Sammanfattning
blem, men det skall ocksâ finnas mOjlighet att mJsystemet och utnyttjar inte nâgra
aktivera en 'vanta'funktion. Om programOver- resurser hos mâlsystemet! Eftersom Det är vart att ta steget in i HC12-
fonngen tar en stor mangd programmerings- vi inte behOver ta begränsningarna i programmering av tvâ skäl. FOr det
tid i mâlsystemets minne mâste terminaipro- m&lsystemet med i berakgen när fOrsta erbjuder Motorolas 16-bitars-
grammet vänta pa en bekräftelse (acknow- det galler kodstorleken, sa är det familj solida prestanda utan att pla-
ledgement) fran monitorn efter vafle rad som mOjligt att implementera mycket cera stora hinder framfOr program-
sänts Over. Detta ser till att den behavliga kraftfulla BDM-baserade monitorpro- meraren i form av komplexitet hos
programmeringstiden (till exempel 10 ms per gram. mikrokontrollem. FOr det andra firms
EEPROM-lokalisering) inte avbryts i förtid av Ett typiskt exempel pa denna typ av alla tankbara verktyg tillgangliga,
att det kommer en ny S-Recordrad. Gamla BDM-verktyg är B32EVB fran Motor- inklusive sadana som kan erhallas
TERMINAL.EXE fran Windows 3.1 uppfyller ola. Detta är ett handflatestort krets- gratis, som shareware eller som
detta krav. Om du vill ha nagot modernare kort med en RS232-kontakt (9-polig prisalternativ'. Det enda Ovriga du
kan du ladda ner Uwe Altenburgs gratis-pro- d-sub) och en BDM-utgang i form av behOver räkna med är kostnaden for
gram OC-Console fran Elektronikladens web- en standard 6-polig header. En HC12 ett mikrokontrollerkort. Den 'seriOse'
sida: används ocksâ pa detta kort (en HC användaren skall ocksa inkludera en
912B32), men detta är dock inte rel- BDM avbuggare i sin verktygslada.
evant fOr dess funktion som BDM- Du kan hitta länkar till den mjukvara
pod. Under senare tid har det varit som angetts här pa fOrfattarens hem-
leveransproblem med detta ganska sida vid
Via bakdörren dyrbara Motorolaverktyg, men
ZWERG32 kan användas som ett al- (httn://hcl2web.de),
Vi bar just sett hur programOverfanngen gâr ternativ (kolla med svenska Lawicel
till när det redan firms ett monitorprogram i pa www.lawicel.com ) tillsammans med en mängd ytter-lig-
malsystemet. Intelligenta programmerare are information och resurser som ar
undrar flu formodligen hur monitorprogram- Och genom fönstret relaterade till HC12.
met i sig självt laddas in i HC12. Denna frâga En bra svensk websida hittar du vid
kräver ett svar. Den andra kategorin av BDM-verk- www.lawicel.com
Motorola har kommit fram med en speciell tyg bestar av avbuggare med gra-
bakdörr' fOr HC12. Det är mOjligt att f& till- fiska användannterface. Dessa firms
gang till alla minnesadresserna via denna mest som Windowsbaserad mjuk-
bakdörr. Och i viss utstrackning kan du via vara som använder en pod med en
denna titta in i' mikrokontrollern. Detta är seriell eller parallell anslutning fOr
dock inte allt, det är ocksâ mojligt att aktivt kommunikation med mâlets hard-
ändra minnesplatser, stoppa CPUn, modifiera vara. Med en grafisk lOsning ar det
processorregistren och kOra mikrokontroller- naturligtvis mOjligt att visa en stor
program i 1-stegsmod. mangd data samtidigt pa ett betyd-
Arbetssättet hos HC12 for att köra denna ligt battre sätt, medan samtidigt
bakdOrr kallas fOr Background Debug Mode, detaijerna angâende BDM-kontrol-
eller BDM. BDM-interfacet bestâr av en enda lern dOljs fOr användaren. Som en re-
dubbelriktad signallinje som betecknas BK- gel kan mirinesregioner visas i form

40 AlIt om Elektronik 2/2001


GBPB GameBo y
Prototyping Board
En utvecklingshjalp for GameBoy
Design av L. Lemmens

I tidigare artikiar har vi


bevisat att Nintedo
lampar sig for betydligt
seriOsare uppgifter an aft
bara spela spel pa. Det
samlingsoscilloskop som
vi presenterade I
nummer 10 och 11/2000
var ett utmärkt exempel
pa detta. I fOrra numret
presenterade vi en
uppfOljningsartikel cm
utvecklingsverktyg far
GameBoy. Denna mânad
är det dags att erbjuda
lite hjalp mom hârdvaru-
departementet.

42 Alit om Elektronik 212001


+5V

+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

Figur I. Kretsschemat over GameBoy Prototyping Board (GBPB).

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

2/2001 Alit om Eleklronik 43


Figur 2. Kretskortsdesignen.
KOMPONENTLISTA

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

44 Alit om Elektronik 2/2001


)

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-

2/2001 Alit om Elektronik 45


Onivandlare for
MIDI till spanning
med 16 oberoende spanningskallor
Design avj. Scherpenisse

Aven om MIDI (Musical Instrument Digital Interface) Iran bOrjan


utvecklades fOr att styra musikinstrument, sâ kan det ocksâ anvandas
for mânga andra andamâl. I den krets vi presenterar här anvands
MIDI-signaler for att ställa in ett antal Iikspänningar (DC). Upp till 16
utgângsspänningar kan justeras oberoende av varandra.

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.

2/2001 AlIt om Elektrortik 47


plexer och sample & hold kretsar. De sist- 'control change' meddelanden med Eftersom data for den sista (sex-
nämnda är speciellt kansliga när det gäller kontroilnummer mellan 48 och 64 (till tonde) omvandlaren skicicas Ut först
korrekt timing av sample & hold signalerna. exempel) pa kanal 1. Om ett sâdan och data fOr den fOrsta omvandlaren
LT1452 bar ett seriellt skiftregister vid sin meddelande hittas sâ lagras 'värde' skickas sist, är det mOjligt att ute-
ingâng, som följs av ett latchregister som ar parametrarna (det tredje bytet i lämna en eller flera omvandlare utan
kopplat till den egentliga omvandlaren. meddelande) i en tabell. I tiden mel- att gOra nâgra fOrandnngar i resten
Skiftregistret bar ocksâ en seriell utgkg sâ lan interrupterna sander huvudpro- av h&rdvaran eller mjukvaran.
att flera omvandlar-IC enkelt kan sene-kop- gramloopen kontinuerligt innehallet i LTC1452-omvandlaren har en upp-
plas. denna tabell, bit fOr bit, till omvand- lOsning pa 12 bitar, av vilka endast 7
Med en matningsspänning pa +5 V kan Ut- lar-ICn via processorns utgangsport bitar används här. Detta resulterar i
gângen fran LTC 1452 direkt leverera en span- Bi. Efter vane databit genereras en 128 steg, villcet betyder att stegstor-
ning mellan 0 och 5 V. For hogre spànningar, skiftpuls pa port B2. När alla data- leken är 39 mV när den maximala Ut-
eller tunga belastningar, mâste en buffert lag- bitarna fOr de 16 omvandlarna har gângsspanningen är 5 V. Standard
gas till. skickats Ut sands en latchpuls via MIDI-kontrollervärden har sju data-
Interruptrutinen i processorn scannar MIDI- B2. Derma äverfOr data i alla 16 om- bitar. Det är dock mojligt att använ-
inga.ngssignalen far att se om det finns nâgra vandlarna till deras interna latchar. da 14-bitars kontroller med MIDI,

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

48 Alit om Elektronik 2/2001


W-- WAU FA N11111,111

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.

2 2001 AlIt om Elektronik 49


detta kräver dâ tvâ kontrolleradresser, och Oppna ('1111') väljs MIDI-kanal 16. En programmerad PlC firms art kOpa
sâledes tvâ 'control change' adresser. Denna MIDI-signalen matas till port RBO pa fr&n oss (ordernummer 000158-41).
mojlighet är inte (ännu) implementerad. I PICen via DIN-kontakt Ki. Opto-kop- Om du vill programmera din egen
denna version sands foljaktligen endast sju plaren 1C2 ger elektrisk isolering 16F84 kan du ladda ner kàllkodsfflen
bitar far vafle DAC, och de mste 'paddas' mellan MIDI-kä.11an och kretsen, vii- fran var hemsida vid webadressen
med fern nolthitar och fern extra skiftpulser ket ax det vanhiga när det galler MI- (httD://www.alltomelektronik.com/
per omvandlare. Referensspanningen fOr om- DI-utrustning. Download), men den firms ocksâ att
vandlarna àr satt till 2,5 V med hjalp av span- En 10-MHz kristall med tvâ konden- kopa p& diskett fran oss, ordernum-
ningsdelaren R7/R6 och bufferten 1C4. Detta satorer ger kiocksignalen for PICen. mer 000158-11, se Läsarservice.
ger en maximal utg&ngsspan'g pa 5 V. Ut- Det firms ocksâ en 5-V regulator pa Har du minsta vana vid att löda bor-
gângssignalerna fran samtliga ornvandlare kretskortet, s& en enkel, ostabilise- de det inte uppstâ nâgra problem
firms pa kontakten Ki. rad nätadapter som lämnar 9-12 V med att bygga kretsen. Alla kon-tak-
Fyra DIP-switchar ãr anslutna till port A pa (20 mA max.) kan användas som nat- ter sitter utefter kortets ena sida och
processorn. Dessa kan användas for att ställa aggregat. den kan därfOr lätt monteras in i en
in kontrolltalen. Det binära värdet pa port A lämplig lâda. En standard MIDI-
(fyra bitar med A0=minsta signifikanta bit) Själva bygget kabel kan användas for anslutning
skiftas tre bitar at vãnster nãr matnings- till den apparat som lämnar kontroll-
spänningen switchas till. Detta ger steg om Kretskortslayouten i figur 2 har data.
8, alltsâ 0, 8, 16 ... 120. Detta värde används utvecklats far detta projekt. Kortet
sedan sorn startvärde fOr de kontrolltal som firms inte att kopa fãrdigt fran oss, C(O5-1i

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:

J Eiektronisk taming (vàrde ca 100:-). Nr 1 Namn.............................................................


Adress............................................................
J Eiektronisk juigran (värde ca 100:-) Nr 2 Postadress .....................................................
Skicka kupongen (eller en kopia) till Alit om Elektronik, Box 5505, 141 05 Huddinge
Du kan ocksâ ringa PressData, 08-799 63 25 (säkraste sättet)
Det gâr utmärkt att eposta till pren@alltomelektronik.com och beställa prenumeration.
Glöm inte att ange namn och adress samt vilken byggsats du viii ha (1, 2 eller 3). Skickas nar prenumerationen är betaid.

You might also like