TigerSHARC processor and evaluation board - PowerPoint PPT Presentation

About This Presentation
Title:

TigerSHARC processor and evaluation board

Description:

Functionality present of TigerSHARC evaluation board ... of Analog Devices University Ambassadorship) to develop demonstration programs ... – PowerPoint PPT presentation

Number of Views:205
Avg rating:3.0/5.0
Slides: 28
Provided by: michael298
Category:

less

Transcript and Presenter's Notes

Title: TigerSHARC processor and evaluation board


1
TigerSHARCprocessor and evaluation board
  • Different capabilitiesDifferent functionality

2
Concepts tackled
  • Differences between processor and evaluation
    board
  • Functionality present of TigerSHARC evaluation
    board
  • Accessing the A2D and D2A in an easy way needed
    for all Labs.

3
Evaluation board P0 and P1
TWO TS201S processors Error messagesabout P0
and P1mean code on specific processor
4
Evaluation board Link Ports
Designed for star Configuration Up to 8
processorsworking together P0 to P7
(selectableby switches on backof evaluation
board(Never tried Dontdestroy link ports)
5
Audio connectors.Max input voltage around 1 V
p-pwith no DC. Too great a voltage destroys the
board Use MPEG or other players and keep Volume
down Damage and distortion issues
  • JTAG ONLY AVALIABLE IN 3rd floor labs
  • Higher speed communication rates than USB
    (factor of 20 - 100)
  • ICT320 TigerSHARC
  • ICT318 Blackfin (some stations).

6
Buttons and LEDs splitbetween processors Much
stuff on the boardshared between
processors(but NOT all)
7
Evaluation BoardArchitecture
P0 P1
8
Processorscan sharememory Memory allocationdep
ends on ID
9
Note labelled processor A and Brather than
processor 0 and 1
10
Note labelled processor A and Brather than
processor 0 and 1
11
How to use the evaluation board capability
  • Read a lot in the hardware manual
  • Modify some of the example programs provided in
  • C\Program Files\Analog Devices\VisualDSP 3.5
    32-Bit\TS\EZ-KITs
  • and then Read a lot in the hardware manual

12
Laboratory 1 Part 2
  • This makes use of the analog to digital converter
    and the digital to analogue converter to provide
    audio sound signals that we can process with the
    high speed algorithms we develop during the
    course
  • We will need to learn about
  • Interrupts which, how many, why, how?
  • A2D, D2A which, how many, why, how?
  • We need to learn about all this stuff before the
    end of the course but not now Now we just
    want to use it

13
ECE-ADI-Project
  • Was asked to develop (as part of Analog Devices
    University Ambassadorship) to develop
    demonstration programs and place on the web
  • Have now developed
  • SHARC ADSP-21061 (Previous 515)
  • Audio project utilities
  • Blackfin ADSP-BF533 (Current ENCM415 Lec. 01)
  • Audio project utilities, Video Project utilities
  • TigerSHARC ADSP-TS201 (Current ENCM515)
  • Embedded Test Driven Development Environment
    (E-TDD)
  • Blackfin, TigerSHARC, SHARC, Microsoft studio
  • Find at http//www.enel.ucalgary.ca/People/Smith/
    ECE-ADI-Project/Index/index.htm

14
Using the code
  • Files need See Lab. 1 Part 2
  • You will need to build a project file Audio.dpj
  • Also link in you code from assignment 1 --
    myAssignment1.cpp
  • 05Labs/05FilesNeeded/05Lab1AudioProject/KnownLocat
    ion1Nov04.cpp
  • 05Labs/05FilesNeeded/05Lab1AudioProject/main_Sound
    1Jan05.cpp
  • 05Labs/05FilesNeeded/05Lab1AudioProject/processsou
    nd1Jan05.cpp
  • 05Labs/05FilesNeeded/05Lab1AudioProject/examinesig
    nal.cpp
  • 05Labs/05FilesNeeded/05Lab1AudioProject/processors
    pecific1Nov04.h
  • 05Labs/05FilesNeeded/05Lab1AudioProject/soundsourc
    eClass1Nov04.h
  • 05Labs/05FilesNeeded/05Lab1AudioProject/student_ad
    iprocessor1Jan05.h
  • 05Labs/05FilesNeeded/05Lab1AudioProject/TS201Onlin
    eLib1Jan05_CHAR8.dlb
  • 05Labs/05FilesNeeded/05Lab1AudioProject/TSXXXproce
    ssorspecific1Nov04.h

15
ADISoundSource sounddemo(processor,
which_soundsource,

processing_options)
  • Does all the hard stuff
  • Sets up interrupts
  • Sets up interrupt service routine
  • Sets up variety of options
  • Useful things to know
  • which__soundsource LOCAL_AUDIOSOURCE
    MONO"Generate a local sound source output D2A
  • which__soundsource CODEC_AUDIOSOURCE
    MONO"Uses the CODEC as sound source input A2D
    and output A2D
  • processing_options allow you to switch quickly
    between a variety of versions of functions
    (Probably not used this year as the E-TDD
    environment does a better job

16
sounddemo.ReadSource(channel1_in, channel2_in)
  • ReadSource ( )
  • Provides the input sound signal from the two
    channels of the A/D
  • This function will wait for an audio interrupt
    to place the A2D values into a known location,
    and then returns those values to you
  • In LOCAL_AUDIOSOURCE mode, This function will
    wait for an audio interrupt then return audio
    samples from an internal generated tune.
  • Note if your code to process the audio signal
    is too slowly, then an interrupt (or many
    interrupts) will have already occurred, and
    ReadSource( ) will return immediately. There is
    NO WAY to recover missed samples. You will hear
    sound distortion if many samples are missed

17
sounddemo.WriteSource(leftchannel_out,
rightchannel_out)
  • WriteSource( ) simply places your values into a
    known location. When an interrupt occurs, these
    values will be sent to the D2A automatically.
  • NOTE there is no check to see whether the
    previous values have been sent to the D2A.
    Therefore we need to write code of the form
  • while (ReadSource (left, Right))
  • ProcessSound(left, right)
  • WriteSource(left, right)
  • WriteSource( ) will be used during Lab. 1 Part 1

18
VolumeControl(channel1_in, channel2_in,

sounddemo)
  • You will need earphones for the labs.
  • WARNING - Depending on the quality of your
    ear-phones, and the quality of your coding, it is
    very simply to have a sound that is too loud and
    potentially damaging to your ears. DONT start
    running the code with the ear-phones on your
    ears. Run the code, adjust the volume, and then
    place the earphones on your ears
  • VolumeControl( ) is a simply way of adjusting the
    output sound volume

19
Interrupt Handling
  • sounddemo.Stop_AudioInterrupts( )
  • Your code here
  • sounddemo.Start_AudioInterrupts( )
  • You cant single step (debug) your code when the
    interrupts are running.
  • Note these functions are not working at the
    moment on the TigerSHARC.
  • However this is not a real issue as the Test
    Driven Development environment provides an easier
    way to test your code without the necessity of
    having interrupts
  • Once your functions have been proven to work
    (e.g. Lab. 1, Part 1), then you can add them to
    the audio program (e.g. Lab. 1, Part 2).
  • If your code is so bad that you have to single
    step through it then consider using the
    equivalent of rm . and start again

20
Is anything actually happening?
  • if (!sounddemo.DoNotProcess())
  • ProcessSound(channel1_in, channel2_in,
    leftchannel_out,
    rightchannel_out, sounddemo)
  • else
  • leftchannel_out channel1_in
    rightchannel_out channel2_in
  • By pressing button FLAG1 you can cause the sound
    to be passed directly to the audio output without
    processing (e.g. Lab. 1 Tutorial 1)
  • Since the evaluation board has two processors
    then you will need to use FLAG1-A or
    FLAG1-B depending on which processor your code is
    running
  • Note loading the code, holding FLAG1 down while
    the code starts up automatically switches between
    LOCAL and CODEC input modes, so you can switch
    without having to recompile each time

21
Software radio part of Lab 1Modified main( )
int main () // int source_selection
AUDIO_SOURCE_DEMO int source_selection
INTERNAL_SOFTWARE_RADIO_SO
URCE_DEMO if (source_selection
AUDIO_SOURCE_DEMO) AudioSourceDemo( ) else if
(source_selection
INTERNAL_SOFTWARE_RADIO_SOURCE_DEMO) Interna
lSoftwareRadioSourceDemo( ) else puts
("Unknown source selection") return 0
22
Software Radio Demo
while (WaitAMSignal(AMsignal, sounddemo))
if (!sounddemo.DoNotProcess())
ExamineSignal(AMsignal, 0, 4000) // Incoming
signal // Choose which "radio station" you want
to hear // MultiplyByReference(AMsignal,
carrier_frequency0) // ExamineSignal(AMsignal,
0, 4000) // IFstage_low_pass_filter(AMsignal,
filter_coefficients, FILTER_LENGTH) // ExamineSig
nal(AMsignal, 0, 4000) // RectifySignal(channel1
_in, channel2_in, AMsignal) // ExamineSignal(cha
nnel1_in, 0, 4000) // Audio_low_pass_filter(
channel1_in, channel2_in, leftchannel_out, //
rightchannel_out,
filter_coefficients, filter_coefficients,
FILTER_LENGTH) // ExamineSignal(leftchannel_out,
0, 4000) // DCremoval(leftchannel_out,
rightchannel_out) // ExamineSignal(leftchannel_o
ut, 0, 4000)
23
Software Radio Demo
while (WaitAMSignal(AMsignal, sounddemo))
if (!sounddemo.DoNotProcess())
// ExamineSignal(AMsignal, 0, 4000) //
Incoming signal // Choose which "radio station"
you want to hear MultiplyByReference(AMsignal,
carrier_frequency0) ExamineSignal(AMsignal,
0, 4000) // IFstage_low_pass_filter(AMsignal,
filter_coefficients, FILTER_LENGTH) // ExamineSig
nal(AMsignal, 0, 4000) // RectifySignal(channel1
_in, channel2_in, AMsignal) // ExamineSignal(cha
nnel1_in, 0, 4000) // Audio_low_pass_filter(
channel1_in, channel2_in, leftchannel_out, //
rightchannel_out,
filter_coefficients, filter_coefficients,
FILTER_LENGTH) // ExamineSignal(leftchannel_out,
0, 4000) // DCremoval(leftchannel_out,
rightchannel_out) // ExamineSignal(leftchannel_o
ut, 0, 4000)
24
Software Radio Demo
while (WaitAMSignal(AMsignal, sounddemo))
if (!sounddemo.DoNotProcess())
// ExamineSignal(AMsignal, 0, 4000) //
Incoming signal // Choose which "radio station"
you want to hear MultiplyByReference(AMsignal,
carrier_frequency0) // ExamineSignal(AMsignal,
0, 4000) IFstage_low_pass_filter(AMsignal,
filter_coefficients, FILTER_LENGTH) ExamineSigna
l(AMsignal, 0, 4000) // RectifySignal(channel1_i
n, channel2_in, AMsignal) // ExamineSignal(chann
el1_in, 0, 4000) // Audio_low_pass_filter(ch
annel1_in, channel2_in, leftchannel_out, //
rightchannel_out,
filter_coefficients, filter_coefficients,
FILTER_LENGTH) // ExamineSignal(leftchannel_out,
0, 4000) // DCremoval(leftchannel_out,
rightchannel_out) // ExamineSignal(leftchannel_o
ut, 0, 4000)
25
Software Radio Demo
while (WaitAMSignal(AMsignal, sounddemo))
if (!sounddemo.DoNotProcess())
// ExamineSignal(AMsignal, 0, 4000) //
Incoming signal // Choose which "radio station"
you want to hear MultiplyByReference(AMsignal,
carrier_frequency0) // ExamineSignal(AMsignal,
0, 4000) IFstage_low_pass_filter(AMsignal,
filter_coefficients, FILTER_LENGTH) // ExamineSig
nal(AMsignal, 0, 4000) RectifySignal(channel1_i
n, channel2_in, AMsignal) // ExamineSignal(chann
el1_in, 0, 4000) Audio_low_pass_filter(chan
nel1_in, channel2_in, leftchannel_out,
rightchannel_out, filter_coefficients,
filter_coefficients, FILTER_LENGTH) ExamineSigna
l(leftchannel_out, 0, 4000) // DCremoval(left
channel_out, rightchannel_out) // ExamineSignal(
leftchannel_out, 0, 4000)
26
Software Radio Demo
while (WaitAMSignal(AMsignal, sounddemo))
if (!sounddemo.DoNotProcess())
// ExamineSignal(AMsignal, 0, 4000) //
Incoming signal // Choose which "radio station"
you want to hear MultiplyByReference(AMsignal,
carrier_frequency0) // ExamineSignal(AMsignal,
0, 4000) IFstage_low_pass_filter(AMsignal,
filter_coefficients, FILTER_LENGTH) // ExamineSig
nal(AMsignal, 0, 4000) RectifySignal(channel1_i
n, channel2_in, AMsignal) // ExamineSignal(chann
el1_in, 0, 4000) Audio_low_pass_filter(chan
nel1_in, channel2_in, leftchannel_out,
rightchannel_out, filter_coefficients,
filter_coefficients, FILTER_LENGTH) // ExamineSig
nal(leftchannel_out, 0, 4000) DCremoval(left
channel_out, rightchannel_out) ExamineSignal(le
ftchannel_out, 0, 4000)
27
Concepts tackled
  • Differences between processor and evaluation
    board
  • Functionality present of TigerSHARC evaluation
    board
  • Accessing the A2D and D2A in an easy way needed
    for all Labs.
Write a Comment
User Comments (0)
About PowerShow.com