Circuit Cellar 2-Part Feature Article Jul - Aug 2008 (#196 - #197):
Design Techniques: Single PSoC 8-Channel Mixer
with adjustment knobs, reverb, pitchshift, speech, intercom, and permanent setting memory

Paypal shopping cart / purchase buttons can be found at the bottom of this page.



 

Circuit Cellar

“PSoC Analog Design Techniques – Audio, Routing and DSP”
Part 3 of 2: Updates / Corrections / Addendum
By Chris Paiano, CpE – http://www.chrispaiano.com – chris.paiano@gmail.com
 

Updates / Corrections / Addendum:
 In building a feasible mixer experimentation kit, I have made a couple changes since this article’s original submission.  First and foremost, the mixer’s adjustment pots are now 10k – a much more commonly available part.  The related charge components have also been adjusted appropriately, as well as the PSoC’s internal charge frequencies, delays, and knob scaling.  The pots will be on a separate board to allow for multiple options or further user interface customizations.

 The 10k adjustment pots are not only easier values to obtain, but they also allow the use of 1M pull down resistors on the inputs for a new pot scanning option.   The newer firmware can detect if no pots are present on a bank, and allow the user to program the pre-sets one bank at a time by moving a single bank of knobs from connector to connector.  This then only requires building a minimum of a single bank of pots when the mixer is going to be used in the pre-set select mode.

 Cypress officially does not support my original use of their “AGnd Bypass” pin (P2[4]); indeed, if too much current is drawn from that AGnd – the PSoC will probably be damaged.  I have created quite a few bad PSoCs in experimenting with this.  Now, to create an AGnd for biasing, I use a simple voltage divider.  This overall requires more current, but is safer for the PSoC – and works just as well.

 For a battery-based application, you still might want to use the PSoC’s internal AGnd Bypass line for biasing if you can keep the current draw from it low.  It is very handy for battery apps, due to its low current requirements and inherent power shut down.

 Since the above fix frees up P2[4], I split the existing functionality into three buttons for simpler user operations.  Now there are no double-button press functions, and only one button has a separate function when held or tapped.  The new button is the “Set Button.”  When it is tapped, the next stored set of FLASH settings is loaded.  When it is held, the current settings are written to the current selected set in FLASH.  The Scan Pots button simply enables or disables scanning of the pots, and the Mode Button simply cycles through the available operation modes.

 Since the output of the PRS does not result in enough amplitude to match the mixer’s other outputs, I have decided to route this signal back through one of the other channels.  The experimentation kit available at www.chrispaiano.com comes with a patch cable; the user can choose to disconnect the PRS module output from the Mono output mix and instead route it back into another open channel input for amplification.  This also makes a true Reverb mode possible with a decaying echo.
 The resistor value used for the Mono output channel has been adjusted for better mixing.  The external Agnd resistor R29, and PRS filter resistor R34, have been changed to 1k.
 In intercom mode, only the Mic Rd knob will adjust the Rd channel; it is otherwise disconnected from the mix (the R masters will have no effect on the intercom volume).  This mode can operate as a simultaneous two-way intercom without a Push-To-Talk (PTT) button as long as one side has a headset.

The original PCB layout, described in the article, used to fit the requirements of ExpressPCB's inexpensive MiniBoard service; however, in redesigning this board for the mixer kits, I've had to upgrade to the ExpressPCB Proto-Pro service so that I can have a silkscreen, labels, and enough through-holes to handle everything.  This results in a better PCB but it is nowhere near as inexpensive at low quantities.
 
 

Notes

This is the quickest way to get started working with the design techniques involved in the article; in addition, multiple versions of the source code / project files are included to allow readers to have:

    *  a basic 8-channel mixer with adjustment knobs (as described in the first half of the article), on the less-expensive CY8C27443, with partial knob scanning test modes selectable in the code (separate firmware versions are included for each test mode, for users that do not own a C compiler but have a programmer and want to experiment)
    *  a basic 8-channel mixer with adjustment knobs (as described in the first half of the article), on the more-expensive CY8C29466, with partial knob scanning test modes selectable in the code (separate firmware versions are included for each test mode, for users that do not own a C compiler but have a programmer and want to experiment)
    * a fully-featured 8-channel mixer with adjustment knobs, selectable DSP / intercom modes, speech feedback, and permanent setting memory (as described in the second half of the article), on the more-expensive CY8C29466 (not possible on the less-expensive PSoC due to resource shortages), with no test modes

The kits come with a CY8C29466 (the more-expensive 28-pin DIP PSoC) and a CY8C27443 (the less-expensive 28-pin DIP PSoC).  The 29466 will be preprogrammed as the full mixer with all the bells and whistles.  The 27443 will be preprogrammed as the basic mixer with adjustment knobs (not in test mode, in full operation mode).  You will only need to purchase a programmer if you want to try programming your own firmware - or one of the test mode firmwares  If you want to try altering any of the mixer source C code, you will need one of the supported C compilers (Imagecraft is the standard, Hi-Tech is the professional) in order to compile it into a programmable .HEX file.  See www.cypress.com for details.

If you can't afford the C compiler, and / or would prefer to work in assembly (assembly compiler comes with free PSoC Designer software), the compiled .LST (list) files for the various mixer software projects are included with the source project files.  These show what assembly instructions the Imagecraft compiler interprets the C code as; although it's not pretty, you can almost copy and paste that into a main.asm file (removing all the addresses and replacing any destination addresses with labels) and it should work the same.  However, this is a lengthy process - so be prepared to spend some time editing and tracing jumps.
 
 

Known issues / quirks:
· Certain channels have more noise than others
· DSP processing does not occur while the Scan Pots button is being held (to avoid interrupt and timing issues)
 
 
 

CORRECTION:
Corrected Table 2 from part 1: (calculation did not include enough significant figures in original table, original values were incorrect)
Table 2 – SC PGA Gain Settings, Fcap = 32

Acap or Bcap
Gain
0
1
0.03125
2
0.06250
3
0.09375
4
0.12500
5
0.15625
6
0.18750
7
0.21875
8
0.25000 
9
0.28125
10
0.31250 
11
0.34375 
12
0.37500
13
0.40625 
14
0.43750
15
0.46875 
16
0.50000 
17
0.53125
18
0.56250 
19
0.59375
20
0.62500 
21
0.65625
22
0.68750
23
0.71875
24
0.75000 
25
0.78125
26
0.81250
27
0.84375 
28
 0.87500
29
 0.90625
30
 0.93750
31
 0.96875



 
 

Downloads:

Full package of updated mixer experimentation kit software / firmware: includes both the basic CY8C27443 mixer and the advanced DSP CY8C29466 mixer sets, the Wav2H application & VB source code, and (since 7/21/2008) the Imagecraft-compiled .LST files for each project (found in the "output" folders).

To run Wav2H, you may need to download Microsoft's Visual Basic 6.0 Runtime Libraries.

The web edition of Circuit Cellar #216 can be found here in PDF format, this contains the first part of the mixer article.

The web edition of Circuit Cellar #217 can be found here in PDF format, this contains the second part of the mixer article.

Download full original article project file archive (as it was submitted in the summer of 2007) here.  This does not include any new revisions for the component changes in the mixer kits.

-----

To compile the mixer firmware, you will need Cypress' PSoC Designer software v4.4 or later and a C compiler license (it is written in C).  Imagecraft makes a PSoC C compiler, and Hi-Tech also makes a more advanced PSoC C compiler.  Imagecraft's compiler may be purchased at this site.  This is ONLY for those of you who wish to directly alter the mixer C code and experiment at a lower level.
 

To program a PSoC with compiled firmware through the MiniProg, you will also need the PSoC Programmer software.  This will still be useful to those of you without a C compiler, as you can program and compile in assembly language for free.  You can also program PSoCs using the precompiled .HEX files included with the source projects.
 
 



 
 
 
 
 
 
 
 

Click on an image to get more detail.

This is a photo of the first assembled 8-channel mixer PCB prototype (no silkscreen / labels) - production PCBs include the silkscreen and labels (photo coming soon!)
Here is the updated 8-channel mixer schematic to match the changes from the article to the experimentation kit in PDF format.
Here is the updated 8-channel mixer basic internal PSoC analog module routing diagram in PDF format.
Here is the updated 8-channel mixer PCB layout in PDF format.
Cypress sells an inexpensive PSoC programmer called the MiniProg.  This programmer is available in a variety of kits; the least expensive kit will do just fine for programming / experimenting / customizing the 8-channel mixer kit.

Search http://www.cypress.com for "MiniProg" and you should find it.

At the time of this website update, the MiniProg could be purchased here.

Cypress also lists several third-party programmers that will work.

To compile the mixer firmware, you will need Cypress' PSoC Designer software v4.4 or later and a C compiler license (it is written in C).  Imagecraft makes a PSoC C compiler, and Hi-Tech also makes a more advanced PSoC C compiler.  Imagecraft's compiler may be purchased at this site.









To program a PSoC with compiled firmware through the MiniProg, you will also need the PSoC Programmer software.
 


There are a couple options to purchase the 8-Channel Mixer Experimentation Kit - listed here from the most complete to the least:

As of now, kits are priced based on single-quantity components and PCB orders.  My father and I still hand-assemble and test the mixers here; I will never outsource.

If it becomes necessary to keep up with increasing demand, I will locate an American pick-and-place company to stuff my boards.  This goes for all my kits and products.  As it becomes possible with increased interest and order quantities, the prices on the website will drop accordingly as I can afford to do so without operating at a net loss.

All kits come with a CD containing the latest PSoC Designer software, PSoC Programmer software, all mixer project source / firmware files, the Wav2H application & VB source, schematics, PCB layout drawings, and detailed parts list with suppliers.
 

All prices are in USD (U.S. Dollars).

1) Full / Assembled / Tested Kit
The completely-assembled 8-Channel Mixer Experimentation Kit (fully assembled, programmed, and tested) sells for $135.00 USD + shipping (calculated on Paypal).
This comes with both types of PSoCs, pre-programmed in case you do not wish to purchase a programmer.

