01/26/2019 at 07:58 •
2 x SD cards, debugger off board now.
Need to do more work on the firmware. After that i'll need to remake the 2 layer analogue board. It will be 10x10 cm and should go under the digital board with the 2 x ADC/DAC cards bridging them.
I need to make the power supply into cards to and separate the phantom power card. I like the system to be as modular as possible so I can upgrade designs in each card as I go. I need to start making all the cards 3cm high max so the final size of the box reduced. I'll probebly end up just using 2 x Dsub connectors for IO breakout cables.
Its really useful to check you solder traces with a proper gerber viewer and do a final check !
here you can see the DSP AUAU1467 and I'm checking some I2C lines that run between the GND pad and out through the top left corner. Not really pretty routing and I had to shrink the traces down to 6mil to get them through. you can toggle the layers on and off to get a proper idea of whats going on :)
Here I'm looking at the uSD cards and checking the new traces. I made this much more neat this time and made it obvious which resistor is the pullup for the slot populated switch this time.
Although your DRC should pick up any un-routed / shorted tracks its definitely worth checking the Gerber files. I had a few time submitted mechanical layers that were defined as copper layers by mistake and just shorted tons of tracks. lucky for me PCBway spotted the error but I could have save a lot of time by just checking the gerbers with this tool.
01/24/2019 at 06:57 •
Horray the new 4 layer board is here from www.pcbway.com and I made tons of fixes :) + its got gold contacts !!! oooooohhhh :)
The quality of this board looks awsome. I checked the upgrade for free box if available and got what looks like gold contact for free, wow !
I have used smaller IO sockets , 1.27mm so I could free up some space for cool things like a 1" OLED screen to help with checking Bluetooth control is working properly. I managed to sneak on 2 I2C RF module sockets to. what are they for ?
Digital diversity audio uplink in the future I hope.
OK, heres what was wrong with the last prototype board...
The 1st thing to go was the debugger from VER1 ! it was a stupid idea to begin with :) I got the tag connect cable in the post and got using it right away ! SWD 6pin connector footprint on bottom right of board in pic above. The on board debugger did work well and had some nice flashing but it was just a wast of space ! I made quite a few errors on routing the pins from the STMF0 -> STM32f7 on the old board and that was fixed with a couple of bodge wires. the worst mistake was with the USB enumeration 1.5k resistor though. it was in series instead of pulling the DP line high. Also the resistor divider was wrong ! somehow I was using 100k instead of 10k. To be fair I didn't have a clue what at the time what USB enumeration was, I was just cobbling together whatever I could understand from the STMF7 discovery board schematic. the next best bit was that I had forgotten that i would need to flash the dubugger itself with STM-link firmware of some kind and had no pins for this ! so it was great fun taking on bodge wires to write the firmware! In the end it all worked and then I thought ... what a waste of board space :)
my next favourite mistake was the complete misunderstanding of the uSD populated switch. it really is just a switch with 2 pins. for some time saving reason I thought surely the switch pin just goes high when you insert a card. NO! the mechanical switch just bridges the 2 pins so you need to pull the line high with a resistor when connected or something similar.
WRONG!!! this just does nothing :)
Hopefully better !
insert the card and the detect line goes high through a 10k resistor. Do I need a week resistor to pull line low when no card is inserted so the detect pin is not floating on the ARM ? I'm hoping there is a week resistor in built on GPO pins for that!
Next favourite mistake , I had the Soft Start SS pin grounded and even more stupidly a second 3.3v power supply for the debugger. mmmm. It was one of those really hard to find shorts and hard to fix. I had to get a mini drill and cut the trace right next to the power IC.
This one was a pain to find. The 150pf cap should bridge PLLFILT and PVDD and not be in line with R10 !
Overall the new board quality seams A1 to me. I'm using the smallest drill hole sizes allowable for the vias and in many places i'm down to 6mil track spacing.
Most of the IC pads are 0.5mm which is pretty close!
I've been using PCBWAY.com mostly for my boards and sending them to Japan tax free. They don't charge import tax on electronics here on anything under 100$ value.
Theres one bad review on EEVBLOG about pcbway but I have never had any issues whatsoever ! They are super helpful in pointing out design mistake when I get a via to near something or have cutout marks that are just wrong daving me time and money. I have tried other PCB company's but I find PCBWAY to be the fastest cheapest and trouble free. I have uploaded project from both Kicad and Altium software and never had issues.
heres some basic point worth knowing and that have saved me quite a lot of money! In fact usually I end up paying more for shipping than the pcb !
PCB prototype service - Only $5 for 10 PCBs and every new member will get a $5 bonus. + Express 24 hour / 48 hour service
I have never used the stencil service or the pick n place service but I will try it one day.
Stencil + Flex PCBs + PCB layout service -
This looks really cool although I have not tried it ! Non-profit sponsorship / Crowdfunding project sponsorship - https://www.pcbway.com/project/sponsor/
Share open source projects to get commission? looks great to me ! https://www.pcbway.com/project/shareproject/techshare.aspx
PCB Design Contest -https://www.pcbway.com/project/PCB_DESIGN_CONTEST.aspx
Invite friends and earn money - Send the referral link to your friends, and your friends will get $5 of New User Free Credit. You will receive $20 discount coupon for each friend that have prepaid ,You will also earn 10% of what they (1st order) spends cash.- https://www.pcbway.com/member/specials/invite.aspx
Special features - Real-time fabrication status
I even got some pretty cool looking father christmas PCB's which helped my christmas tree HAHA
01/02/2019 at 14:21 •
under half an amp @ 12v ! nice :)
I'd like to keep the final mixer under 12v 1amp ( 12 watts )
this is with bluetooth control module running
2x line drivers
2x HP drivers
32 channel IO ADC DAC
Phantom power 48v on 4 channels
12/21/2018 at 10:26 •
just a quick look at the board powered on and in debugging mode.
the bluetooth module is plugged in and working.
I'm nearly done porting over the basic mixer code for the DSP ADAU1467 from the old ADAU1446 and i'm
starting to use safeload code loaded to RAM for the DSP coefficient on the fly changes.
I think I will make a digital AES3 IO board for bus B and just have 16 channels of differntial analouge IO using Bus A.
I sort of regret not putting on a 1" oled screen on there just so I can print some basic status info although its not really essential.
Would have looked cool and there so cheap ! maybe its for the best , could be just a waste of precious power since it will
eventually be a battery device !
The Debugger might stay on there for another revision. It might be useful for just updating firmware if nothing else.
Its just an STM32F10xx . Obviously I could'nt re-sell the board with the stm debugger software installed , but maybe I could
leave that to the end user :) I think my worst error on this board revision was to not connect the stm32f10xx to breakouts for
programming. For some reason I though I could just program it through the JTAG header connected to the STM32F769xx !!
Obviously that was not the case , so I ended up getting some really thin gauge wire and tacking onto stupid places to flash the
debugger firmware. I sought I'll do that again on this board !
these people are doing some nice Analouge Devices DSP boards but like me i'm not including the AD sigmastudio debugger on the main PCB :) http://www.freedsp.cc/
The next board will have a nice TC2030-IDC 6-Pin footprint on it as the massive 20pin header for JTAG /SWD is a gross waste of space :)
I ordered one from here
unfortunately I had to pay a massive postage fee to get one to Japan , they seam to have run out here !
Anyway , it will save a ton of board space in the long run..
11/20/2018 at 17:18 •
Version 2 parts soldered :)
more powerful DSP and ARM + memory ( underside )
ADC and DAC cards are now plugin BUSA & BUSB
On board ARM debugger on underside of board.
only 1 x uSD card because I ran out of DMA capable pins on the STM32F7
but have since discovered if I use a different revision of the chip without DSI
there are more pins available for second uSD card for recording redundancy.
SPI is for analogue pre-amp control
BT for BT module
I am now working on DSP mixer design for new DSP chip & firmware
to be done:
redesign analogue back plane for pre amps and driver cards
design the AES3 IO card option
think about what kind of file system I should use for recording. currently FAT
09/04/2018 at 08:03 •
Just got my new 4 layer board and 2 layer daughter cards. I need to make a new analogue IO board to but will have to use
my old one for now.
I decided to be brave and add the stm32f7 micro and programmer on the underside. I also included DRAM !
I'm not sure I'll use the JTAG or not. I have a micro usb port hooked up to an STM style serial programmer.
There should be 2 x uSD cards slots but I didn't appear to have DMA capable pins left on the micro to accommodate that.
I have broken all the spare micro pins out so maybe i will find a way to make the redundant file storage work.
I didn't bother with a usb host controller to simplify the design.
I kept all the parts to 0603 and avoided BGA
The DSP and QSPI flash are QFN style though.
I'm using a 10 channel fan out clock buffer U5 for 24.576mhz. the ARM micro can generate this but using the external clock
I can hopefully keep clock jitter to a minimum.
As you can probably see in pic there a ton of vias ! The DRAM chip is under the micro and there seams to be no good
way to wire up RAM to a stm32f7 !
Each trace has only 1 via from micro to dram. Its not running to fast so hopefully it will work.
The Daughter boards are spit plane and analogue power / GND will come from the analogue connector IO side
I don't really need 32 channels of balanced analogue audio IO !
I may well make BUSIO_B a digital IO board !
I was thinking of AES3 or maybe even something like DANTE
There's a bluetooth module header and SPI header that runs to the analogue board for digital gain etc.
I've ordered the parts. the NOR flash qspi chip was near impossible to get , I got some samples on way. 20 week lead time!
Might need to try and change that part to something less difficult to obtain on the next revision.
I should have enough power for all the IC's including the digital side of the ADC's and DAC's.
Lets hope I haven't made to many mistakes and its usable :) I'll be happy to bin the old proto board that didn't even have
power or ground planes :)
07/24/2018 at 10:51 •
Its just all the same microphone signal coming through the DSP at slightly different mix levels.
Its not perfect , a couple of really small glitches near the beginning of the recording.
Going for perfect here so will have to find out what that is ! The TDM8 clk 12.288mhz and FS are just going down
jumper wires and are patched into a scope , so probably not helping at all!
I scrapped the TS screen now and start recording with the bluetooth app.
after i finish 24bit & 32bit I will move onto sending the realtime recording data back to the app including nearly real time audio meters from the DSP to the app.
I'm going to unscrew / disconnect the screen now, waste of space :)
07/24/2018 at 00:38 •
8 channel wav poly 16bit recording is working in TDM8 mode !!!!!!!
no 24bit or 32bit yet but I can see how to make that work now. Its a question of making the SAI port 32bit , then the buffer and DMA channel 32bit ( WORD )
Its been interesting to work on. There is no timing as such in the application. the data just comes in over DMA and is dumped into a file.
Its the PCM wav record format header that describes channel count , bit rate , sample rate.
I thin the player might be more complex as it has to read the WAV file header and then playback in appropiate sample rate bitrate etc
There is the odd click and glitch in the recording , so I'm going to play about with buffer sizes and DMA priority etc until I
smooth out those problems then I'll add 24 and 32bit capability.
I'll need to go to TDM16 also to record the mix track as well as the independent channels.
I'm not sure where the transfer speed limit of usb host is but stm32f7 supports high speed , so the limit might the usb stick itself.
8 channels of 16bit audio
8 channels 16bit monothe minimum i need will be around double that in 24bit mode and including a 2 channel mix track
48000 x 16 bytes
768kBsec x 30 seconds = 23040000 bytes , ADD 44 bytes for the WAV header = 23040044 bytes 30 sec
Should be ok , its under 3MByte/sec write speed.
I haven't really thought about a playback ( review ) and how to do that . I suppose could just pipe the 8 channels back into the DSP mixer so you can preview any recorded channel or the mix. not really sure yet. I could have a kind of mix playback mode..
The recorder / player commands just about work in the bluetooth app. I should disable the TS/screen soon though as it could be the cause of the small glitches in the recording. really I need to send some data back to the bluetooth app suck as record time player recorder app state etc.
06/26/2018 at 06:07 •
The recorder app now records 8 channel WavPoly with a perfect mono of my microphone input on one channel.
There's is some nasty digital noise on two other channels so I don't think I'm there yet !
I'm getting the correct 12.288mhz SK clock and 48khz FS.
The 12.288mhz / 48khz should clock in the data at the correct speed for the recording.
It could be that although I've selected 16bit slots on the DSP that the adau1446 is sending it in 24bit slots anyway.
I'm going to figure out TDM8 then try TDM16. I need to record 8 ISO tracks and 2 stereo mix tracks simultaneously.
Then I need to work on unlimited recording time. It could be as simple as changing the record time variable in the app to a massive for now ! If I hit stop on the app the play closes the file properly.
then its look at 24 bit mode.
playback does not support 24 or 32 bit yet. I might need to get the DMA to split 32bit into 2 x 16bit for DMA. not sure DMA supports 32bit buffer samples data or not. more reading to do on stm32f7 DMA!
06/21/2018 at 13:58 •
The 1st test recording is here ! 16bits 2 channel recording from the master mix output. Sorry about the tired voice !
I had a few hours tough programing to make this work and was completely tired by the time I got it working!
You can here some audio click / jumps. This is because the ARM is master and generating its own clock with
the DSP in slave mode to it. The ADAU1446 doesn't have any ASRCs to sync the 2 clocks and doesn't like the clock mismatch :)
I had to battle with re-assigning SAI ( serial audio interface) pins on the stm32f7 demo board. I only have one SD pin available
on SAI_block_B and have to switch between player and recorder mode using the one SD pin and sharing the rest for FS and CLK.
I think I can can get 16 channels IO this way in TDM though so it should be enough for testing. Although it will be 16 channels in or out and not both at the same time ! or maybe they can be clocked in and out at the same time , not sure.
The next job is to get the SAI interface working in Slave RX TX Synchronious to the DSP MCLK then the whole system will be running off
the one high quality clock / fan out buffer. I already have the DSP setup for ISO recording.
I think after that my next coding headache will come from writing WAV poly. 8 channel WAV audio PCM files.
I will need to look up the spec of them and see how they are made. hopfully I can just write the TDM in slots and define in the header
in some kind of PCM descriptor ? anyone already know the answer? would be really helpful :)