STM32F401CCU6 (Arm Cortex MCUs) SID Player by Bakisha
STM32 (Arm Cortex MCUs) SID Player by Bakisha.
SID chip (6581 and 8580) and 6502 CPU emulator for STM32 (Arm Cortex MCUs). Compiled with Arduino IDE and uploaded with ST-LINK V2.
NOTE:
I have added to the original code of Bakisha the visualization of the 3 SID voices via 3 x Green LED.
Useless to write more about this, watch the video and the photos.
Special thanks goes to Bakisha for his work.
Components used for this project:
- 1 x BreadBoard.
- 1 x STM32F401CCU6 (STM32 Black Pill) or STM32F407VET6
- 18 x BreadBoard jumper.
- 1 x SD Card Module.
- 3 x Green LED.
- 1 x Resistor (100 Ohm)
- 1 x Capacitor (100 nF)
- 1 x Capacitor (10 uF – 16v)
- 1 x Potentiometer (10KOhm)
- 1 x Jack Audio 3.5 Female.
You can found the schematic here.
Gallery:
Video:
Categories: Firmware, Hardware, News & Rumors, Projects / Repairs, Sid Player, Today, Various
Hi,
Very good job, just a question what are the references of your Arduino STM32 board and your SD Card board
Best regards
Manuel
@Manuel
Sorry, components list added to the post.
Is the code to add the 3 led’s available?
@Doug Venner
Unfortunately not,. but it’s very simple, here is the “patch” for the leds.
*** z_SetupLoop.ino
below: if (VIC_irq_request == 0) {
->
#ifdef USE_LED_VOICE
if (Gate_bit_1) {
digitalWrite(LED_VOICE_1, HIGH);
} else {
digitalWrite(LED_VOICE_1, LOW);
}
if (Gate_bit_2) {
digitalWrite(LED_VOICE_2, HIGH);
} else {
digitalWrite(LED_VOICE_2, LOW);
}
if (Gate_bit_3) {
digitalWrite(LED_VOICE_3, HIGH);
} else {
digitalWrite(LED_VOICE_3, LOW);
}
#endif
*** STM32SID_FOLDER_PLAYER_SDCARD_BUTTON3.ino
// #define USE_LED_VOICE // enable LED voices on PA2 – PA3 – PA4 – STM32F401CCU6
// enable LED voices on PB5 – PB7 – PB9 – STM32F407VET6
// #define LED_VOICE_1 PA2 // STM32F401CCU6
// #define LED_VOICE_2 PA3 // STM32F401CCU6
// #define LED_VOICE_3 PA4 // STM32F401CCU6
#define LED_VOICE_1 PB5 // STM32F407VET6
#define LED_VOICE_2 PB7 // STM32F407VET6
#define LED_VOICE_3 PB9 // STM32F407VET6
*** 20_hardware.ino
below:
#ifdef BUTTON_NEXT
pinMode(BUTTON_NEXT, INPUT_PULLUP);
#endif
->
#ifdef USE_LED_VOICE
pinMode(LED_VOICE_1, OUTPUT);
pinMode(LED_VOICE_2, OUTPUT);
pinMode(LED_VOICE_3, OUTPUT);
#endif
Thanx, will give it a try!