もっと今更、SC-88ProにS/PDIFを付けよう

Dependencies:   mbed

もっと今更、SC-88ProにS/PDIFを付けよう

STM32F103C8T6 ARM STM32 (blue pill)

  • モデル:STM32F103C8T6
  • コア:ARM 32 Cortex-M3 CPU
  • 72MHz頻度を作動させる
  • 64Kフラッシュメモリ、20K SRAM
  • 2.0-3.6Vパワー、I/O

というやつ。

/media/uploads/peu605/frontview.jpg

詳細はwikiの説明に

https://developer.mbed.org/users/peu605/code/DIT88proSTM32F1/wiki/説明

しまったなぁ、wikiのタイトル、漢字にしてしまったよ…

STM32F103C8T6, Roland, SC-88pro, S/PDIF, SPIDF, デジタル出力

Revision:
1:d7c7d1651f2e
Parent:
0:b3d998305b9d
Child:
2:62c8aa0c38c7
--- a/main.cpp	Fri Sep 01 13:20:19 2017 +0000
+++ b/main.cpp	Sat Sep 02 14:49:27 2017 +0000
@@ -238,12 +238,13 @@
         val |= _BV(31 - 4);
     }
 
-    // ==============================================
-    // Biphase Mark Code encodeand write to Tx buffer
-    // ==============================================
+    // ===============================================
+    // Biphase Mark Code encode and write to Tx buffer
+    // ===============================================
 
     // Z:preamble, A:aux, L:LSB, M:MSB, 0:filler(unused bit)
     // V:validity, U:user, C:ch status, P:parity
+    //                               ===> LSB to MSB, right to left
     //(PCUVM================L00AAAAZZZZ)
     //     PCUVM================L00AAAA  w/o preamble (= val)
     // --------------------------------
@@ -263,7 +264,7 @@
     lastCellZero = (bmc & 1) == 0;
     *txBuffPtr++ = bmc;
 
-    // Next, 5 ~ 31 bit, audio data and VPCP bits. 28/4 = 7 loops
+    // Next, 5 ~ 31 bit, audio data and VUCP bits. 28/4 = 7 loops
     // BMC encode each by lower 4 bits
     for (uint32_t i = 0; i < 7 ; ++i) {
         bmc = lastCellZero