Editing Modulation Plugin
Jump to navigation
Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | + | ==ToDos== | |
− | + | *make sure each components freq. response, to make sure the highest freq. | |
− | == | + | *place DAC into this module board together, then only 4 wires(Vcc, I2C clk, Gnd & I2C data) from host. |
− | * | + | *understand all components |
− | * | + | *call sample |
− | * | + | *draw circuit and PCB and grounding problem |
− | + | *test by real circuit and firmware | |
− | * | ||
− | * | ||
− | * | ||
Line 14: | Line 11: | ||
*The modulation module is used to deliver a digital output signal with the following characteristics: | *The modulation module is used to deliver a digital output signal with the following characteristics: | ||
**Square wave | **Square wave | ||
− | **Variable frequency ( | + | **Variable frequency (>1kHz) |
**Variable amplitude (0V - 2.5V) | **Variable amplitude (0V - 2.5V) | ||
− | * | + | *interface to MCU which do the control |
− | + | ||
+ | |||
+ | *Q: Is square wave where the "Lo" time is always at "GND" OK? | ||
+ | *Q: If not, is a switch between "Lo is GND" vs. "Lo is negative Hi" OK? Or does "Lo" need to be independently controlled with another ADC? | ||
+ | *Q: Will people be connecting a speaker directly to the output, requiring a relatively high-power output [[op amp]] such as the LM386N-3 ? | ||
==Software Solution== | ==Software Solution== | ||
− | *Timer Interrupt controlling I2C DAC can only achieve frequency response of about | + | *Timer Interrupt controlling I2C 10-bit DAC can only achieve frequency response of about 1kHz |
**5byte/cmd | **5byte/cmd | ||
**8bit/byte | **8bit/byte | ||
Line 27: | Line 28: | ||
**This yields 10kHz (0.1ms) | **This yields 10kHz (0.1ms) | ||
**As OS context switch is 10ms, set timer to 1ms (1kHz), so that 0.9ms can be used to process other tasks | **As OS context switch is 10ms, set timer to 1ms (1kHz), so that 0.9ms can be used to process other tasks | ||
− | |||
*Due to higher freq. response requirement, so using hardware to implement the clock | *Due to higher freq. response requirement, so using hardware to implement the clock | ||
==Hardware Solution== | ==Hardware Solution== | ||
+ | |||
+ | ===Overall Performance=== | ||
+ | *I2C Baudrate: | ||
+ | *Output Voltage Range: | ||
+ | *Output Frequency Range: | ||
+ | *Number of channels: | ||
+ | |||
+ | |||
+ | ===Selected Chips=== | ||
+ | {|border="1" cellspacing="0" cellpadding="5" | ||
+ | |+ | ||
+ | ! Part No. !! Description !! Order Chip || Call Sample | ||
+ | |-valign="top" | ||
+ | | [http://focus.ti.com/lit/ds/symlink/dac6574.pdf DAC6574IDGS] || Quad-channel 10-bit I2C DAC || Digit Key || No need | ||
+ | |-valign="top" | ||
+ | | [http://download.cypress.com.edgesuite.net/design_resources/datasheets/contents/cy2545_8.pdf CY2545???] || Quad PLL I2C Programmable Clock Generator || HQEW || Try Contact Cypress | ||
+ | |-valign="top" | ||
+ | | [http://www.onsemi.com/pub/Collateral/MC74VHC4051-D.PDF MC74VHC4053] || Analog Multiplexers || || Try Contact ON Semiconductor | ||
+ | |} | ||
+ | |||
Line 48: | Line 68: | ||
− | + | This architecture allows the square wave to run at a very high frequency, even with a slow I2C and a slow DAC. | |
Line 79: | Line 99: | ||
w 272 128 336 128 0 | w 272 128 336 128 0 | ||
w 176 256 176 144 0 | w 176 256 176 144 0 | ||
− | r 272 224 272 288 0 | + | r 272 224 272 288 0 1000.0 |
w 272 128 272 224 0 | w 272 128 272 224 0 | ||
w 272 288 272 352 0 | w 272 288 272 352 0 | ||
159 144 128 208 128 0 | 159 144 128 208 128 0 | ||
− | r 208 128 256 128 0 | + | r 208 128 256 128 0 1000.0 |
w 256 128 272 128 0 | w 256 128 272 128 0 | ||
w 144 256 176 256 0 | w 144 256 176 256 0 | ||
− | r 336 224 336 288 0 | + | r 336 224 336 288 0 1000.0 |
g 336 352 336 368 0 | g 336 352 336 368 0 | ||
w 336 288 336 352 0 | w 336 288 336 352 0 | ||
w 336 192 336 224 0 | w 336 192 336 224 0 | ||
− | r 352 192 432 192 0 | + | r 352 192 432 192 0 1000.0 |
− | o 4 64 0 34 2.5 | + | o 4 64 0 34 2.5 7.8125E-4 0 -1 |
o 0 64 0 35 5.0 9.765625E-5 1 -1 | o 0 64 0 35 5.0 9.765625E-5 1 -1 | ||
− | o 11 64 0 34 2.5 | + | o 11 64 0 34 2.5 0.0015625 2 -1 |
</nowiki></pre> | </nowiki></pre> | ||
− | === | + | ==Components Inside Circuit== |
+ | |||
+ | ===DAC chip=== | ||
+ | *Part No: DAC6574IDGS | ||
+ | *[http://focus.ti.com/lit/ds/symlink/dac6574.pdf datasheet] | ||
+ | *Resolution: 10-bit | ||
+ | *I2C clock Frequency: upto 3.4Mbps | ||
+ | *No of channels: 4 | ||
+ | *Operating Voltage: 2.7 - 5.5V | ||
+ | *Temperature range: -40 - 105<sup>o</sup>C | ||
+ | |||
+ | |||
+ | ===Clock Generator chip=== | ||
+ | *CY2545??? | ||
+ | *[http://download.cypress.com.edgesuite.net/design_resources/datasheets/contents/cy2545_8.pdf datasheet] | ||
+ | *buy at [http://new.hqew.com/Web/Public/Buyer/ICStockSearch.aspx?keyword=cy2545 here] | ||
+ | *I2C clock Frequency: upto 400kbps | ||
+ | *No of channels: 4 | ||
+ | *Operating Voltage: 2.5V, 3.0V, 3.3V | ||
+ | *Temperature range: -40 - 85<sup>o</sup>C | ||
+ | |||
{|border="1" cellspacing="0" cellpadding="5" | {|border="1" cellspacing="0" cellpadding="5" | ||
− | |+ | + | |+ Comparison between Different Clock Generator Chips |
− | ! Part No. !! | + | ! Part No. !! Opertating Volt !! Operating Freq !! Min Volt !! Max Volt !! output freq !! Min Temp !! Max Temp !! Pin |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|-valign="top" | |-valign="top" | ||
− | | | + | | CY2545 || 2.5V, 3.0V, 3.3V || 400KHz || -0.5V || 4.5V || 3- 166 MHz |
+ | | -40<sup>o</sup>C || 85<sup>o</sup>C || 24-pin | ||
|} | |} | ||
− | + | CLK 1-8 : frequency output | |
+ | CLK 3 : frequency selection (FS) | ||
+ | (Function 2) cy2545 has 4 PLLs, each PLLs can be set 2 frequency, CLK 3 use to select the frequency | ||
+ | CLK 6 : spread spectrum ON/OFF control input | ||
+ | (Function 2) for synthesizing and modulating the frequency | ||
+ | Vdd_CLK_BX (X=1,2,3) control the output frquency of Blanck X (X=1,2,3) | ||
+ | |||
+ | +------------------+ | ||
+ | | | |------CLK 1 | ||
+ | | | Bank 1 | | ||
+ | | | |------CLK 2 | ||
+ | |------------------| | ||
+ | | | |------CLK 3 | ||
+ | | | Bank 2 |------CLK 4 | ||
+ | | | |------CLK 5 | ||
+ | |------------------| | ||
+ | | | |------CLK 6 | ||
+ | | | Bank 3 |------CLK 7 | ||
+ | | | |------CLK 8 | ||
+ | +------------------+ | ||
+ | CLKIN/RST ---1. 2.5V/3.0V/3.3V external reference clock frequency | ||
+ | 2. Reset function POR :back to default condition / | ||
+ | Clean Start : keep the programmed value | ||
+ | Xout Crystal frequency output | ||
+ | Xin/EXCLKIN Crystal frequency input/ 1.8V external clock input | ||
+ | |||
+ | *Coding | ||
+ | [Start Bit]->[7-bits devices]-->[R/W bit]-->[ Slave ]-->[ 8-bits ]--> .. | ||
+ | [ address ] [ address ] [ ] [ CLK ACK ] [memory address] | ||
+ | |||
+ | ..[ACK]-->[8-bits]-->[ 8-bits ]-->....[ 8-bits ]......until... [stop bit] | ||
+ | [ ] [ data ] [data in MA+1] [data in MA+n] [ ] | ||
− | === | + | ===Analog Switch=== |
+ | *Part No: MC74VHC4053 | ||
+ | *[http://www.onsemi.com/pub/Collateral/MC74VHC4051-D.PDF datasheet] | ||
+ | *Switching Frequency: 120MHz | ||
+ | *No of channels: 4 | ||
+ | *Operating Voltage: | ||
+ | *Temperature range: -40 - 85<sup>o</sup>C | ||
− | === | + | {|border="1" cellspacing="0" cellpadding="5" |
− | + | |+ Comparison between Different Analog Switches | |
− | + | ! Part No. !! Operating Volt(V) !! Freq Resp(Hz) at 3V !! On-state Resist(Ω) at 3V !! Min Volt(V) !! Max Volt(V) !! Min Temp !! Max Temp !! Indenpent Circuit !! Voltage Supply Source !! Pin | |
− | + | |-valign="top" | |
− | + | | [http://focus.ti.com/lit/ds/symlink/sn74ahc4066.pdf SN74AHC4066] || Vcc : 2V~5.5V || 35MHz || 29Ω || Vcc : -0.5V || Vcc : 7V||-40<sup>o</sup>C || 85<sup>o</sup>C || 4 || single || 14 | |
− | + | |- | |
− | + | | [http://www.nxp.com/acrobat_download/datasheets/74HC_HCT4051_3.pdf 74HC4051D] || Vcc : 2V~10V Vee : -10V~2V || Nil || 80Ω || Vcc :-0.5V Vee : -11V || Vcc : 11V Vee : 2V ||-40<sup>o</sup>C || 85<sup>o</sup>C || 4 || Dual || 16 | |
− | + | |- | |
− | + | | [http://www.onsemi.com/pub/Collateral/MC74VHC4051-D.PDF MC74VHC''4051''] || Vcc : 2V~6V Vee : -6V~0V || 80MHz || 80Ω || Vcc :-0.5V Vee :-7V || Vcc : 7V Vee : 5V ||-40<sup>o</sup>C || 85<sup>o</sup>C || 4 || Dual || 16 | |
− | + | |- | |
− | + | | [http://www.onsemi.com/pub/Collateral/MC74VHC4051-D.PDF MC74VHC''4052''] || Vcc : 2V~6V Vee : -6V~0V || 90MHz || 90Ω || Vcc :-0.5V Vee :-7V || Vcc : 7V Vee : 5V ||-40<sup>o</sup>C || 85<sup>o</sup>C || 4 || Dual || 16 | |
− | + | |- | |
− | + | | [http://www.onsemi.com/pub/Collateral/MC74VHC4051-D.PDF MC74VHC''4053''] || Vcc : 2V~6V Vee : -6V~0V || 120MHz || 90Ω || Vcc :-0.5V Vee :-7V || Vcc : 7V Vee : 5V ||-40<sup>o</sup>C || 85<sup>o</sup>C || 4 || Dual || 16 | |
− | + | |- | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | *more information about the series 7400 in wiki: http://en.wikipedia.org/wiki/7400_series | ||
+ | *there is model G which is super high speeds at more than 1 GHz in 7400 family, however this model is very expensive. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | === | + | ===op-amp buffer=== |
+ | *OPA340 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | ==Possibly Useful References == | ||
− | [ | + | [http://www.ladyada.net/wiki/openbench/fgen An open source waveform generator] |