2) Full Kit, Assembly Required
The full 8-Channel Mixer Experimentation Kit (not assembled) sells for $115.00 USD + shipping (calculated on Paypal).
This comes with both types of PSoCs, pre-programmed in case you do not wish to purchase a programmer.
This will require you to stuff your own circuitboard, solder the parts in, and test the mixer.

3) Minimal Kit, Assembly Required
The minimal 8-Channel Mixer Experimentation Kit (not assembled) sells for $95.00 USD + shipping (calculated on Paypal).
This kit does NOT include: RCA jacks, potentiometers, or the less-capable CY8C27443 PSoC.
This comes with the CY8C29466 (the more-capable PSoC), pre-programmed with the DSP mixer firmware in case you do not wish to purchase a programmer.
This will require you to obtain some of your own components, stuff your own circuitboard, solder the parts in, and test the mixer.

4) PCB / PSoC Only (no other components), Assembly Required
The PCB / PSoC - Only 8-Channel Mixer Experimentation Kit sells for $65.00 USD + shipping (calculated on Paypal).
This kit does NOT include any components except the CY8C29466 (the more-capable PSoC), pre-programmed with the DSP mixer firmware in case you do not wish to purchase a programmer.
This will require you to obtain your own components, stuff your own circuitboard, solder the parts in, and test the mixer.
 
 
 

CpE-MXEXk
Option 1: Mixer Kit, Assembled & Tested
$135 + shipping
CpE-MXEXuk
Option 2: Mixer Kit, Not Assembled
$115 + shipping
CpE-MXEXmk
Option 3: Mixer Kit, Minimal
$95 + shipping
CpE-MXEXpcb
Option 4: Mixer PCB / PSoC Only
$65 + shipping
CpE-MXEXpsoc
Option 5: Mixer Pre-programmed PSoC Only
$15 + shipping

 
 

I prefer Paypal (using my email chris.paiano@gmail.com), but will also accept personal checks, money orders, or cashier's checks.  Paypal orders will be started on immediately, whereas any check-based orders will not start until the funds have been cleared.  Depending on your location, shipping costs will vary.  Please email me (chris.paiano@gmail.com) with your specifics to get a shipping quote and a Paypal shopping cart payment button emailed to you.

My mailing address to send orders to:
Chris Paiano
1370 Sagecrest Dr. #197
Elko, NV 89801

Once your order has been received and funds have cleared, please expect up to 4 - 6 weeks for delivery due to high order volume.


Disclaimer:  Please use this kit responsibly.  Whenever experimenting with electronics projects there is always the risk of electric shock if proper safety precautions are not taken.