(C언어를 이용하여 구현하였습니다.)
8051 microcontroller를 이용한 filter design입니다.
filter 과정을 pipeline을 고려하여도 설계하여 보았습니다.
ADC와 DAC를 활용하였습니다. (COMPACT 51 내장)
적용한 필터는, mean filter입니다.
C언어로 작성되었기 때문에 다른 보드는 물론 PC에서도 작동 가능합니다. (약간의 수정 필요)
보드이름과 CPU 이름을 표시한 이유는,
제약적인 환경에서 (embedded 환경) 속도를 어떻게 최적화할까 에 대한 고려가 있기 때문입니다.
(해결책 중 하나가 pipeline 입니다.)
최종 A+ 받은 자료입니다.
리포트 내용은 영문이지만, 한국인 대학생이 작성하였기 떄문에
어려운 단어가 없어 해석에 무리가 없을 것으로 보입니다.
(1) Refer to the ADC0804 Manual, and find out how to use A/D converter. Particularly find out the
possible sampling rate, the delay of A/D conversion.
(2) Let’s assume that we use timer interrupt for A/D conversion. And assume that we perform Fourier
transform on the output of the D/A converter whose input is the output of the A/D converter. What
will the Fourier transform of the output look like?
(3) Let’s assume that we do not know the delay of the code which uses timer interrupt to perform A/D
conversion on input and D/A conversion on the output of the A/D converter. How can we know the
delay of the timer interrupt by observing the output signal?
1) A/D Converting
(1) Decide the waiting time after A/D converting command.
As explained previously, you should read value of A/D converting after some fixed time, when you
put A/D converting start command. Find appropriate waiting time.
(2) Implement waiting time.
Then, decide how to implement the ‘waiting for some fixed time’. As explained previously, you can
use timer interrupt or finite loop. When you wait for some fixed time using Finite loop, observe
delayed time through finite loop by using oscilloscope and confirm that waiting time is accurate.
(3) Decide max sampling rate on COMPACT51 board, sampling rate.
Next, add an infinite loop to transfer the A/D converted value directly to the D/A converter for
investigating the limit on the speed of A/D conversion. By observing output waveform through
oscilloscope, you can obtain maximum possible sampling rate of the given A/D converter. You will
use this sampling rate after other experiments.
※ Things to be considered when deciding the sampling rate
- Maximum frequency of input signal
- Time to perform FIR filter function
- Maximum sampling rate of the A/D converter
(4) Apply sine wave to the A/D converter and connect its output to the D/A converter. Using the FFT
menu of the oscilloscope, observe the output signal and input signal.
- What does the output (Fourier Transform) look like?
- What happens if we increase the frequency of the sine wave? Can you find the maximum
sampling rate from the Fourier transform?
- What will happen if we increase the delay of A/D converter?
2) Simple FIR filter experiment
(1) Design two FIR filters with two operators ( >> , / ). Coefficients of filter are as below.
[0.25, 0.25, 0.25, 0.25]
Then, (a)find which operator is faster and (b)calculate processing time with consideration of
(2) When implementation is finished, apply sine wave to FIR filter as input and increase the frequency
of sine wave. Then, observe the characteristics of output signal. What is the frequency band in which
the output signal is stable. What is the characteristic of output signal? What is the characteristic of the
(3) Insert square waveform as input to A/D converter and compare the low pass filtered waveform and
by-passed waveform. Can you explain the shape of the output?
1. Objective of the experiment.
- In this experiment, we would design the simple FIR filters with A/D and D/A converter on the COMPACT 51 board. Actually, the 8051 microcontroller is not proper to design an accurate high order FIR filter because of the simple structure and the low specification. For that reason, we have to optimize the realization with the provided hardware resources.
2. Problem statement
- Design FIR filter using A/D and D/A converter on the COMPACT51 board.
3. Pre report
(1) Refer to the ADC0804 Manual, and find out how to use A/D converter. Particularly find out the possible sampling rate, the delay of A/D conversion.
In the experiment, we are given the limited condition for the hardware. The 8051 microcontroller and COMPACT 51 board are not proper for the high resolution and high quality filtering. The 8051 microcontroller does not provide the floating point operation, which shows more accurate result than the fixed point operation though the speed is slower. Additionally, the resolution of ADC and DAC are 8bits, which cause the step shape output result. Therefore, if we