もっと今更、SC-88ProにS/PDIFを付けよう
もっと今更、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
というやつ。
詳細はwikiの説明に
https://developer.mbed.org/users/peu605/code/DIT88proSTM32F1/wiki/説明
しまったなぁ、wikiのタイトル、漢字にしてしまったよ…
STM32F103C8T6, Roland, SC-88pro, S/PDIF, SPIDF, デジタル出力
Diff: main.cpp
- 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