This is an avr project for selecting one audio signal from multiple input lines (6-port maximum). The project is designed to minimize power consumption by making use of sleep modes, interrupts and internal timers. Other features include multifunction pushbutton, LCD, SPI-communication, automatic detection of audio signals via ADC.
Objective for this project is to generate amazing sound with minimal distortion.
4-port setup with HD44780 display, installed in 3.5" FDD mounting bracket.
Microcontroller unit detects via analog-to-digital converter what audio lines are receiving signal. MCU sends this information through Serial peripheral interface to the primary MCU and based on input port priority, primary MCU switches on correct input port. Port information is shown in LCD. After 10 secs or so, display turn off to save power. Display is accessed using 4-bit interface. Pushbutton can be used to force certain port open or to switch back to automatic operation.
In addition to Master, there's 3 git branches. Each for a different version of this project.
- led_version
- display_version
- automatic_version
To get this running you can use a toolchain
avr-libc gcc-avr binutils-avr avrdude
For to flash your MCU, run
make fuses
make flash
Primary MCU is Atmel's Attiny4313 MCU, with internal 128
Here's my printed circuit board I ordered from a fabricator pcbway.com
First test setup with "a proper pcb". Works nice.
Voltage: 5V
Current: 0,11mA
Audio connection: max 6x stereo in, 1x stereo out
- Consept testing with Attiny2313A/4313
- Sleep modes, interrupts
- Simple pushbutton logic
- LED interface
- Schematics
- Design PCB & place order
- Board test setup, sound input/output
- Fabricate enclosure
- Power source
- LCD interface
- ATtiny24A with ADC
- SPI communication
- Automatic audio signal detection
- Multifunction pushbutton
- Measure distortion