Search This Blog

Wednesday, August 1, 2018

Audio sw - project logs - part 1

Projects / Audio Switching  Original post date:06/19/2016

I have ordered some 74HC4052 dual 4:1 analog MUX and some NE5532 audio opamp today. It'll be another 2 months before these parts would start to show up. I have started looking into ordering a small double sided PCB for the analog part of the project.

I have some LM833N audio opamp and old 4052 (DIP) analog MUX that I could use should I need something before he parts arrived.


Most of the coding can be done without the daughter card. Here is a quick breadboard I have set up so that I can start the coding. I am once again using the STM32F030 modules that I built.


The main board design is more or less done. It is a bit big, so I'll try to make this using toner transfer. Once the coding is done, finalizing the layout should be really quick.


I'll be writing up some new libraries for this project: IR remote, ADC, audio visualization, RTC. Right now I am targeting the Nokia 5110 LCD as it is cheap and simple to code for.

Good news: I finished the first pass of routing on the daughter board. With a bit of clean up, it should be ready.
Bad news: Canada Post will likely go on strike depending on whether they get a new deal. If they go on strike, there is going to be a major backlog of packages even after the strike.

Not sure what the plans are going to be. The layout is a bit too much for toner transfer at home. I can probably do a protoboard or make a larger layout for tone transfer.

Nokia 5510 LCD driven from DMA SPI

It seems like using polling I/O for writing to SPI results in shifting extra empty 8 or 9 bits out the SPI, but the same SPI configurations with DMA just work as expected. Kind of silly to poll the DMA because of this behaviour.

I learnt a neat trick - turning on the " NSSP: NSS pulse management" inserts a couple of extra idle cycles between the bytes so that it makes it easier to spot on a scope or logic analyzer.

The old "Hello world" on a LCD (bare metal DMA).

RTC

Since the chip has a hardware RTC, I might as well use it. There are no 32kHz oscillator pins bonded out in this package, but there are provisions to use the HSE (High Speed External) oscillator. The 1Hz clock signal can be generated by selecting HSE/32 clock and the prescalers.

More fancy RTC feature such as (~1ppm resolution) clock trimming will have to wait.

Right now I am using a 5x8 fonts, I'll try to add 8x16 font next.

ADC+DMA+IRQ are working.
The averaged amplitude are used for the visualization and detecting volume for each of the source channels.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.