BÀI 4: TH C HI N M T S M CH ĐI U CH TRÊN KIT
C6713 DSK
I- Th c hi n đi u ch PAM trên kit C6713 DSK ế
Gi i thu t đi u ch : ế
M i m u vào đi u ch g m 16 bits. Tùy vào lo i đi u ch PAM, m t m t n ế ế
(mask) thích h p đ c s d ng. Các m u nh p vào s đ c AND v i m t n ượ ượ
d ch v i s l n thích h p đ n h t chi u dài chu i. T ng ng v i m i ký hi u ế ế ươ
(symbol) trên 1 m u nh p vào và lo i đi u ch ta có m c đi n áp khác nhau, đ ế
d ng sóng xu t sau khi ra b A/D có d ng sóng vuông, m i m c s đ c xu t ra ượ
12 l n tr c khi chuy n sang symbol k ti p. Sau đây chúng ta s đi vào c th ướ ế ế
t ng lo i đi u ch . ế
1. Đi u ch PAM 4 m c ế
- C p ngu n đi n cho kit và ch y ch ng trình CCS trên máy tính. ươ
- M Project PAM.pjt folder C:\Program Files\CCStudio_v3.1\MyProjects\PAM4
- Trong c a s File View, m t p tin PAM4.c, n i dung t p tin này nh sau: ư
// PAM
#include "DSK6713_aic23.h"
Uint32 fs=DSK6713_AIC23_FREQ_8KHZ;
#include <math.h>
//Initialization:
int i_PAM;
int j_PAM;
int k;
int masked_value, output;
int data_4PAM[4] = {0x7FFF, 0x2AAA, -0x2AAB, -0x8000};//data table for 4-PAM MOD
int out_buffer[256];
int i=0;
interrupt void c_int11() //interrupt service routine
{
int sample_data; //4-PAM Modulator: Assigns sampled data coming from an input
//source to 4 predetermined voltage levels.
if (i_PAM==96) //new input is taken once every 96 samples (8 shifts x 12 repeated
outputs)
{
sample_data = input_sample(); //inputs data
i_PAM=0;
j_PAM=0;
1
1
2
3
4
}
masked_value = sample_data & 0x0003; //masks input sample as 2-bit segments
output = data_4PAM[masked_value]; //gets corresponding level from table
output_sample(output); //outputs corresponding voltage level 12 times
out_buffer[i++] = output;
if (i==256)
i = 0;
j_PAM++; //repeated output counter
if (j_PAM==12) //checks if repetition is over
{
j_PAM=0;
sample_data = sample_data >> 2; //shifts input to mask next segment
}
i_PAM++;
return;
}
void main()
{
i_PAM=0;
comm_intr(); //init DSK, codec, McBSP
while(1); //infinite loop
}
Gi i thích code:
+ Trong ch ng trình này hàm ươ main() đ t giá tr bi n i_PAM = 0 và kh i đ ng kit. ế
Sau đó s th c hi n m t vòng l p vô h n v i l nh while(1) .
+ Khi có tín hi u xung l y m u (t n s 8Khz), ng t 11 x y ra và trình ph c v ng t
c_int11() đ c g i. Trong trình ph c v ng t này, d li u vào đ c đ c vào bi nượ ượ ế
sample_data (b ng l nh sample_data = input_sample(), ô chú thích s 3). M u d
li u này bi u di n d ng s nguyên 16 bits có d u.
+ Do đây th c hi n đi u ch PAM 4 m c, mà đ bi u di n đ c 4 m c thì c n 2 ế ượ
bit. Do đó m u vào s đ c chia làm 8 ký hi u (symbol), m i ký hi u 2 bit. Đ th c ượ
hi n vi c chia này, m u d li u đ c AND v i m t n ượ 0x0003 (ô chú thích s 4 )đ
l y 2 bit LSB c u m u d li u. 2 bit này đ c ánh x thành 1 trong 4 m c đi n áp ượ
theo b ng sau:
B ng tra 4 m c:
Kh i ký
hi uM c đi n áp (d ng
hex)
M c đi n áp (d ng th p
phân)
00 0x7FFF 32767
01 0x2AAA 10922
10 -0x2AAB 10923
2
5
11 -0x8000 32768
4 giá tr này đ c khai báo đ u ch ng trình ( ượ ươ ô chú thích s 1). M i symbol s cho
ra 1 m c đi n áp. M i m c đ c xu t ra 12 l n tr c khi chuy n sang m c ng v i ượ ướ
symbol k ti p. Bi n đ m j_PAM đ đ m s l n xu t ra cho đ 12 l n. Nh v yế ế ế ế ế ư
ng v i m u vào 16 bit, ta có 8 symbol. M i symbol xu t 12 l n nên s l n xu t ra
ng v i m i m u là 8x12 = 96 đ c th hi n b i bi n đ m i_PAM ( ượ ế ế ô chú thích s 2).
- Biên d ch và n p ch ng trình lên kit. ươ
- Ki m tra k t qu trên Plot c a CCS. ế
Vi c s d ng máy phát sóng r t khó đ ki m ch ng k t qu nên ta s ế gán cho
sample_data m t giá tr c th 16 bit (d ng s HEX, ô chú thích s 3).
L u ý: thông s l a ch n cho vi c th hi n d ng sóng nh sauư ư :
sample_data = 0x00E4 = 0b00 00 00 00 11 10 01 00
3
sample_data = 0x001B = 0b00 00 00 00 00 01 10 11
4
sample_data = 0x1BE4 = 0b00 01 10 11 11 10 01 00
Nh n xét : K t qu thu đ c đúng v i lý thuy t, t ng ng v i biên đ l n nh t là ế ượ ế ươ 00,
âm nh t là 11.
2. Đi u ch PAM 8 m c ế
- Th c hi n l i t ng t nh PAM 4 m c. ươ ư
- M Project PAM.pjt folder C:\Program Files\CCStudio_v3.1\MyProjects\PAM4
- S khác bi t so v i PAM 4 m c là m t n , s bit d ch b ng tra. Đ i v i
PAM 8, bit có tr ng s th p nh t (LSB) c a m u vào đ c lo i b đ s bit còn ượ
l i (15) là b i c a 3. Đi u này gây tác đ ng không đáng k lên d ng sóng đi u
ch và d ng sóng khôi ph c l i. Do đó s l n xu t ra ng v i m i m u làế
(15/3)x12 = 60.
B ng tra 8 m c :
Kh i
hi uM c đi n áp (d ng s
Hex)
M c đi n áp (d ng th p
phân)
000 0x7FFF 32767
001 0x5B6D 23405
010 0x36DB 14043
5