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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.