Upload
others
View
2
Download
1
Embed Size (px)
Citation preview
projekte internet
24 elektor - 4/2008
EIR – das Elektor-Internet-RadioRadio hören mit modernsten ChipsVon Harald Kipp und Dr. Thomas Scherer
Das waren Zeiten, als man Töne noch analog einer Hochfrequenz aufmodulieren musste, um diese dann zu empfangen und daraus mehr oder minder gut Hörbares zu machen! Das geht heute anders: Audiosignal komprimieren, in IP-Päckchen verpacken, streamen, empfangen, puffern, dekomprimieren und schon hat man auf alle Internet-Radios dieser Welt Zugriff. Alles ganz einfach dank State-of-the-Art-Hardware, um die es hier geht...
Internet-Radio ist etwas ganz Eigenes, denn mit diesem Angebot an Musik und Informationen kommt kein noch so empfindlicher Kurzwellenempfän-ger auch nur annähernd mit und in Sa-chen Klangqualität sowieso nicht. Da die zugehörigen „Internet-Sendestati-onen“ ja auch nicht hunderte von kW an elektrosmogener Hochfrequenz in die Luft pusten müssen, kommt der Betrieb eines solchen Senders für kleinere Benutzergruppen also ganz schön preiswert.Es gäbe noch viel über die Vorzüge dieser neuen Art von Radio zu erzäh-len (siehe Kasten), doch wichtiger ist die Klärung der Frage:
Warum nicht reine Software?Zunächst ist zu sagen, dass es diver-seste Programme (WinAmp, iTunes, VLC etc.) vollkommen kostenlos für alle möglichen Betriebssysteme gibt, mit denen man Internet-Radio hören kann. Einen PC, einen Mac oder eine Linux-Maschine hat der Mensch des 21sten Jahrhunderts ja sowieso he-rumstehen. Weshalb also Geld für ein nichtvirtuelles, physisches Gerät aus-geben und gar noch selbst bauen?Nun, zum einen braucht die Hardware-Grundlage eines Software-Radios Strom und das für diesen Zweck nicht zu knapp. Wer viel Radio mit dem PC via Internet hört, der handelt grob unö-kologisch. Die hier vorgestellte Lösung kommt mit gerade mal 1 W an Ener-gieverbrauch aus. Bei 10 h Betrieb pro
Tag hat sich das EIR gegenüber einem Gamer-PC als Radio schon innerhalb eines Jahres allein durch die einge-sparten Stromkosten amortisiert.Zum anderen gibt es Anwendungen, bei denen ein PC nicht clever ist: Beim Anschluss an eine Stereo-Anlage bei-spielsweise. Ein selbst gebautes Inter-net-Radio auf Open-Source-Basis kann man prima erweitern und an spezielle Anforderungen anpassen und last not least spielt das EIR auch weiter, wenn der PC hängt oder abgestürzt ist ;-)
Das PrinzipDa es sich beim EIR um ein komplexes Projekt mit modernster Technik han-delt, ist es unmöglich, alle relevanten Aspekte in einem einzigen Artikel ab-zuhandeln. In diesem Beitrag geht es daher um die Beschreibung der Hard-ware und um deren Aufbau und Inbe-triebnahme. Weitere Informationen fin-den sich in Dokumenten zum Artikel auf der Elektor-Website www.elektor.de, der Projekt-Website [1] und in zu-künftigen Beiträgen.Dass ein Internet-Radio Datenströme empfangen, puffern und dekodieren muss, dürfte klar sein. Ohne vernünf-tigen Mikrocontroller geht also gar nichts. Wie schon in der letzen Ausga-be [3] angedeutet, liefert eine ARM7-CPU [4] die dafür nötige Power.Bild 1 zeigt den grundlegenden Auf-bau: Die CPU (in der Mitte oben) hat Zugriff auf immerhin 64 MB an SD-RAM – genug für Puffer und ganz viel „Sons-
tiges“. Für die Firmware ist Platz in der CPU und zusätzlich gibt es auch noch 4 MB Flash-Speicher für stabil abzule-gende Daten. Eine durch einen Super-cap gepufferte Echtzeituhr ermöglicht die Realisierung eines Radio-Weckers oder sonstige zeitabhängige Applika-tionen. Damit die ARM7-CPU nicht völ-lig ausgelastet werden muss, wird sie bei der Audio-Dekodierung von dem darauf spezialisierten Chip VS1053 [5] unterstützt.An Schnittstellen ist das EIR wahrlich nicht arm: neben dem obligatorischen Ethernetanschluss – irgendwie muss das EIR ja ins Internet kommen – fin-den sich eine USB-Programmierschnitt-stelle zur Übertragung neuer Firmware, eine serielle und eine JTAG-Schnitt-stelle (gut fürs Debugging) und allei-ne drei nutzbare Erweiterungsstecker auf Port-Ebene.Damit Sendungen gegebenenfalls auf-gezeichnet werden können, ist auch noch ein Slot für eine MMC-SD-Spei-cher-Karte vorgesehen.
GenerellesHerein rauschende Datenströme sind in aller Regel so komprimiert, dass sich die typischen mit 16 bit aufgelösten und mit 44,1 kHz abgetasteten Stereo-daten statt mit rund 1,4 Mbit/s mit we-niger als einem Zehntel, nämlich mit 192 Kbit/s und weniger zufrieden ge-ben. Um einen Puffer mit rund 10 s Ka-pazität zu realisieren, sind daher rund 256 KB RAM ausreichend. Das scheint
254/2008 - elektor
EIR – das Elektor-Internet-RadioRadio hören mit modernsten Chips
heutzutage wenig, aber für einen Mi-krocontroller ist das immer noch hef-tig. Und wenn man sicher gehen will und auch noch Platz für Internet-Fein-heiten und „Sonstiges“ haben möchte, dann ist man schnell bei 512 KB und mehr. Die ausgewählte ARM7-CPU un-terstützt SD-RAM und so gibt es beim EIR mit den verfügbaren 64 MB keiner-lei Speicherplatzprobleme.Als Betriebssystem wurde das gegen-über Linux recht genügsame Nut/OS ausgewählt, das mit weniger als 40 KB auskommt. Alles in allem sind für die Software rund 200 KB nötig. Für Daten reichen 1 MB locker aus. Da die CPU alleine schon über 512 KB Flash für die Software verfügt und RAM in Massen zur Verfügung steht, gibt es keine Eng-pässe. Alle Software ist Open-Sour-ce - bis auf das Flash-Programm von Atmel.Der Controller ist übrigens leistungsfä-hig genug, um die SD-Karte zur paral-lelen Aufzeichnung eines zweiten Au-dio-Streams zu nutzen. Und es wird bestimmt nicht lange dauern, bis je-mand aus der Open-Source-Gemeinde dieses und andere denkbare Features nachrüstet.Um den möglichen Erweiterungen keine Richtung aufzuzwingen, wur-den auf dem Board keine expliziten Bedienungselemente wie Taster oder Display vorgesehen. Über die Erwei-terungssteckplätze kann Solches aber problemlos angeschlossen werden. Das EIR ist als Grundlage für eigene Erweiterungen konzipiert, und so ist
die bereitge-stellte Firmware für die Be-dienung über eine integrierte Webseite gedacht. Da die Firmware völlig offen ist, muss das aber nicht so bleiben...
DetailsWenn man einen Blick auf den Schalt-plan in Bild 2 wirft, wird einem die Komplexität des Projekts sofort klar. Die folgende Beschreibung orientiert sich daher an den Funktionsblöcken:
• EthernetDas Internet kommt über eine Ether-netbuchse mit integriertem Übertrager
und zwei LEDs an Bord. Die grüne LED leuchtet bei Datentransfer, während die gelbe das Vorhandensein einer Verbindung signalisiert. Der Ethernet-Verkehr wird von einem spezialisierten Chip (IC10 = DM9000E) abgewickelt. Der Buffer IC9 ermöglicht die Nutzung des WAIT-Eingangs der CPU durch Erweiterungen.
• Audio-DekoderZwar würde ein ARM7 für die soft-waremäßige Dekodierung vom MP3- oder AAC-Daten gerade so ausreichen, aber ein spezialisierter Chip wie IC7 entlastet die CPU beträchtlich und schluckt von Hause aus neben den
AT91SAM7SE512
5-24VPower Supply
VS1053Audio Codec
RS232
USBDevice / Prog.
DM9000EEthernet
64 MByteSDRAM
4 MByteDataFlash
ExpansionConnector
ResetButton
RTC / SuperCap
OLEDTouch Wheel
(later Upgrade)
Web Interface
MMC /SD-Card
JTAGConnector
Bild 1. Prinzipschaltung des Elektor-Internet-Radios.
projekte internet
26 elektor - 4/2008
12
34
56
78
910
1112
1314
1516
1718
1920
2122
2324
2526
2728
2930
3132
3334
K2
3536
3738
3940
Po
rt B
12
34
56
78
910
1112
1314
1516
1718
1920
2122
2324
2526
2728
2930
3132
3334
K1
3536
3738
3940
Po
rt A
12
34
56
78
910
1112
1314
1516
1718
1920
2122
2324
2526
2728
2930
3132
3334
K3
3536
3738
3940
Po
rt C
VB
US
K4
GN
D
US
B -
B
D–
D+S
1
S2
1 2 3 4
R1 27
Ω
R2 27
Ω
C5
22p
C6
22p
C8
10n
C7
1n
C9
22p
C10
22p
R3
1k5
R4
1k
X1
X1
= 18
,432
MH
z
21
43
65
87
109
1211
1413
1615
1817
2019
K6
JTA
G
R49A100k8 1
R49B100k7 2
R49C100k6 3
R49D100k5 4
+3V
3
NR
ST
TD
I
TM
S
TC
K
TD
O
S1
RE
SE
T
R6
10k
R5
1k
+3V
3
(op
tio
nal
)
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PA8
PA9
PA10
PA11
PA12
PA13
PA14
PA15
PA16
PA17
PA18
PA19
PA20
PA21
PA22
PA23
PA24
PA25
PA26
PA27
PA28
PA29
PA30
PA31
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PA8
PA9
PA10
PA11
PA12
PA13
PA14
PA15
PA16
PA17
PA18
PA19
PA20
PA21
PA22
PA23
PA24
PA25
PA26
PA27
PA28
PA29
PA30
PA31
C1
100n C
4
100n
JP1
12
34
56PA
10
PA9
PA6
PA5
MA
X32
22
R1O
UT
T1O
UT
T2O
UT
R2O
UT
SH
DN
IC2
T1I
N
R1I
N
R2I
N
T2I
N
EC
WN
C1–
C1+ C2+
C2–
EN
V+ V-
18 14
12
1617
13
15
11 10
5 6
1
7
42
3
8 9
PA7
PA8
PB
0
PB
1
PB
2
PB
3
PB
4
PB
5
PB
6
PB
7
PB
8
PB
9
PB
10
PB
11
PB
12
PB
13
PB
14
PB
15
PB
16
PB
17
PB
18
PB
19
PB
20
PB
21
PB
22
PB
23
PB
24
PB
25
PB
26
PB
27
PB
28
PB
29
PB
30
PB
31
PB
0P
B1
PB
2P
B3
PB
4P
B5
PB
6P
B7
PB
8P
B9
PB
10P
B11
PB
12P
B13
PB
14P
B15
PB
16P
B17
PB
18P
B19
PB
20P
B21
PB
22P
B23
PB
24P
B25
PB
26P
B27
PB
28P
B29
PB
30P
B31
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
PC8
PC9
PC10
PC12
PC13
PC14
PC15
PC16
PC17
PC18
PC19
PC20
PC21
PC22
PC23
C95
100n
C3
100n
C2
100n
L3
BL
M31
A
+3V
3
K5
RS
232
1 2 3 4 56 7 8 9
R48
A
22Ω
81
R48
C
22Ω
63
R48
B
22Ω
72
R48
D
22Ω
54
C11
C12
C13
C14RX
D
RT
S
TX
D
CT
S
G1
G2
BZ
A40
88
IC3
6 5
13
4
2
PC
0P
C1
PC
2P
C3
PC
4P
C5
PC
6P
C7
PC
8P
C9
PC
10
PC
12P
C13
PC
14P
C15
PC
16P
C17
PC
18P
C19
PC
20P
C21
PC
23P
C22 4x
220
p
NR
ST
+3V
3
PC
11
PC11
PA0
PA0
AD4
AD6
AD7
0710
81 -
11A
PC
[0...
23]
PB
[0...
31]
PA[0
...31
]
SD
CK
NR
ST
12
34
56
12
34
56
C97
100n
R46
15k
R47
22k
R10
1
0Ω
PB
23
SH
IEL
D-U
TR
ST
RT
CK
R10
50
Ω
R45
1k
R10
2
0Ω
SH
IEL
D-R
AD
4
AD
6A
D7
+VR
EF
AD
5
AD5
+3V
3
R10
5 n
ot
mo
un
ted
SH
DN
VIN
R10
6
0Ω
ER
AS
EJT
AG
SE
L
+3V
3+3
V3
Sh
ort
1 -
3 a
nd
2 -
4 fo
r D
BG
US
ho
rt 3
- 5
an
d4
- 6
for
US
AR
T0
Sh
ort
K3
pin
s 34
an
d 3
6to
era
se f
irm
war
e
Sh
ort
K3
pin
s 33
an
d 3
5fo
r b
ou
nd
ary
scan
tes
t
PA23
/SC
K1/
NW
R1/
NB
CS
1/C
FIO
R
PC20/A22/REG/NANDCLE/NCS7
PA18
/RD
/NB
S3/
CF
IOW
/AD
1
PA19
/RD
/NB
S4/
CF
CS
0/A
D2
PA20
/RF
/NC
S2/
CF
CS
1/A
D3
PC15/D15/NCS3/NANDCS
PA21
/RX
D1/
NC
S6/
CF
CE
2
PA22
/TX
D1/
NC
S5/
CF
CE
1
PA17
/TD
/A17
/BA
1/A
D0
PA26
/DC
D1/
NC
S1/
SD
CS
PC21/NWR0/NWE/CFWE
PB
16/T
IOB
1/A
16/B
A0
PB
0/T
IOA
0/A
0/N
BS
0
PB
1/T
IOB
0/A
1/N
BS
2
PB
17/P
CK
1/A
17/B
A1
AT
91S
AM
7SE
512-
AU
PC19/A21/NANDALE
PA0/
PW
M0/
A0/
NB
S0
PA1/
PW
M1/
A1/
NB
S2
PC17/A19/NANDOE
PC18/A20/NANDWE
PC23/CFRNW/NCS0
PA16
/TK
/A16
/BA
0
PA24
/RT
S1/
SD
A10
PA25
/CT
S1/
SD
CK
E
PB
10/N
PC
S2/
A10
PB
15/T
IOA
1/A
15
PB
22/N
PC
S3/
D20
PB
26/T
IOA
2/D
24
PB
27/T
IOB
2/D
25
PB
28/T
CL
K1/
D26
PB
29/T
CL
K2/
D27
PB
30/N
PC
S2/
D28
PC14/D14/NPCS1
PC16/A18/NWAIT
PA11
/NP
CS
0/A
11
PA27
/DT
R1/
SD
WE
PA31
/NP
CS
1/D
31
PB
11/P
WM
0/A
11
PB
12/P
WM
1/A
12
PB
13/P
WM
2/A
13
PB
14/P
WM
3/A
14
PB
18/P
CK
2/D
16
PB
20/IR
Q0/
D18
PB
21/P
CK
1/D
19
PB
23/P
WM
0/D
21
PB
24/P
WM
1/D
22
PB
25/P
WM
2/D
23
PB
31/P
CK
2/D
29
PC10/D10/PCK0
PC11/D11/PCK1
PC12/D12/PCK2
PC22/NRD/CFOE
PA10
/DT
XD
/A10
PA12
/MIS
O/A
12
PA13
/MO
S1/
A13
PA14
/SP
CK
/A14
PA28
/DS
R1/
CA
S
PA30
/IRQ
1/D
30
PB
3/N
PC
S3/
A3
PB
4/T
CL
K0/
A4
PB
5/N
PC
S3/
A5
PB
8/A
DT
RG
/A8
PB
9/N
PC
S1/
A9
PB
19/F
IQ/D
17
PA29
/RI1
/RA
S
PB
2/S
CK
0/A
2
PB
6/P
CK
0/A
6
PB
7/P
WM
3/A
7
PC8/D8/RTS1
PC9/D9/DTR1
PA2/
PW
M2/
A2
PA4/
TW
CK
/A4
PA5/
RX
D0/
A5
PA6/
TX
D0/
A6
PA7/
RT
S0/
A7
PA8/
CT
S0/
A8
PA9/
DR
XD
/A9
PA15
/TF
/A15
PA3/
TW
D/A
3
PC13/D13
AR
M7T
DI
JTAGSEL
PC0/D0
PC1/D1
PC2/D2
PC3/D3
PC4/D4
PC5/D5
PC6/D6
PC7/D7
PLLRC
ERASE
XOUT
NRST
SDCK
IC1
106
105
104
103
102
101
100
117
116
115
114
113
112
111
110
109
108
107
DDM121
DDP122
TDI
TMS
TCK
TDO
127
126
XIN125
TST
AD4
AD5
AD6
AD7
69 68 67 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 44 43 42 41 40 39 38 37 36 35 34 3399
98
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
32 31 30 29 28 27 26 25 24 20 19 18 17 16 15 14 13 12 11 10
65
77
76
66
78
74
73
75
97
9
6
5
4
3
JTA
GS
EL
ER
AS
E
PA8
PA7
TX
DJP
RX
DJP
Bild 2. Die konkrete Schaltung des EIR macht augenblicklich klar, dass es sich hier um ein anspruchsvolles Projekt handelt.
2a
274/2008 - elektor
K10
RC
T
TX
+
TX
-
TC
T
RX
+
RX
-
NC
NC
10 1112
S1
S2
91 2 3 4 5 6 7 8
D1
PM
EG
3005
AE
A
X4
32.6
78kH
z
C34
22p
C35
100n
C36
5V5
0F33
Su
per
Cap
R34
100k
R33
10k
R32
10k
+3V
3
R35 0
Ω
RT
CB
ZA
4088
IC6
6 5
13
4
2
BZ
A40
88
IC8
6 5
13
4
2
K8
3 5 124
Au
dio
Ou
t
C18
47n
+3V
3
R12 10
Ω
R11 10
Ω R16
10Ω
R15
22Ω
R14
22Ω C21
10n
C22
10n
C23
47n
K9
3 5 124
Au
dio
In
C29
47n
+3V
3
C24
1µC25
1µ
R21 47
0Ω
R19 47
0Ω
X2
12.2
88M
Hz
R17 1M
C20
22p
C17
22p
R22
100k
C26
1µ
C27
10n
C28
10n
R13
100k
R9
100k
R10
100k
+3V
3
PA12
PA13
PA14
PA31
PA30
AT
45D
B32
1D-S
U
IC5
SC
K
RS
T
WP
SI
CS
SO
1
6 7
2
34
58
C19
100n
+3V
3
CD
/DA
T3
SH
IEL
D
SH
IEL
D
DA
T1
VC
C3
DA
T0
DA
T2
K7
CH
2
CM
D
GN
D
CL
K
GN
D CMN
CH
1
CDCD
WPWP
8 1234567 9
C
R50A10k8 1
R50B10k7 2
R50C10k6 3
R50D10k5 4
C15
10µ
C16
100n
+3V
3
R7 0
Ω
R80
Ω
MM
C/S
D-C
ard
So
cket
PA19
PA18
PA16
PA17
PA15
PA20
R24
50Ω 1%
R25
50Ω 1%
PC
0
PC
1
PC
2
PC
3
PC
4
PC
5
PC
6
PC
7
PC
8
PC
9
PC
10
PC
11
PC
12
PC
13
PC
14
PC
15
PC
17
PC
21
PC
22
+3V
3
R27
1k
R26
1k
+3V
3
R29
50Ω 1%
R30
50Ω 1%
C31
100n
X3
25M
Hz
C32
22p
C33
22p
R31
6k8 1%
R28
1k
+3V
3
PC
0
PC
1
PC
2
PC
3
PC
4
PC
5
PC
6
PC
7
PC
8
PC
9
PC
10
PC
11
PC
12
PC
13
PC
14
PC
15
PB
2
PB
3
PB
4
PB
5
PB
6
PB
7
PB
8
PB
9
PB
10
PB
11
PB
13
PB
14
PB
16
PB
171
6
IC9.
A
PC
16
R23
10k
+3V
310
/100
Mb
it E
ther
net
DM
9000
EL
INK
AC
T
CL
K20
MO
WA
KE
UP
PW
_RS
T
IOW
AIT
LIN
K_O
RX
_CL
K
TX
_CL
K
LIN
K_I
SP
EE
D
TX
_EN
RX
_DV
RX
_ER
TE
ST
1
TE
ST
2
TE
ST
3
TE
ST
4
TE
ST
5
BG
RE
S
GP
IO0
GP
IO1
GP
IO2
GP
IO3
IC10
SD
10
SD
11
SD
12
SD
13
SD
14
SD
15
TX
O+
TX
O-
RX
I+
RX
I-
IO16
TX
D0
TX
D1
TX
D2
TX
D3
RX
D0
RX
D1
RX
D2
RX
D3
MD
IO
EE
DO
EE
DI
EE
CK
EE
CS
SD
0
SD
1
SD
3
SD
4
SD
5
SD
6
SD
7
SD
8
SD
9
SD
2
SA
9
SA
8
SA
7
SA
6
SA
5
SA
4
DU
P
IOW
IOR
RS
T
CM
D
INT
100
AE
N
CR
S
CO
L
MD
C
2221
98 97 96 95 94
11
93
12 13 89 88 87 86 85 84 83 82
X1
X2
10 62 61 60 33 34 29 30
7980 149291 54 43 44 45 46 50 51 52 53 38 39 40 41 56 57 59 78 47 49 37
SD
24
16 17 18 19 48 65 64 66 67 2668 69 70 716 7 98
2 1 4 3
PB
2
PB
20 PA20
PA12
PA13
PA14
PA11
PC
F85
63T
IC11
OS
C1
OS
C0
SD
A
SC
L
INT
CL
K
1
5
8 4
6
2
3 7
PB
31
PB
19
PB
30
PA27
PA25
PA4
PA3
PA29
MT
48L
C32
M16
A2
SD
RA
M
IC4
DQ
ML
DQ
MH
D10
A10
D11
A11
D12
A12
D13
D14
D15
BA
0
BA
1
CA
S
RA
S
CK
E
CL
K
23A
0D
024
A1
D2
25A
2
D3
26A
3
D4
29A
410
D5
30A
511
D6
31A
613
D7
32A
742
D8
33A
844
D9
34A
945
22
4735
4836
50 51 53
20 21 19C
S16
WE
153917 18
3738
D1
2 5 7 84
PA23
PB
0
PA28
PC18
PC19
PC
18
PC
19
PA24
PB
0
MP
3 D
eco
der
PC
[0...
23]
PB
[0...
31]
PA[0
...31
]
SD
CK
NR
ST
SD
CK
64M
Byt
e S
DR
AM
4 M
Byt
eS
eria
l Fla
sh
+3V
3
IC95 2
C96
100n
IC9
= N
C7W
Z07
P6X
0710
81 -
11B
gre
en
Act
ivit
y
yello
w
Lin
k
A
A
R10
3
0Ω R L R L
34
IC9.
B
C30
100n
R10
4
0Ω
GP
104/
I2S
_LR
OU
T
GP
107/
I2S
_SD
ATA
GP
105/
I2S
_MC
LK
GP
106/
I2S
_SC
LK
GP
103/
SD
ATA
XD
CS
/BS
YN
C1
GP
102/
DC
LK
MIC
P/L
INE
1
VS
1053
B-L
LIN
E2
XR
ES
ET
GP
101
GP
100
XTA
LO
XTA
LI
RIG
HT
XT
ES
TIC
7
RC
AP
MIC
N
LE
FT
GB
UF
DR
EQ
SC
LK
VC
O
XC
S
12
44
112536103433
1718
484639 42
15132328S
I29
SO
30
32
RX
26
TX
27
9
1 2
8
3
R20
100k
C99
100µ
16V
C98
100µ
16V
R18
0Ω
R10
0
0Ω
C10
0
10n
PA26
SH
IEL
D-C
SH
IEL
D-N
(VS
1053
may
be
rep
lace
d b
y V
S10
33)
Do
no
t m
ou
nt
R10
0b
efo
re r
emov
ing
R18
!
2b
projekte internet
28 elektor - 4/2008
gebräuchlichen MP3-Varianten auch HE-AAC und sogar Ogg-Vorbis-Daten. Gleichzeitig vereinfacht sich damit lo-gischerweise die nötige Software. Bei unserem Prototypen hatten wir ein Vor-ab-Muster von VLSI im Einsatz. Soll-te es Beschaffungsprobleme geben, kann man auch die Variante VS1033 (ohne Ogg Vorbis) einsetzen. Obwohl die CPU einen 1,8-V-Ausgang zur Ver-sorgung von Peripherie hat, wurde für IC7 aus Stabilitätsgründen ein eigener 1,8-V-Spannungsregler vorgesehen. Da die Variante VS1033 aber 2,5 V benö-tigt, müssen R39 und R42 dann auf je 100 kΩ geändert werden.
• Zusatz-FlashZum Betrieb des Radios sind umfang-reiche Einstellungen zu speichern, die auch nach einem Stromausfall verfüg-bar bleiben sollen - allem voran die Senderliste. Das ginge auch mit dem internen Flash-Speicher der CPU, aber
tor eine mit allen SMD-Bauteilen vorbe-stückte Platine (mit VS1053) an. Man muss also nur noch die normal bedrah-teten Bauteile bestücken und vermei-det so tückische Fehler. Unentwegten steht der komplette Eigenbau anhand der Layouts natürlich frei.
FunktionstestFür einen ersten Test der Stromversor-gung sollte die 3,3-V-Seite mit einigen mA belastet werden – also nicht leer laufen. Ab 4 V am Eingang wird der Schaltregler arbeiten und je nach Be-lastung 50...150 mA aufnehmen. Bei 24 V reduziert sich das auf 30...50 mA. Ist alles in Ordnung, leuchtet LED1. Sind die ICs bestückt, kann man mit einem Oszilloskop die Quarze auf Funk-tion testen. Wenn X1 schwingt, müsste sich die CPU ansprechen lassen.Die CPU ist schon von Hause aus mit einem Bootloader versehen, der außer
dieser ist umständlich zu beschreiben. Um dies zu vereinfachen, wurde ein serieller Flashspeicher (IC5) hinzuge-fügt, in dessen 4 MB sich auch umfang-reiche Senderlisten und mehr ablegen lassen.
• StromversorgungDamit das EIR auch wirklich wenig En-ergie verbraucht, wurde es mit einem Schaltregler (IC12) versehen. Bei Ein-gangsspannungen im Bereich von 5...24 V stehen rund 5 W bei 3,3 V zur Verfügung. Da das EIR selbst nur 1 W benötigt, bleibt noch genug Energie für eigene Hardware-Erweiterungen übrig.
• LötenDa es sich hier um eine mit winzigen SMDs dicht bepackte mehrlagige Pla-tine handelt (siehe Bild 3 und Bild 4), wobei einzelne IC-Pins nur 0,5 mm voneinander entfernt sind, bietet Elek-
K12
2
3
1
500mA F
F1
D4
SM6T24CA
L1
DLW5BTN102SQ2
21
34
D2
PMEG3005AEA
R36
10k
C40
1µ25V
C41
1µ25V
C42
100n
C37
10n
D5
PMEG3005AEA KP-1608URC
D3PMEG3005AEA
LT1616
BOOSTIC12
SHDN
GND
VIN
SW
FB
2
5
6
4
3
1
L2
10µ
C39
10µ
R41
10k
1%
R37
16k5
1%
R40
180
Ω
LED1C43
1µ
+3V3
LTC1844ES5IC13
SHDN
VOUT
GND
VIN
ADJ
-SD
2
1
43
5
R38
10k
R39
200k
1%
R42
470k
1%
C38
1n
C44
10µ
VX
C52
10µ
C51C50C49C48C47C46C45
10µ
6x 100n
C58C57C56C55C54C53 C59 C60
10µ
R43
22Ω
+3V3+3V3+1V8
7x 100n
POWER
+VREF
C72C71 C73C70
10µ
C68C67 C69C66
10µ
C63C62 C64C61
10µ
C65
R44
0 Ω
+3V3VX
A
C84C83C82C81C80C79 C85
7x 100n
C78
10µ
C77C76C75C74
10µ
+3V3+3V3
3x 100n
MT48LC128M16A2POWER
IC4
VDD VSS
VDD
VDD
VSS
VSS
VDDQ VSSQ
VDDQ
VDDQ
VSSQ
VSSQ
VDDQ VSSQ
28
14
27
41
54
43
12
46
49 52
1
3 6
9
DM9000E
AVCC3
POWER
AVCC3
AVCC3
VCC3N
VCC3N
VCC3N
VCC3N
VCC3N
VCC3N
VCC3N
IC10
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
GND
35 32
28 31
27 25
99
81
76
63
58
42
23
15
73
72
55
36
20
90
5
VS1053C-L
IOVDD0
IOVDD1
IOVDD2
DGND0CVDD0
CVDD1
CVDD2
CVDD3
AVDD0
AVDD1
AVDD2
DGND1
DGND2
DGND3
DGND4
AGND0
AGND1
AGND2
AGND3
IOGND
POWER
IC7
24
31
14
19
38
43
45
16
20
21
22
37
40
41
47
35
5 4
7
6
AT91SAM7SE512-AU
VDDFLASH
VDDCORE
VDDCORE
VDDCORE
VDDCORE
VDDCORE
ADVREF
VDDOUT
VDDPLL
VDDIN
VDDIO
VDDIO
VDDIO
VDDIO
VDDIO
IC1
GN
D
118
128
GN
D
120
123
GN
D
GN
D
GN
D
GN
D11
9G
ND
124
23
47
72
96
21
22
46
95
45 70 94
71
2
8 1
7
C94C93C92C91C90
10µ
+3V3
C89C88C87C86
10µ
+3V3
3x 100n 4x 100n 071081 - 11C
4x 100n
5V ...24VDC
red
SHDN
VIN
Replace R39 and R42 with 100k 1%for VS1033 (VX = 2V5)
+3V3
3x 100n
3x 100n
2c
294/2008 - elektor
der reinen Übertragung neuer Firmware auch die Kommunikation mit dem RAM und mit dem Flash-Speicher ermöglicht. Von Atmel gibt es unter [6] die Datei „AT91-ISP.exe“, die nach Entpacken das Windows-Programm „SAM-BA“ ent-hält. Nach dessen Installation verbin-det man das EIR via USB mit einem PC. Nach Einschalten der Stromversorgung sollte Windows automatisch den pas-senden Treiber aktivieren. Jetzt kann SAM-BA gestartet werden. Man muss dann als Verbindungsart USB und als Gerät das „AT91SAM7SE512-EK“ aus-wählen, welches zum EIR weitgehend kompatibel ist.Von der Elektor-Webseite zum Artikel kann eine einfache Firmware für Test-zwecke herunter geladen werden. Mit ihr und einer funktionierenden CPU plus der seriellen Schnittstelle können die anderen Bausteine wie Ethernet und Audio-Dekoder überprüft werden. Nach der Übertragung der Firmware muss dem EIR noch gesagt werden, dass es beim nächsten Start von die-ser Firmware booten soll. Hierfür unter „Scripts“ die Routine „Boot from Flash (GPNVM2)“ auswählen und auf „Exe-cute“ klicken - dann SAM-BA beenden und auf den Reset-Taster drücken. Nun wird das EIR via serieller Schnittstelle über ein Null-Modem-Kabel (Pins 2 und Bild 3. Der Bestückungsplan des EIR. Um Schwierigkeiten zu vermeiden, gibt es eine mit SMDs vorbestückte Platine.
StücklisteWiderstände:R1,R2 = 27 Ω, SMD 0402R3 = 1k5, SMD 0402R4,R5,R28,R45 = 1 k, SMD 0402R6,R23,R32,R33,R36,R38 = 10 k, SMD
0402R7,R8,R18,R35,R44 = 0 Ω, SMD 0402R9,R10,R13,R20,R22,R34 = 100 k, SMD
0402R11,R12,R16 = 10 Ω, SMD 0603R14,R15,R43 = 22 Ω, SMD 0402R17 = 1 M, SMD 0402R19,R21 = 470 Ω, SMD 0402R24,R25,R29,R30 = 50 Ω 1%, SMD 0402R26,R27 = 1 k, SMD 1206R31 = 6k8 1%, SMD 0603R37 = 16k5 1%, SMD 0603R39 = 200 k* 1%, SMD 0402R40 = 180 Ω, SMD 1206R41 = 10 k 1%, SMD 0402R42 = 470 k* 1%, SMD 0402R46 = 15 k, SMD 0402R47 = 22 k, SMD 0402R48 = 22 Ω, Array CAY16R49 = 100 k, Array CAY16R50 = 10 k, Array CAY16R100...R106 = 0 Ω*, SMD 1206 (nicht
erforderlich)* siehe Text
Kondensatoren:(SMD Keramik 6,3 V, falls nicht anders
angegeben)
C1...C4,C16,C19,C30,C31,C35,C42, C46...C51,C53...C59,C62...C65,C67...C69,C71..C73,C75...C77,C79...C85,C87...C89,C91...C97 = 100 n, SMD 0402
C5,C6,C9,C10,C17,C20,C32,C33,C34 = 22 p, SMD 0402
C7,C38 = 1 n, SMD 0402C8,C21,C22,C27,C28,C37,C100 = 10 n,
SMD 0402C11...C14 = 220 p, SMD 0402C15,C39,C44,C45,C52,C60,C61,C66,C70,
C74,C78,C86,C90 = 10 μ, SMD 0805C18,C23,C29 = 47 n, SMD 0402C24...C26,C43 = 1 μ, SMD 0805C36 = 0,1 F, Double Layer Cap
FG0H104Z135C40,C41 = 1 μ/25V, SMD 1206C98,C99 = 100 μ/16V, Tantal, SMD
Induktivitäten:L1 = DLW5BTN102SQ2 (Murata)L2 = 10 μ, MSS5131 (Coilcraft)L3 = BLM31A (Murata)
Halbleiter:D1...D3, D5 = PMEG3005AEA (Philips)D4 = SM6T24CA (STM)IC1 = AT91SAM7SE512-AU (Atmel)IC2 = MAX3222ECWN (Maxim)IC3, IC6, IC8 = Diodenarray BZA408BIC4 = MT48LC32M16A2IC5 = AT45DB321D-SU (Atmel)IC7 = VS1053C-L (VLSI)*IC9 = NC7WZ07P6X (Fairchild)IC10 = DM9000E (Davicom)
IC11 = PCF8563T (Philips)IC12 = LT1616 (Linear Technology)IC13 = LTC1844ES5-SD (Linear Technology)LED1 = KP-1608URC, rot, SMD 0603
(Kingbright)
Außerdem:X1 =18,432-MHz-Quarz, SMD HC49SMX2 = 12,288-MHz-Quarz, SMD HC49SMX3 = 25,000-MHz-Quarz, SMD HC49SMX4 = 32,678-kHz-Quarz, SMD MC-146F1 = Sicherung, 0,5 A flink mit Halter, SMD
OMNI-BLOK (Littelfuse)K1, K2, K3 = 40-polige Stiftleiste, 2,54-mm-
Raster, zweireihigK4 = USB-B-Buchse, AMP-787780K5 = 9-poliger Sub-D-Stecker, gewinkelt,
US-NormK6 = 20-poliger Wannenstecker, 2,54-mm-
Raster, zweireihigK7 = SD-Karten-Fassung, SMD FPS009-
2700 (Yamaichi)K8, K9 = 3,5-mm-Stereo-Klinkenbuchse,
SMD SJ1-3515 (CUI)K10 = RJ-45-Buchse mit Ethernet-Übertra-
ger und LEDs, SMD, RJLD-043TC (Taimag)K12 = DC-Buchse mit 2-mm-Stift,
TDC-002-3JP1 = 6-polige Stiftleiste mit 2 Kurzschluss-
brücken, 2,54-mm-Raster, zweireihigS1 = Taster, SMD, LSH (Schurter)Platine 071081-1 oder SMD-bestückte Pla-
tine 071081-71Software-Download von der Elektor-Webseite
projekte internet
30 elektor - 4/2008
3 gekreuzt) an den PC angeschlossen und über eine Terminal-Emulation kann man bei 115,2 kBaud bei 8/0/1 (Daten-, Parität- und Stopp-Bits) die Ausgaben
Radio hörenBevor dies möglich ist, muss die Test-Firmware vom EIR entfernt und die Ra-dio-Firmware geladen werden. Um ein neues Laden der Firmware zu ermög-lichen, überbrückt man zunächst die Pins 34 und 36 bei K3 mit einem Jum-per, betätigt Reset und entfernt dann den Jumper wieder. Anschließend boo-tet das EIR wieder mit dem Bootloa-der und mit SAM-BA kommt die Radio-Firmware drauf.Jetzt wird das EIR über Ethernet mit dem lokalen Netz (via Hub/Switch oder den Internet-Router mit mehreren Ports) verbunden, und an den Audio-Ausgang schließt man einen Kopfhörer oder ein Verstärker an.Sollte das LAN beziehungsweise der vorhandene Router über einen ak-tivierten DHCP-Server verfügen, so holt sich das EIR eine gültige Adres-se und beginnt mit dem Abspielen des voreingestellten Radio-Senders. Falls feste IP-Adressen bevorzugt werden: Bei der Installation von Nut/OS wurde schon das kleine Tool „Discoverer“ auf dem PC installiert, mit dem sich das EIR auf jeden Fall finden (Bild 5) und dann auch die gewünschte IP-Adresse einstellen lässt. Wie in Bild 6 gezeigt, trägt man unter Gateway die Adresse des Routers ein. Ab da müsste das Ra-dio-Hören auch bei fixen IP-Adressen funktionieren.
AusblickBeim EIR handelt es sich, wie schon mehrfach erwähnt, um ein völlig of-fenes Konzept. Man kann sowohl die Software als auch die Hardware (über die Erweiterungsstecker) beliebig er-weitern, und in Elektor wird man zu diesem Thema sicherlich noch einiges
des EIR verfolgen. Als Terminal-Emu-lation empfohlen wird für Windows Te-raTerm [7] und für Linux Miniterm. Ein Mac hat ein Terminal immer dabei.
Bild 4. Der fertig bestückte Prototyp macht klar, dass manuelles Bestücken hier nicht so einfach ist.
Tabelle 1. Erweiterungsstecker K1Pin Signal Verwendung Pin Signal Verwendung1 PA0 frei 2 PA1 frei3 PA2 frei 4 PA3 TWI SDA5 PA4 TWI SCL 6 PA5 UART0 RxD über JP17 PA6 UART0 TxD über JP1 8 PA7 UART0 RTS9 PA8 UART0 CTS 10 PA9 DBUG RxD über JP111 PA10 DBUG TxD über JP1 12 PA11 DataFlash Chip Select13 PA12 SPI MISO 14 PA13 SPI MOSI15 PA14 SPI SPCK 16 PA15 MMC Chip Select17 PA16 MMC Clock 18 PA17 MMC Command19 PA18 MMC DAT0 20 PA19 MMC DAT1 über R721 PA20 MMC DAT2 über R8 22 PA21 frei23 PA22 Frei 24 PA23 SDRAM DQMH25 PA24 SDRAM A10 26 PA25 SDRAM CKE27 PA26 SDRAM Chip Select 28 PA27 SDRAM WE29 PA28 SDRAM CAS 30 PA29 SDRAM RAS31 PA30 IRQ1, MP3 Interrupt 32 PA31 MP3 Command Select33 Vref AD Wandler Referenz 34 3.3V Versorgung35 AD4 Analogeingang, frei 36 AD5 Analogeingang, frei37 AD6 Analogeingang, frei 38 AD7 Analogeingang, frei39 GND Masse 40 GND Masse
Bild 5. Mit der Software (hier unter Linux KDE) findet man das EIR auch bei unbekannter IP-Adresse.
Bild 6. Mit Discoverer kann man eventuelle Netzwerk-Einstellungen des EIR vornehmen.
314/2008 - elektor
lesen können.Bezüglich der Software-Tools und Sour-cen sowie der Weiterentwicklungen wirft man am Besten gelegentlich ei-nen Blick auf die Projekt-Webseite [1] von egnite. Hier finden sich Quelltexte und Installationen für Windows, Linux und OS X sowie Links zu Entwick-lungsumgebungen und weiterführen-den Open-Source-Projekten.Vieles ist denkbar. Naheliegend wären ein paar Tasten und ein LCD-Display, damit sich das EIR nicht nur via Web-Browser, sondern auch als luxuriöses Stand-alone-Gerät nutzen lässt. Der Kartenslot schreit förmlich nach der zu-sätzlichen Nutzung als MP3-Player…
(071081Ie)
Literatur & Links[1] Projekt-Webseite von egnite:www.ethernut.de/de/hardware/eir/
[2] Wikipedia-Artikel:de.wikipedia.org/wiki/Internet-Radio
[3] Ethernut und die Kipp-Familie:Elektor März 2008, Seite 46...49.
[4] Informationen zur ARM7-CPU:www.atmel.com/products/at91/
[5] Informationen zum VS1053:www.vlsi.fi/en/products/vs1053.html
[6] Link zu AT91-ISP.exe:www.atmel.com/dyn/resources/prod_docu-ments/Install%20AT91-ISP%20v1.10.exe
[7] Windows-Terminal:ttssh2.sourceforge.jp/
Tabelle 2. Erweiterungsstecker K2Pin Signal Verwendung Pin Signal Verwendung1 PB0 SDRAM DQML 2 PB1 frei3 PB2 Adressbus A2 4 PB3 Adressbus A35 PB4 Adressbus A4 6 PB5 Adressbus A57 PB6 Adressbus A6 8 PB7 Adressbus A79 PB8 Adressbus A8 10 PB9 Adressbus A911 PB10 Adressbus A10 12 PB11 Adressbus A1113 PB12 frei 14 PB13 Adressbus A1315 PB14 Adressbus A14 16 PB15 frei17 PB16 SDRAM BA0 18 PB17 SDRAM BA119 PB18 frei 20 PB19 FIQ, RTC Interrupt21 PB20 IRQ0, Ethernet Interrupt 22 PB21 frei23 PB22 DataFlash Chip Select 24 PB23 USB Monitor25 PB24 frei 26 PB25 frei27 PB26 frei 28 PB27 frei29 PB28 frei 30 PB29 frei31 PB30 MP3 Data Select 32 PB31 MP3 Hardware Reset33 3,3 V Versorgung 34 3,3 V Versorgung35 Nicht belegt 36 Nicht belegt37 Nicht belegt 38 NRST Hardware Reset39 GND Masse 40 GND Masse
Tabelle 3. Erweiterungsstecker K3Pin Signal Verwendung Pin Signal Verwendung
1 PC0 Datenbus D0 2 PC1 Datenbus D13 PC2 Datenbus D2 4 PC3 Datenbus D35 PC4 Datenbus D4 6 PC5 Datenbus D57 PC6 Datenbus D6 8 PC7 Datenbus D79 PC8 Datenbus D8 10 PC9 Datenbus D911 PC10 Datenbus D10 12 PC11 Datenbus D1113 PC12 Datenbus D12 14 PC13 Datenbus D1315 PC14 Datenbus D14 16 PC15 Datenbus D1517 PC16 Bus NWAIT, Open Collector 18 PC17 Ethernet Hardware Reset19 PC18 MMC Card Detect 20 PC19 MMC Write Protect21 PC20 frei 22 PC21 Adress-/Datenbus NWE23 PC22 Adress-/Datenbus NRD 24 PC23 Ethernet Chip Select25 Nicht belegt 26 Nicht belegt27 Nicht belegt 28 Nicht belegt29 Nicht belegt 30 Nicht belegt31 Nicht belegt 32 Nicht belegt33 3,3 V Versorgung 34 3,3 V Versorgung35 JTAGSEL Boundary Scan Enable 36 ERASE Firmware Erase37 VIN 5-24 V ungeregelt über
R10638 SHDN Power Shutdown
39 GND Masse 40 GND Masse
Internet-RadioEin Blick ins Internet und man wird geradezu erschlagen: Google findet zurzeit unter dem Stichwort „Internetradio“ über 2,3 Mio. Treffer – ein heißes Thema also. Dabei waren erste Experimente zu paketvermit-telten „Sendungen“ schon 1993 zu beobachten, quasi gleichzeitig mit dem ersten brauchbaren Browser NCSA Mosaic und sozusagen in der Stunde Null des kommerziellen Internet. Schon recht früh begannen „richtige“ Radiosender damit, ihre bislang terrestrisch abgestrahlten Sendungen zusätzlich auch via Internet-Streaming zu verbreiten. Heute sind mit einem gewöhnlichen Internet-Anschluss zehntausende Radio-programme zu empfangen. Neben einer Unmenge an thematisch un-terschiedlichsten Spartenprogrammen hat man mittlerweile Zugriff auf nahezu alle öffentlich-rechtlichen und kommerziellen Sender.
Unter dem für die zeitnahe Übertragung zeitbasierter Daten wie Au-dio- oder Videoinhalte subsumierten Streaming versteht man möglichst kontinuierliche Datenströme, von denen die Senderseite pro Klient
einen extra Stream bieten muss. Das kann ganz schön viel Traffic ge-nerieren und für den Sender kostspielig werden, wenn er sehr viele Zuhörer hat. Um die Datenraten erträglich zu halten, werden die Daten vor der Versendung in aller Regel verlustbehaftet komprimiert und beim Empfänger wieder dekomprimiert. Ein Internet-Radio muss also – ob rein sotwarebasiert oder als spezielle Hardware – über einige gängige Streaming-Decoder wie MP3, Ogg Vorbis oder Real Audio verfügen.
Da im Internet mit den üblichen Protokollen HTTP und FTP keine stabilen Laufzeiten für die einzelnen Datenpakete garantiert werden können, benötigt der Empfänger einen ausreichenden Datenpuffer, was den Empfang um einige Sekunden verzögert und also nur „quasi-live“ ermög-licht. Schnelles Zappen ist daher nicht möglich. Dafür wird man dank der Digitalisierung mit einer stabilen Tonqualität, einer extremen (weltweiten) Reichweite und einer gegenüber dem klassischen Rundfunk geradezu unüberschaubaren Programmvielfalt entschädigt. Zudem ist prinzipiell der „Empfang“ von Konserven (= verpassten Sendungen) als „Audio on Demand“ möglich, was kein konventionelles Radio bieten kann.