$24
Which is better, the SPI Digital-to-Analog Converter or the Built-in Analog-to-Digital Converter. In this laboratory you will gain further experience with SPI by using the MSP430 and the MCP4921 DAC to create a simple function generator. Specifically, your function generator will be capable of generating different DC values as well as a square wave, a sawtooth wave and a triangle wave. You will also investigate the accuracy of both the DAC and the ADC12.
Pre-lab: There is no pre-lab this week but you will use some of the material covered in Homework #5.
Requirements:
In implementing this lab you are required to complete each of the following tasks. You do not have to complete the tasks in the order listed. Be sure to answer all questions where indicated. Your answers should be complete and in complete sentences. There
is no formal report this week. The sign-off, screen shots and the answers to the questions are it! Plus code submission, of course.
This week your welcome screen should instruct the use how to use the function generator. For example, Button 1 = DC, Button 2 = Square wave, etc.
When button 1 is pressed your function generator should produce a DC voltage. The value of the voltage produced should be controlled by the scroll wheel. When the wheel is turned in one direction the DAC output voltage should increase and when the wheel in turned in the opposite direction the output voltage should decrease. How does the MCP4921 LDAC work? Do you have to repeatedly send the code to the DAC to maintain the voltage or do you only need to send the code once then give the LDAC? ______________________
Take a screen shot of your DC output on the oscilloscope.
CONNECT THE OSCILLOSCOPE CAREFULLY. Connect ground first ( on Launchpad J10 jumper). Do not short any other pins to ground when connecting the scope ground! It's very easy to do. Be careful. Then connect the positive lead of the oscilloscope to the DAC Out pin.
Jumper P7 selects the supply voltage for the MCP4921 DAC. The two options are 3.3V and 5V. Exit the debugger and Completely Unplug the lab board and then move the P7 jumper to the 5 volts setting. Reconnect the board an d measure the minimum and
maximum DC voltages your DAC can actually generate when P7 is in the 5V position? Min __________ Max ___________
Unplug the lab board and move the P7 jumper back to the 3.3V setting. IMPORTANT: Use the 3.3V setting for the rest of the lab.
Reconnect the board and measure the minimum and maximum DC voltages your DAC can actually generate when P7 is in the 3.3V position?
3.3V Reference: Min __________ Max ___________
When Button 2 is pressed, the function generator should generate a 80 Hz square wave. Again the peak amplitude should be controlled by the scroll wheel with the minimum voltage=0V. Use the Timer A2 to implement your waveform. Software delays are not acceptable. Take a screen shot of your square wave output on the oscilloscope clearly showing the period. Period __________.
Read up on the performance of the MCP4921 DAC. Specifically, document the following. What is the function of LDAC? How soon is the output voltage available after LDAC is applied? How fast can you effectively change the output voltage?
When Button 3 is pressed, the function generator should generate a 75 Hz sawtooth wave. Use the information you learned from question (6) above to make the best staircase approximation to a sawtooth that you can. What are your step size increment and step duration? Why? You must justify your step size!! Just choosing a number is not enough.
In this case, your peak amplitude should be the supply voltage (i.e. 0 to Vcc, or as close as you can achieve). Use the Timer A2 to implement the stair steps and period your waveform. Software delays are not acceptable. Take a screen shot of your sawtooth wave
output on the oscilloscope clearly showing the period. Take a
zoomed in screen shot, too, showing your staircase approximation.
Period ___________.
When Button 4 is pressed, the function generator should generate a 100 Hz triangle wave. Again, use the information you learned from question (6) to make the best staircase approximation that you can. What are you step size increment and step duration? Why? Again you must justify your choices. Numbers alone are not enough.
10)The peak amplitude should again be Vcc, or as close as you can achieve. Use the Timer A2 to implement the period of your waveform. Software delays are not acceptable. Take a screen shot of
your triangle wave output on the oscilloscope clearly showing its period. Take a zoomed in screen shot, too, showing your staircase
approximation. Period __________.
PLUS 10 pts: Have the scroll wheel control the frequency of your triangle wave. The output frequency range should be 50 Hz to 250 Hz. Again, you must use Timer A2 implement the period of the waveform. The amplitude should be Vcc. Take a screen shot of your triangle wave output on the oscilloscope at 3 different frequencies with period clearly shown.
In this part you will test the linearity of the DAC and the ADC. Write a function that will take a single channel, single conversion measurement from the ADC (see lab 3). Use analog input channel A1 (P6.1) for the ADC input and set the Vref+ to be AVcc. Your function should return a floating point value equal to the input voltage on A1. Using the single pin jumper wire provided by the course staff, connect the DAC OUT pin to the A1 (P6.1) input on the Launchpad header.
Modify your code to call your ADC function in your main loop only when Button 1 is pressed. Set a break point after the call so that you can examine the voltage returned by the ADC function and also measure the DAC output voltage on the ocsilloscope. Take at least 10 measurements for DC values across the range from 0 to
3.3V. Tabulate the (1) codes sent to DAC, the (2) the expected DAC output voltage for that code (3) the DAC output voltage from oscilloscope and (4) the voltage returned from your ADC function.
Is the MSP430 ADC12 actually linear? What about the MCP4921DAC?
What impact do your findings have for a measurement system that relies on either or both or these devices?
To submit your code for grading, you will need to create a zip file of your CCS project so that the TAs can build it. You can also use this method to create a complete backup copy of your project (perhaps to archive or send to your partner) for later. To do this:
Right click on your project and select "Rename..."
If you are submitting your project, enter a name in the following format: ece2049a18_lab4_username1_username2 , where username1 and username2 are the user names of you and your partner. (NOTE: Failure to follow this step will result in points deducted from your lab grade!)
Click OK and wait for CCS to rename your project.
Right click on your project again and select "Export..." then select "Archive file" from the list and click Next.
In the next window, you should see the project you want to export selected in the left pane and all of the files in your project selected in the right pane. You should not need to change which files are selected.
Click the "Browse" button, find a location to save the archive (like your M drive) and type in a file name using the EXACT SAME NAME used in Step (2).
Click "Finish". CCS should now create a zip file in the directory you specified.
Go to the Assignments page on the class Canvas website. Click Lab 4 Code Submit. Attach the archive file of your project that you just created and hit the Submit button. Only one submission per team.