Post on 13-Mar-2020
pratique internet
18 elektor - 4/2008
EIR - Elektor Internet RadioPuces haut de gamme pour écouter la radioHarald Kipp et Thomas Scherer
Il fut un temps où il fallait moduler, en analogique, les sons sur une porteuse haute-fréquence pour pouvoir ensuite les capter et en dériver quelque chose de plus ou moins audible ! Il en va tout autrement aujourd’hui : comprimer un signal audio, le mettre en paquets IP, « streamer », capter, tamponner, décomprimer et vous voici le maître des radios Internet du monde. Tout cela grâce à un matériel ultra-haut de gamme que nous allons vous présenter ici...
Une Webradio (Internet-Radio) est quel-que chose de très spécial. Aucun récep-teur Ondes Courtes, aussi sensible soit-il, est en mesure d’ approcher, même de très loin, ce qu’elle offre en musique et informations sans même parler de la qualité. Comme les « Webradio » n’ont pas besoin de « cracher », dans l’éther, des centaines de kW de signaux HF (de l’électrosmog), la mise en oeuvre d’une station de ce type est à la portée (finan-cière) de petits groupes d’utilisateurs.Il y a beaucoup de choses à dire au su-jet de ce nouveau genre de radio (cf. l’encadré), mais plus important notre réponse à la question :
Pourquoi pas 100% logiciel ?Il faut commencer par dire qu’il existe les programmes les plus divers (Wi-nAmp, iTunes, VLC, etc.) et cela pour tous les systèmes d’exploitation ima-ginables, permettant de se mettre à l’écoute des Netradios. Tout le monde a, en ce début de 21ème siècle, qui un PC, un Mac ou encore une machine tournant sous Linux chez soi. Pour-quoi dépenserait-on alors de l’argent pour un appareil physique non virtuel, voire pour le réaliser de ses propres mains ?Pour commencer, le matériel de base d’une radio logicielle consomme du courant et pas peu vu ce que l’on en at-tend. Passer des heures à écouter la ra-dio via Internet sur son PC est un com-portement on ne peut plus anti-écologi-que. L’approche proposée se débrouille
avec à peine 1 W d’énergie. À raison de 10 heures par jour, l’EIR s’est rembour-sé en un an à peine par les économies d’électricité qu’il permet par rapport à un PC haut de gamme (Gamer) utilisé pour écouter les Webradios.Secundo, il existe des applications pour lesquelles un PC ne convient pas : lors de la connexion à une installation stéréo par exemple. Au contraire, une Internet-Radio à base d’Open Source pourra facilement être modifiée pour mieux répondre à des souhaits par-ticuliers et, last but not least comme disent nos amis d’outre-Manche, EIR continue de fonctionner lorsque le PC s’est planté, voire crashé ;-)
Le principeS’agissant, dans le cas d’EIR, d’un pro-jet complexe faisant appel aux techno-logies les plus modernes, il est impossi-ble d’en englober tous les aspects dans un seul article. Nous allons donc, ici, passer en revue les aspects matériel, réalisation et utilisation. Vous trouve-rez d’autres informations dans des do-cuments disponibles sur notre site (au fur et à mesure de leur disponibilité), www.elektor.fr et sur la page du pro-jet [1] (en anglais) voire dans de possi-bles articles publiés ultérieurement.Nous n’allons pas vous apprendre qu’il faut capter un flux de données Inter-net-Radio, le tamponner et le décoder. Ceci requiert un microcontrôleur d’un certain « poids ». Comme nous le di-sions dans l’article du mois dernier [3],
c’est un ARM7 [4] qui a ici été mis à contribution.Le schéma de la figure 1 décrit l’en-vironnement : la CPU trône en haut au centre ayant à sa disposition pas moins de 64 Moctets de SD-RAM, plus qu’il n’en faut pour le tampon et bien d’autres « extras ». Le progiciel (firm-ware) est implanté dans la CPU, les 4 Moctets de mémoire Flash permet-tant eux un stockage stable des don-nées. Une horloge en temps réel (RTC) à sauvegarde par Supercap permet de réaliser un radio-réveil voire une autre application nécessitant une informa-tion d’heure exacte. Pour éviter de pousser l’ARM7 dans ses derniers re-tranchements, l’aspect décodage audio est confié à une puce spécialisée du type VS1053 [5].En ce qui concerne les interfaces, EIR en est richement doté : on y décou-vre, outre l’indispensable Ethernet, il faut bien qu’EIR arrive, d’une façon ou d’une autre, sur Internet, une interfa-ce de programmation via USB, une in-terface sérielle ainsi qu’une interface JTAG (utile en cas de déboguage) sans oublier 3 embases d’extension remon-tant jusqu’aux ports.Il est en outre prévu un connecteur pour carte SD/MMC au cas où l’on vou-drait enregistrer les émissions.
GénéralitésLes flux de données entrants sont, en règle générale, des données sté-réo comprimées de façon à avoir, ty-
194/2008 - elektor
EIR - Elektor Internet RadioPuces haut de gamme pour écouter la radio
piquement, une résolution de 16 bits et une fréquence d’échantillonna-ge de 44,1 kHz, de façon qu’elles se contentent du dixième et avec, dans le meilleur des cas à 192 Kbits/s voi-re moins au lieu de 1,4 Mbits/s. On a donc besoin, pour créer un tampon d’une capacité de 10 s, de quelque 256 Koctets de RAM. Cela peut, de nos jours, paraître peu, mais pour un mi-crocontrôleur cela reste une quantité « impressionnante ». Si l’on veut éviter de prendre des risques et que l’on sou-haite disposer de possibilités d’exten-sion et d’« extras » on a vite besoin de 512 Koctets voire plus. Le processeur ARM7 utilisé supporte la RAM SD de sorte qu’avec les 64 Moctets disponi-bles EIR n’a pas le moindre souci d’es-pace mémoire.Le système d’exploitation choisi est Nut/OS, moins encombrant que Linux et se contentant de 40 Koctets. Tout compris, il faut au logiciel de l’ordre de 200 Koctets. En ce qui concerne les données, 1 Moctet fait largement l’af-faire. La CPU disposant elle-même de 512 Koctets de Flash pour le logiciel et qu’il y a de la RAM à ne plus sa-voir qu’en faire, il ne doit pas y avoir de problème. L’ensemble du logiciel est Open Source à l’exception du pro-gramme Flash d’Atmel.À noter que le contrôleur est suffisam-ment puissant pour utiliser la carte SD en parallèle pour l’enregistrement d’un second stream audio. Il ne se passera sans doute pas très longtemps avant qu’un auteur de la communauté Open
Source ajoute cette fonction et d’autres extras.Pour éviter de forcer les extensions dans une direction ou dans une autre, la carte ne comporte pas d’organe de commande explicite tels que touches ou affichage. Les embases d’extension présentes permettent, sans le moindre problème, de telles adjonctions. Dès le départ, EIR a été conçu pour se voir connecter des extensions propres à son réalisateur, raison pour laquelle le progiciel est prévu pour être piloté de-puis une page Web intégrée. Le pro-giciel étant totalement ouvert, il n’y a aucune raison pour que cela ne change pas...
Détails
Un coup d’oeil au schéma de la figu-re 2 suffit pour se convaincre de la complexité du projet. Pour cette raison, la description qui suit s’oriente aux dif-férents blocs fonctionnels :• EthernetInternet aborde la carte au travers d’une embase Ethernet à transforma-teur intégré et 2 LED. La LED verte d’allume lors du transfert de données, la LED jaune signalant l’existence d’une connexion. C’est une puce spécialisée, un DM9000E (IC10), qui se charge du trafic Ethernet. Le tampon IC9 permet l’utilisation de l’entrée WAIT de la CPU par d’éventuelles extensions.
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
Figure 1. Synoptique d’EIR (Elektor Internet Radio).
pratique internet
20 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
nn
el)
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
'est
pas
mo
nté
e
SH
DN
VIN
R10
6
0Ω
ER
AS
EJT
AG
SE
L
+3V
3+3
V3
Po
ur
déb
og
uer
rel
ier
1 à
3 et
2 à
4R
elie
r 3
à 5
& 4
à 6
po
ur
ob
ten
ir U
AR
T0
Rel
ier
les
bro
ches
34
& 3
6p
ou
r ef
face
r le
fir
mw
are
Rel
ier
les
bro
ches
33
& 3
5d
e K
3 p
ou
r ef
fect
uer
un
tes
t d
'inte
rco
nn
exio
ns
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
Figure 2. Le schéma de principe d’EIR prouve à l’évidence qu’il s’agit d’un projet on ne peut plus intéressant.
2a
214/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
C/H
TR
BZ
A40
88
IC6
6 5
13
4
2
BZ
A40
88
IC8
6 5
13
4
2
K8
3 5 124 So
rtie
Au
dio
C18
47n
+3V
3
R12 10
Ω
R11 10
Ω R16
10Ω
R15
22Ω
R14
22Ω C21
10n
C22
10n
C23
47n
K9
3 5 124 En
trée
Au
dio
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
Ω
Em
pla
cem
ent
po
ur
cart
e S
D/M
MC
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
Déc
od
eur
MP
3
PC
[0...
23]
PB
[0...
31]
PA[0
...31
]
SD
CK
NR
ST
SD
CK
64M
o S
DR
AM
4Mo
de
Fla
sh s
érie
+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
(Le
VS
1053
a p
u ê
tre
rem
pla
cé p
ar u
n V
S10
33)
En
leve
r R
18 a
van
td
'inst
alle
r R
100!
2b
pratique internet
22 elektor - 4/2008
• Décodeur audioS’il est vrai qu’un ARM7 devrait être en mesure (tout juste) d’effectuer un décodage logiciel de données MP3 ou AAC, un circuit dédié tel que IC7 soulage fortement la CPU sans par-ler de sa capacité de s’accommoder, outre des variantes MP3 classiques, également de données HE-AAC voi-re même Ogg-Vorbis. Cela permet en outre de simplifier le logiciel requis. Sur nos prototypes nous avons utilisé un échantillon Vorab de VLSI (VS1053). En cas de problèmes d’approvision-nement il serait possible d’utiliser la variante VS1033 (sans Ogg-Vorbis). Bien que la CPU soit dotée d’une sor-tie 1,8 V utilisable pour l’alimentation de périphériques, nous avons préféré, pour des raisons de stabilité, doter IC7 de son propre régulateur de ten-sion. La variante VS1033 nécessitant une tension de 2,5 V, cela impliquera de faire passer les résistances R39 et R42 à 100 kΩ.
• SouduresNous trouvant en présence d’une pla-tine multi-couches équipée de CMS minuscules (cf. figures 3 et 4) et dont certains circuits intégrés ont un écarte-ment de broches de 0,5 mm seulement, Elektor a choisi de vous proposer une platine dotée de tous les composants CMS (avec un VS1053). Il reste donc à implanter les composants de taille nor-male. On évitera ainsi des erreurs diffi-ciles à identifier. Rien ne vous interdit cependant, en utilisant les dessins de pistes proposés, de réaliser ce projet totalement vous-même.
Test de fonctionnementIl faudra, pour un premier test de l’ali-mentation, charger le côté 3,3 V de quelques mA - et donc ne pas la laisser tourner à vide. À partir de 4 V en en-trée, le régulateur devrait se mettre au travail et consommer, en fonction de la charge, entre 50 et 150 mA. Dans le cas
• Flash additionnelleLa mise en oeuvre de la radio requiert la mémorisation de nombreux para-mètres dont on doit disposer même après une coupure de courant - la liste de stations en particulier. Il aurait été possible d’utiliser la mémoire Flash interne de la CPU, mais son écriture est délicate. Pour nous simplifier la vie, nous avons ajouté une mémoire Flash sérielle, IC5, dont les 4 Moc-tets suffisent largement au stockage de longues listes de stations et à bien d’autres choses.• AlimentationLa réduction de la consommation d’énergie de EIR au strict minimum nous a amené à la doter d’un régu-lateur à découpage centré sur IC12. On dispose, pour une tension d’en-trée comprise entre 5 et 24 V, d’une puissance de 5 W sous 3,3 V. EIR ne consommant que 1 W, il nous reste suf-fisamment d’énergie pour d’éventuel-les extensions de matériel.
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
Alimentation
+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
MT48LC128M16A2Alimentation
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
Alimentation
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
Alimentation
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
rouge
SHDN
VIN
Avec un VS1033 (VX = 2V5)remplacer R39 & R42 par 100k 1%
+3V3
3x 100n
3x 100n
2c
234/2008 - elektor
d’une tension de 24 V en entrée, le cou-rant ne sera plus que de 30 à 50 mA. Si tout est OK, la LED LED1 s’allume. Une fois les circuits intégrés mis en place, on pourra vérifier à l’oscilloscope le fonctionnement du quartz. Si X1 os-cille, la CPU devrait être accessible.La CPU est dotée, à l’origine, d’une amorce (bootloader) permettant, outre le transfert d’un nouveau progiciel, la communication bidirectionnelle avec la RAM et la mémoire Flash. Atmel pro-pose à l’adresse [6], le fichier « AT91-SIP.exe » intégrant, après décompac-tage, le programme Windows « SAM-BA ». Après avoir installé ce dernier on connecte EIR par USB à un PC. Dès la mise sous tension d’EIR, Windows de-vrait activer automatiquement le pilote correspondant. On peut alors démar-rer SAM-BA. Les paramètres à choisir sont alors USB (type de liaison) et « AT-91SAM7SE512-EK » pour le type de pé-riphérique, EIR lui étant très proche.
On trouvera, sur le site Elektor, à la page dédiée à cet article, un progiciel simple utilisable à des fins de test. Il permet, si tant est que la CPU et l’in-terface sérielle soient fonctionnelles, de s’assurer du fonctionnement d’autres périphériques tels qu’Ethernet et le dé-codeur audio. Après transfert du progi- Figure 3. Implantation des composants d’EIR. Il vous est proposé une platine dotée de ses composants CMS.
Liste des composantsRésistances :R1,R2 = 27 Ω CMS 0402R3 = 1kΩ5 CMS 0402R4,R5,R28, R45 = 1 kΩ CMS 0402R6,R23,R32,R33,R36,R38 = 10 kΩ
CMS 0402R7,R8,R18,R35,R44 = 0 Ω CMS 0402R9,R10,R13,R20,R22,R34 = 100 kΩ
CMS 0402R11,R12,R16 = 10 Ω CMS 0603R14,R15,R43 = 22 Ω CMS 0402R17 = 1 MΩ CMS 0402R19,R21 = 470 Ω CMS 0402R24,R25,R29,R30 = 50 Ω/1% CMS 0402R26,R27 = 1 kΩ CMS 1206R31 = 6kΩ8/1% CMS 0603R37 = 16kΩ5/1% CMS 0603R39 = 200 kΩ*/1% CMS 0402R40 = 180 Ω CMS 1206R41 = 10 kΩ/1% CMS 0402R42 = 470 kΩ*/1% CMS 0402R46 = 15 kΩ CMS 0402R47 = 22 kΩ CMS 0402R48 = 22 Ω réseau CAY16R49 = 100 kΩ, réseau CAY16R50 = 10 kΩ, réseau CAY16R100 à R106 = 0 Ω* CMS 1206 (non
requises)* Cf. texte
Condensateurs :(CMS céramique 6,3 V sauf mention
contraire)
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 nF (CMS 0402)
C5,C6,C9,C10,C17,C20,C32,C33,C34 = 22 pF (CMS 0402)
C7,C38 = 1 nF (CMS 0402)C8,C21,C22,C27,C28,C37,C100 = 10 nF
(CMS 0402)C11 à C14 = 220 pF (CMS 0402)C15,C39,C44,C45,C52,C60,C61,C66,C70
,C74,C78,C86,C90 = 10 μF (CMS 0805)C18,C23,C29 = 47 nF (CMS 0402)C24 à C26,C43 = 1 μF (CMS 0805)C36 = 0,1 μF capacité double couche
FG0H104Z135C40,C41 = 1 μF/25 V (CMS 1206)C98,C99 = 100 μF/16 V tantale (CMS)
Inductances :L1 = DLW5BTN102SQ2 (Murata)L2 = 10 μH MSS5131 (Coilcraft)L3 = BLM31A (Murata)
Semi-conducteurs :D1 à D3,D5 = PMEG3005AEA (Philips)D4 = SM6T24CA (STM)IC1 = AT91SAM7SE512-AU (Atmel)IC2 = MAX3222ECWN (Maxim)IC3,IC6,IC8 = réseau de diodes 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 = LED rouge KP-1608URC
(CMS 0603, Kingbright)
Divers :X1 = quartz 18,432 MHz (CMS HC49SM)X2 = quartz 12,288 MHz (CMS HC49SM)X3 = quartz 25,000 MHz (CMS HC49SM)X4 = quartz 32,678 kHz (CMS MC-146)F1 = porte-fusible + fusible 0,5 A rapide
CMS OMNI-BLOK (Littelfuse)K1 à K3 = embase autosécable à 2 rangées
de 20 contacts au pas de 2,54 mmK4 = embase USB-B (AMP-787780)K5 = embase Sub-D en équerre à 9 con-
tacts aux normes USK6 = embase HE10 à 2 rangées de 10 con-
tacts au pas de 2,54 mmK7 = connecteur pour carte SD
CMS FPS009-2700 (Yamaichi)K8,K9 = embase jack 3,5 mm stéréo
CMS SJ1-3515 (CUI)K10 = embase RJ-45 avec transforma-
teur Ethernet et LED (CMS RJLD-043TC, Taimag)
K12 = embase CC avec fiche 2 mm TDC-002-3
JP1 = embase autosécable à 2 rangées de 3 contacts au pas de 2,54 mm + 2 cavaliers
S1 = bouton-poussoir (CMS LSH, Schurter)platine vierge (EPS071081-1) ou platine
dotée des CMS (EPS071081-71) logiciel téléchargeable depuis site Elektor
pratique internet
24 elektor - 4/2008
ciel il reste à informer EIR qu’il lui fau-dra, au prochain démarrage, s’amorcer sous ce progiciel.Il faudra pour cela, sous « Scripts » choisir la routine « Boot from Flash
ches 2 et 3 interconnectées); un émula-teur de terminal (nous recommandons TeraTerm [7] pour Windows, Miniterm pour Linux, un Mac disposant de tou-tes façons d’un Terminal) permet alors, à 115,2 kbaud et un paramétrage de 8/0/1 (bits de données, parité et d’ar-rêt), de suivre ce que fait EIR.
Écouter la radioIl faut, avant de pouvoir le faire, débar-rasser EIR du progiciel de test et le do-ter du progiciel de radio. Pour permet-tre le chargement du progiciel il faut commencer par ponter par cavalier les contacts 34 et 36 de K3, appuyer sur le bouton de réinitialisation et enlever le cavalier ensuite. EIR redémarre avec l’amorce et SAM-BA permet d’y trans-férer le progiciel de radio.Il reste alors, par Ethernet, à relier EIR au réseau local (par hub/switch ou rou-teur Internet multi-ports) et de connec-ter un casque d’écoute ou un amplifica-teur à sa sortie audio.Bild 6, Bild 7Si le réseau local (LAN) ou le routeur disponible dispose d’un serveur DHCP activé, EIR en obtient une adresse va-lide et se met à l’écoute des stations radio pré-paramétrées. En cas de pré-férence d’adresses IP fixes : lors de l’installation de Nut/OS il y a eu instal-lation, sur le PC, d’un petit outil, « Dis-cover » qui permet dans tous les cas de figures de trouver EIR (figure 6) et de paramétrer l’adresse IP souhaitée. Comme le montre la figure 7, on entre dans le champ Gateway l’adresse du routeur. Ensuite, l’écoute de la radio (fi-gure 8) devrait fonctionner même avec des adresses IP fixes.
Perspectives
(GPNVM2) » et cliquer sur « Execute » - clore SAM-BA et appuyer sur la tou-che de réinitialisation (Reset). EIR est alors reliée à un PC pas son interface sérielle et un câble modem nul (bro-
Figure 4. Cet exemplaire terminé prouve sans ambiguïté qu’une réalisation personnelle est loin d’être une sinécure.
Tableau 1. Erweiterungsstecker K1Broche Signal Fonction Broche Signal Fonction
1 PA0 Libre 2 PA1 Libre3 PA2 Libre 4 PA3 SDA TWI5 PA4 SCL TWI 6 PA5 RxD UART0 via JP17 PA6 TxD UART0 via JP1 8 PA7 RTS UART09 PA8 CTS UART0 10 PA9 RxD DBUG via JP111 PA10 DBUG TxD via JP1 12 PA11 Chip Select DataFlash13 PA12 SPI MISO 14 PA13 SPI MOSI15 PA14 SPI SPCK 16 PA15 Chip Select MMC17 PA16 Horloge MMC 18 PA17 Commande MMC19 PA18 DAT0 MMC 20 PA19 MMC DAT1 via R721 PA20 DAT2 MMC via R8 22 PA21 Libre23 PA22 Libre 24 PA23 DQMH SDRAM25 PA24 A10 SDRAM 26 PA25 CKE SDRAM27 PA26 Chip Select SDRAM 28 PA27 WE SDRAM29 PA28 CAS SDRAM 30 PA29 RAS SDRAM31 PA30 IRQ1 - Interruption MP3 32 PA31 Command Select MP333 Vref Référence CAN 34 3.3V Alimentation35 AD4 Entrée analogique libre 36 AD5 Entrée analogique libre37 AD6 Entrée analogique libre 38 AD7 Entrée analogique libre39 GND Masse 40 GND Masse
Figure 5. Recopie d’écran de SAM-BA sous Windows 2000.
Figure 6. Ce programme (tournant ici sous Linux KDE) permet de retrouver EIR même en cas d’adresse IP inconnue.
254/2008 - elektor
EIR est, nous l’avons mentionné, un concept totalement ouvert. Il est pos-sible de modifier le logiciel ou de do-ter le matériel d’extensions (grâce aux embases d’extension). Il est fort proba-ble que vous retrouverez, dans le futur, l’une ou l’autre mention à son sujet.On pourra, pour s’informer de l’existen-ce d’outils logiciels ou de développe-ments ultérieurs, jeter un coup d’oeil à la page consacrée à ce projet [1] chez egnite. On y trouvera le fichier-sour-ce et les installations pour Windows, Linux et OSX. On y trouvera également des liens d’environnements de déve-loppement et de projets Open Source en évolution.L’imagination est reine. On pourrait penser à quelques touches et un affi-chage LCD de sorte que l’on pourrait utiliser EIR non seulement en browser Internet, mais même en appareil auto-
nome de luxe. L’existence du connec-teur pour carte SD appelle à s’en servir en lecteur MP3.
(071081-I)
Bibliographie et Liens :[1] Page Web de projets de egnite :www.ethernut.de/en/hardware/eir/index.html
[2] Article Wikipedia :http://fr.wikipedia.org/wiki/Webradio
[3] Ethernut et la famille Kipp :Elektor N° 357, page 28 et suivantes
[4] Informations au sujet de l’ARM7 :www.atmel.com/products/at91/
[5] Informations concernant le VS1053 :www.vlsi.fi/en/products/vs1053.pdf
[6] Lien vers AT91-ISP.exe :www.atmel.com/dyn/resources/prod_docu-ments/Install%20AT91-ISP%20v1.10.exe
[7] Terminal Windows :ttssh2.sourceforge.jp/
Tableau 2. Embase d’extension K2Broche Signal Fonction Broche Signal Fonction
1 PB0 DQML SDRAM 2 PB1 Libre3 PB2 Bus d’adresse A2 4 PB3 Bus d’adresse A35 PB4 Bus d’adresse A4 6 PB5 Bus d’adresse A57 PB6 Bus d’adresse A6 8 PB7 Bus d’adresse A79 PB8 Bus d’adresse A8 10 PB9 Bus d’adresse A911 PB10 Bus d’adresse A10 12 PB11 Bus d’adresse A1113 PB12 Libre 14 PB13 Bus d’adresse A1315 PB14 Bus d’adresse A14 16 PB15 Libre17 PB16 SDRAM BA0 18 PB17 SDRAM BA119 PB18 Libre 20 PB19 FIQ - Interruption RTC21 PB20 IRQ0 - Interruption Ethernet 22 PB21 Libre23 PB22 Chip Select DataFlash 24 PB23 Moniteur USB25 PB24 Libre 26 PB25 Libre27 PB26 Libre 28 PB27 Libre29 PB28 Libre 30 PB29 Libre31 PB30 Sélection Données MP3 32 PB31 Reset Hardware MP333 3,3 V Alimentation 34 3,3 V Alimentation35 NC 36 NC37 NC 38 NRST Reset Matériel39 GND Masse 40 GND Masse
Tableau 3. Embase d’extension K3Broche Signal Fonction Broche Signal Fonction1 PC0 Bus de données D0 2 PC1 Bus de données D13 PC2 Bus de données D2 4 PC3 Bus de données D35 PC4 Bus de données D4 6 PC5 Bus de données D57 PC6 Bus de données D6 8 PC7 Bus de données D79 PC8 Bus de données D8 10 PC9 Bus de données D911 PC10 Bus de données D10 12 PC11 Bus de données D1113 PC12 Bus de données D12 14 PC13 Bus de données D1315 PC14 Bus de données D14 16 PC15 Bus de données D1517 PC16 NWAIT bus, Collecteur ouvert 18 PC17 Reset Hardware Ethernet19 PC18 Détection Carte MMC 20 PC19 Write Protect MMC21 PC20 Libre 22 PC21 NWE bus d’adresses/de données23 PC22 NRD bus d’adresses/de
données24 PC23 Chip Select Ethernet
25 NC 26 NC27 NC 28 NC29 NC 30 NC31 NC 32 NC33 3,3 V Alimentation 34 3,3 V Alimentation35 JTAGSEL Validation Boundary Scan 36 ERASE Effacement Firmware37 VIN 5-24V non régulé via R106 38 SHDN Coupure Alimentation39 GND Masse 40 GND Masse
Internet-RadioUn petit tour sur Internet a de quoi époustoufler : à l’entrée du mot-clé Internetradio dans Google se traduit par plus de 2,3 millions de hits - indubitablement un sujet d’actualité. Les premiers essais dans ce domaine, « émissions » par paquets, datent de 1993, quasi-pa-rallèlement à l’apparition du premier browser opérationnel, Mosaic de NCSA et pour ainsi dire à l’heure zéro du commerce sur Internet. Il y déjà longtemps que les « vraies » stations de radio avaient choisi de diffuser, par le biais d’Internet aussi, sous forme de « streaming », leurs émissions limitées jusqu’à présent à une diffusion via les éthers. Aujourd’hui, une connexion Internet standard permet la réception de dizaines de milliers de programmes radio. Il est possible actuelle-ment, parallèlement à une quantité industrielle de programmes thé-matiques, de se mettre à l’écoute de la quasi-totalité des stations de radio commerciales.
La dénomination de « streaming » recouvre un flux de données de contenu audio ou vidéo le plus continu possible et émis en temps réel, le côté émetteur devant fournir un stream par client, ce qui pourrait
entraîner un trafic important et pourrait, en cas de forte écoute, se traduire par un coût (assez) élevé. De manière à garder les taux de transfert dans des limites acceptables, on procède, avant émission, à une compression des données (le plus souvent avec un minimum de pertes) pour les décomprimer à l’arrivée côté récepteur. Une radio Internet devra donc - qu’elle soit purement logicielle, ou prenne la forme de matériel dédié - disposer de l’un ou l’ autre décodeur de streaming, tel que soit MP3, Ogg Vorbis voire Real Audio.
Vu d’autre part que sur Internet les protocoles classiques HTTP et FTP ne peuvent pas garantir des durées stables des différents paquets de données, le récepteur doit disposer d’un tampon de données de capa-cité suffisante, ce qui a pour effet de retarder la réception de quelques secondes, la réception n’étant plus que « quasi-live ». Il devient difficile ainsi de « zapper » d’une émission à l’autre. La numérisation présente cependant les avantages d’une qualité de son stable, d’une portée mondiale et comparé à la radiodiffusion classique, d’un nombre, qua-siment infini de programmes. À cela s’ajoute, en principe, la possibi-lité de réception de « conserves » (= émissions passées) sous forme de « Audio on Demand » ce que ne peut aucune radio conventionnelle.