CQ-FRK-FM3 基板用FM音源プログラム -- TGFM3 (5)
FM3 には、シリアル・インターフェースの系統に属する UART、SPI、LIN および I2C の 4 つの機能を、ひとつの周辺モジュールに集約した、「マルチファンクションシリアルインターフェース」(MFS: Multi Function Serial interface) が 8 組内蔵されています。
これらの機能は、基本的に「バイト指向」なプロトコルであるため、MFS でも、データ長は最大で 9 ビットとなっています。
そのため、16 ビット・シリアル・オーディオ・データを SPI で送出する場合には、8 ビット転送を 2 回行うことで実現します。
FM 音源プログラムでは、MIDI 入出力と LCD 入出力のために UART を 2 組、ディジタル・オーディオ DAC 出力のために SPI が 1 組必要になります。
MFS モジュールの選択および I/O ピン割り付けを検討するために作成した表を下に示します。
全体をひとつの表にまとめると長くなりすぎるので、MFS0 〜 MFS3 に関する表と、 MFS4 〜 MFS7 に関する表のふたつに分けました。
また、最初の表の MFS0 〜 MFS3 には FIFO バッファは実装されておらず、通常の 1 バイト容量のバッファ・レジスタだけとなっています。
2 番目の表の MFS4 〜 MFS7 には 16 バイト容量の FIFO バッファが実装されています。
MFS 信号名 | QFP ピン | GPIO | コネクタ | 外部接続 信号名 | 拡張ボード 信号名 |
---|---|---|---|---|---|
SIN0_0 | 126 | P21 | CN2-15 | SIN0_0 | [RxD1] |
SIN0_1 | 94 | P14 | CN1-1 | MAD00 | [A0] {DIP0} | >
SIN0_2 | 114 | PB4 | CN2-5 | AN20 | |
SOT0_0 | 125 | P22 | CN2-16 | SOT0_0 | [TxD1] |
SOT0_1 | 95 | P15 | CN1-2 | MAD01 | [A1] {DIP1} |
SOT0_2 | 115 | PB5 | CN2-6 | AN21 | {マイク-} |
SCK0_0 | 124 | P23 | - | ||
SCK0_1 | 96 | P16 | CN1-3 | MAD02 | [A2] {DIP2} |
SCK0_2 | 116 | PB6 | CN2-7 | AN22 | |
SIN1_0 | 19 | P56 | CN2-42 | P56 | |
SIN1_1 | 91 | P11 | CN3-38 | AN01 | AIN_R |
SIN1_2 | 81 | PF0 | CN2-30 | INT13_0 | [IRQ1] {SW3} |
SOT1_0 | 20 | P57 | - | FRAM_SDA | |
SOT1_1 | 92 | P12 | CN1-41 | ||
SOT1_2 | 82 | PF1 | CN2-31 | INT14_0 | [IRQ2/A20] {SW4} |
SCK1_0 | 21 | P58 | - | FRAM_SCL | |
SCK1_1 | 93 | P13 | CN1-42 | ||
SCK1_2 | 83 | PF2 | CN2-32 | INT15_0 | [IRQ3/A21] {SW5} |
SIN2_0 | 67 | P72 | CN1-30 | MDATA07 | [D7] {7セグ0h} |
SIN2_1 | 123 | P24 | CN1-18 | MAD17 | [A17] |
SIN2_2 | 97 | P17 | CN1-4 | MAD03 | [A3] {DIP3} |
SOT2_0 | 68 | P73 | CN1-31 | MDATA08 | [D8] {7セグ1a} |
SOT2_1 | 122 | P25 | CN1-17 | MAD16 | [A16] |
SOT2_2 | 98 | P18 | CN1-5 | MAD04 | [A4] {DIP4} |
SCK2_0 | 69 | P74 | CN1-32 | MDATA09 | [D9] {7セグ1b} |
SCK2_1 | 121 | P26 | CN1-16 | MAD15 | [A15] |
SCK2_2 | 99 | P19 | CN1-6 | MAD05 | [A5] {DIP5} |
SIN3_0 | 70 | P75 | CN1-33 | MDATA10 | [D10] {7セグ1c} |
SIN3_1 | 13 | P50 | CN2-23 | MOEX | [nRD] |
SIN3_2 | 58 | P48 | CN3-33 | SIN3_2 | RxD3 |
SOT3_0 | 71 | P76 | CN1-34 | MDATA11 | [D11] {7セグ1d} |
SOT3_1 | 14 | P51 | CN2-21 | MWEX | [nWR0/RDnWR] |
SOT3_2 | 59 | P49 | CN3-34 | SOT3_2 | TxD3 |
SCK3_0 | 72 | P77 | CN1-35 | MDATA12 | [D12] {7セグ1e} |
SCK3_1 | 15 | P52 | CN2-21 | MDQM0 | [nWR0/RDnWR] |
SCK3_2 | 60 | P4A | CN1-23 | MDATA00 | [D0] {7セグ0a} |
MFS 信号名 | QFP ピン | GPIO | コネクタ | 外部接続 信号名 | 拡張ボード 信号名 |
---|---|---|---|---|---|
SIN4_0 | 165 | PD2 | CN3-7 | E_TX00 | E_TX00 |
SIN4_1 | 100 | P1A | CN1-7 | MAD06 | [A6] {DIP6} |
SIN4_2 | 8 | P05 | CN2-11 | SIN4_2 | [RxD0] {RXD} |
SOT4_0 | 164 | PD1 | CN3-8 | E_TX01 | E_TX01 |
SOT4_1 | 101 | P1B | CN1-8 | MAD07 | [A7] {DIP7} |
SOT4_2 | 9 | P06 | CN2-14 | SOT4_2 | [TxD0] {TXD} |
SCK4_0 | 163 | PD0 | CN3-21 | E_TX10 | E_TX10 |
SCK4_1 | 102 | P1C | CN1-9 | MAD08 | [A8] {DIP8} |
SCK4_2 | 10 | P07 | CN8-15 | - | nRESET_OUT |
SIN5_0 | 169 | P60 | - | ||
SIN5_1 | 141 | P92 | CN2-36 | MAD21 | [A21] |
SIN5_2 | 34 | P36 | CN2-33 | MCSX2 | [nCS2/A23] |
SOT5_0 | 168 | P61 | - | ||
SOT5_1 | 142 | P93 | CN2-34 | MAD22 | [nCS3/A22] |
SOT5_2 | 35 | P37 | CN2-34 | MCSX3 | [nCS3/A22] |
SCK5_0 | 167 | P62 | - | ||
SCK5_1 | 143 | P94 | CN2-33 | MAD23 | [nCS2/A23] |
SCK5_2 | 36 | P38 | CN2-28 | MCLKOUT | [BUSCLK] |
SIN6_0 | 16 | P53 | CN2-22 | MDQM1 | |
SIN6_1 | 31 | P33 | CN3-42 | SIN6_1 | SPI_MISO |
SIN6_2 | 170 | PF3 | - | LED | |
SOT6_0 | 17 | P54 | CN2-41 | P54 | |
SOT6_1 | 30 | P32 | CN3-41 | SOT6_1 | SPI_MOSI |
SOT6_2 | 171 | PF4 | CN4-9 | PF4 | |
SCK6_0 | 18 | P55 | - | ||
SCK6_1 | 29 | P31 | CN3-40 | SCK6_1 | SPI_CLK |
SCK6_2 | 172 | PF5 | CN4-10 | PF5 | |
SIN7_0 | 22 | P59 | CN2-43 | P59 | |
SIN7_1 | 64 | P4E | CN1-27 | MDATA04 | [D4] {7セグ0e} |
SIN7_2 | 110 | PB0 | CN2-1 | AN16 | {可変抵抗} |
SOT7_0 | 23 | P5A | CN1-39 | MCSX0 | [nCS0] |
SOT7_1 | 63 | P4D | CN1-26 | MDATA03 | [D3] {7セグ0d} |
SOT7_2 | 111 | PB1 | CN2-2 | AN17 | {温度センサ} |
SCK7_0 | 24 | P5B | CN1-40 | MCSX1 | [nCS1] |
SCK7_1 | 62 | P4C | CN1-25 | MDATA02 | [D2] {7セグ0c} |
SCK7_2 | 112 | PB2 | CN2-3 | AN18 | {マイク+} |
#define MIDI_UART_CONFIG 3 #define LCD_UART_CONFIG 0
と指定しています。
16 ビット・シリアル・オーディオ DAC 用の SPI としては、
#define DAC_SPI_CONFIG 1
として、MFS1 を指定しています。
DAC は常時使用するものなので、ボード上の FRAM とは両立しません。
FRAM をアクセスするのは動作開始時だけに限り、必要な情報を読み書きした後は FRAM を使用せず、MFS1 を DAC 専用とする使い方であれば両者を活かせます。
SPI として使う MFS モジュール番号は、0、1、7 が指定可能です。