IchigoJamのピン配列表 ■ IchigoJam ピン配列(基本) IchigoJam R 除く  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 下表に基本的なピン配列表を示します。 表の右列は表示環境によってずれてしまいます。気になる場合は等幅フォントに切り換えてご覧ください。 ----------------------------+-------------------------- CN4(左側)                     |CN3(右側) ピン name  役割                 |ピン name 役割 ----------------------------+--------------------------  1 VIDEO1 ビデオ同期信号出力         |28 KBD1  キーボードCLK  2 VIDEO2 ビデオ映像信号出力         |27 SCL   I2C_SCL用  3 IN1    デジタル入力(IN1)内部プルアップ|26 KBD2  キーボードDATA  4 IN2    アナログ入力(IN2・ANA2)  |25 SNOUD サウンド出力用  5 IN3    I2C_SDA用          |24 ISP   ファームウェア書込み用  6 IN4    デジタル入力(IN4)内部プルアップ|23 RESET リセット入力  7 VCC    アナログ電源入力 3.3V     |22 GND   メインGND入力  8 GND    アナログGND入力         |21 VCC   メイン電源入力  9 OUT1   デジタル出力(OUT1)      |20 XTAL1 水晶振動子クロック入力 10 OUT2   デジタル出力(OUT2・PWM2) |19 XTAL2 水晶振動子バッファ出力 11 OUT3   デジタル出力(OUT3・PWM3) |18 OUT5  デジタル出力(OUT5・PWM5) 12 OUT4   デジタル出力(OUT4・PWM4) |17 OUT6  デジタル出力(OUT6) 13 BTN    ボタン用・スリープ解除割込     |16 TXD   UART送信・出力 14 LED    LED用              |15 RXD   UART受信・入力 ----------------------------+-------------------------- ※SCLはピン名が変更になりました。役割は同じです。(旧EX1端子・IchigoJam T~) CN5(USBコネクタ近く・IchigoJam T,S) ---------------------------- ピン name  役割 ----------------------------  1 5V    USB電源用  2 SDA   I2C_SDA用(IchigoJam Tから対応)  3 SCL   I2C_SCL用(IchigoJam Tから対応)  4 3.3V  マイコンVCC(IchigoJam Tから対応)  5 GND   マイコンGND ---------------------------- ※Iピン2~4はIchigoJam T から対応。I2C接続センサなどを接続するためのIoT向け端子です。 ※ピン番号は基板の上側を1番ピンとしています。 ■ IchigoJam Rβ ピン配列表  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ----------------------------+-------------------------- CN4(左側)                     |CN3(右側) ピン name  役割                 |ピン name 役割 ----------------------------+--------------------------  1 VIDEO1 ビデオ同期信号出力         |28 KBD1  キーボードCLK  2 VIDEO2 ビデオ映像信号出力         |27 (NS)  3 IN1    デジタル入力(IN1)内部プルアップ|26 KBD2  キーボードDATA  4 IN2    アナログ入力(IN2・ANA2)  |25 SNOUD サウンド出力用  5 IN3    I2C_SDA用          |24 ISP   ファームウェア書込み用  6 IN4    デジタル入力(IN4)内部プルアップ|23 RESET リセット入力  7 VCC    電源入力 3.3V         |22 GND   GND入力  8 GND    GND入力             |21 VCC   電源入力  9 OUT1   デジタル出力(OUT1)      |20 SCL   I2Cクロック 10 OUT2   デジタル出力(OUT2・PWM2) |19 SDA   I2Cデータ 11 OUT3   デジタル出力(OUT3・PWM3) |18 OUT5  デジタル出力(OUT5・PWM5) 12 OUT4   デジタル出力(OUT4・PWM4) |17 OUT6  デジタル出力(OUT6) 13 BTN    ボタン用・スリープ解除割込     |16 TXD   UART送信・出力 14 LED    LED用              |15 RXD   UART受信・入力 ----------------------------+-------------------------- https://github.com/IchigoJam/doc/blob/master/IchigoJam-R_pins.csv https://github.com/IchigoJam/doc/blob/master/IchigoJam-R-pins.pdf ■ IchigoJam ピン配列(詳細版)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ IchigoJamの限られたピン数を有効に活用するために入力ピン/出力ピンを変更することも可能です。 例えば出力ピン数が足りない時に入力ピンを出力として使用することが出来ます。あるいは、拡張IO端子に 直接部品を取り付ける場合に部品に合わせて入出力を入れ替えたり、消費電流の少ない部品であれば、電源 やGNDを供給することも出来ます。 1~14番ピンは昇順で書かれていますが、15~28番ピンは降順です。(工作時に見やすいようにしました。) ------------------------------------------------------------------------------------------------ pin name 役割 ------------------------------------------------------------------------------------------------ 1 VIDEO1 ビデオ同期信号出力 2 VIDEO2 ビデオ映像信号出力 3 IN1 デジタル入力(IN1)・デジタル出力(OUT8) :入力時は内部プルアップ 4 IN2 デジタル入力(IN2)・デジタル出力(OUT9)・アナログ入力(ANA2) :入力時は内部オープン 5 IN3 デジタル入力(IN3)・デジタル出力(OUT10)・I2C_SDA用 :入力・H出力時オープン 6 IN4 デジタル入力(IN4)・デジタル出力(OUT11) :入力時は内部プルアップ 7 VCC アナログ電源入力 3.3V 8 GND アナログGND入力 9 OUT1 デジタル出力(OUT1)・デジタル入力(IN5)・アナログ入力(ANA5) 10 OUT2 デジタル出力(OUT2)・デジタル入力(IN6)・アナログ入力(ANA6)・アナログ32B1出力(PWM2) 11 OUT3 デジタル出力(OUT3)・デジタル入力(IN7)・アナログ入力(ANA7)・アナログ32B1出力(PWM3) 12 OUT4 デジタル出力(OUT4)・デジタル入力(IN8)・アナログ入力(ANA8)・アナログ32B1出力(PWM4) 13 BTN ボタン用デジタル入力(IN9)・アナログ入力(ANA0)、外部1MΩプルアップ、スリープ解除割込 14 LED LED用デジタル出力(OUT7) ------------------------------------------------------------------------------------------------ 28 KBD1 キーボードCLK 27 SCL I2C_SCL用(旧EX1) 26 KBD2 キーボードDATA 25 SOUND サウンド出力用・プルダウンで自動起動(Ver 1.2の一部) 24 ISP ファームウェア書込み用、内部プルアップ 23 RESET リセット入力、内部プルアップ 22 GND メインGND入力 21 VCC メイン電源入力 3.3V 約17mA(VIDEO1時) 約13mA(VIDEO0時) ピン7の電流を含む 20 XTAL1 水晶振動子クロック入力 19 XTAL2 水晶振動子バッファ出力 18 OUT5 デジタル出力(OUT5)・デジタル入力(IN10)・アナログ16B1出力(PWM5) 17 OUT6 デジタル出力(OUT6)・デジタル入力(IN11) 16 TXD UART送信・出力 15 RXD UART受信・入力 ------------------------------------------------------------------------------------------------ ・下記はIchigoJam BASIC Version 1.1以降で対応されています。(Version 1.0では対応されていません。) ・デジタル入力IN5~IN8、IN10~IN11 ・デジタル出力OUT7、OUT8~11 ・アナログ出力PWM2~5 ・アナログ入力ANA6~8 ・BTNはIN9、ANA9でも動作します。 ・IN3端子については、入力時だけでなく、OUT10の出力時(OUT 10,1)もオープンです。 ■ OUT(デジタル出力)命令  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ OUT ,<0/1> PORTにポート番号、0でLレベル(約0V)、1でHレベル(約3.3V)を出力します。 OUT ,<-1> 指定した出力ポートをデジタル(一部アナログも対応)入力ポートにします。 OUTポートとINポートのポート番号が異なるので注意が必要です。 トリステート出力(L/H/Open)にしたい場合にも有効です。 OUT <数字> OUTポートを7つ同時に制御できます。2進数で最下位ビットがOUTポート1です。 (ポート毎に対して「<数字>=Σ <論理>×2^(<ポート番号>-1)」で算出) OUT8~11を出力に設定後は設定したOUTポートも同時に制御することが出来ます。 OUTポート番号に対するピン番号(※最下位ビットが左)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ポート番号:OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 OUT9 OUT10 OUT11 ビット桁 : b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 ピン番号 : 9 10 11 12 18 17 14 3 4 5 6 ピン名  :OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 LED IN1 IN2 IN3* IN4 * IN3はオープンコレクタ出力につきHレベル出力(OUT 10,1)のときはオープンになります。 ■ IN(デジタル入力)関数  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ IN() 指定したポート番号のデジタル値を応答します。A=IN(1)のように使います。 IN() INポート1~11の全データが入力されます。最下位ビットがINポート1です、 ■ ANA(アナログ入力)関数  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ANA() アナログ入力値0~1023を応答します。 ■ PWM(アナログ出力)関数  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ PWM ,, 指定したポート番号PORTに対して式「/」に応じた電圧を出力します。 PWMは約3.3Vと約0Vの出力を高速に切り換え、3.3V時の時間幅を調整して平均の 電圧を変化させるパルス幅変調というアナログ出力方式です。 高速切替の周期を、変化するパルス幅をで指定します。単位は[ms]です。 ■ スリープとスリープ解除  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ SLEEP命令を使うとIchigoJamのシステムを低消費電力で停止することが出来ます。 タクトスイッチ(SW2)を押下するとスリープをすると、解除すことが出来ます。 BTN端子はプルアップされている必要があります(純正品は1MΩでプルアップされてる)。 ■ プログラムの自動起動  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ BTN端子をGNDに接続しておくことで、電源を入れたときにプログラムを自動的に起動することが出来 ます。しかし、この方法だとタクトスイッチ(SW2)が使用できなくなります。 タクトスイッチも併用したい場合は、コンデンサ0.1μF(Z級品)をBTN端子とGND端子との間に接続し ます。電源投入前~起動時にかけて0Vの電位を維持することができるので、プログラムの自動起動が 働き、起動後、充電されてタクトスイッチの使用ができるようになります。 ただし、電源を切ってからの時間が短いと、コンデンサに充電された電荷によって自動起動が妨げら れる場合があります。 ------------------------------------------------------------------------------------------------ ■ 注意点  ̄ ̄ ̄ ̄ ・同じピンのOUTポートとINポートの番号が異なるので注意が必要です。 ・IN()関数で取得した場合、BTN端子の「H」がIN9に表示されます。 OUT5や6をINにすると最大11ビットの出力が得られます。 これまでビットシフトなどで4ビット以上が来ないことを前提にしていた場合は「&#F」演算による マスクが必要です。 ・OUT命令の範囲はOUT #00~#7Fです。OUT8以降は、OUT ,<0/1>で出力します。 OUT8~11を出力に設定すると、OUT<数字>での制御を受け付けるようになります。 ■ 補足:OUT8~11やIN5~11の切換え動作(参考情報)  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 以下はややこしい話なので興味のある方だけお読みください。 OUT8~11については、例えばOUT 8,0とするとIN1端子がL出力に変わり、OUT 8,-1で入力に戻ります。この OUTポートに関して気になったのは、OUT 0やOUT 128を実行した時にIN1入力端子が出力に変わらないかどう かです。この影響を受けるとOUT 0命令などでIN1入力に不具合をきたすからです。 確認したところOUT<数字>の指定は#7Fでマスクされているような「適切な動き」をしていました。次に、 OUT 8,1でH出力を行います。22kΩだったVCC~IN1端子間の抵抗値が100Ω以下に変化しHレベルを出力して いることが確認できました。さらに、 OUT 0を実行してみると、今度はちゃんとLレベルに変わります。つ まり、一度、OUTに設定したあとはOUT 0やOUT 128を受け付けるようになります。 以上のとおり仕様として適切に出来ていることが分かりました。 次にIN端子です。IN5~11についてはIN()関数で最大11ビットまでのデジタル入力を受け付けていることが 分かりました。注意が必要なのは従来のプログラムで上位ビットをマスクせずに使用している場合、プロ グラムの修正が必要になります。とくに通常時にHレベルのBTN信号がIN9に入力される点に配慮が必要です。 ------------------------------------------------------------------------------------------------ ---------------------------------------------------------------- ■ ライセンス・著作権表示  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 本資料を複製・改変・再配布する場合は著作権表示が必要です。 CC BY (C) 2015-2016 国野亘 (Wataru KUNINO) https://bokunimo.net/ichigojam/ ---------------------------------------------------------------- ---------------------------------------------------------------- ■ 参考文献  ̄ ̄ ̄ ̄ ̄ 作成にあたり以下の情報を参照しました。 - http://ichigojam.net/IchigoJam.html CC BY http://ichigojam.net/ - Facebook IchigoJam-FANグループ https://www.facebook.com/groups/ichigojam/ - ichigojam-1.1b6.zipの新バージョン(アップロード) https://www.facebook.com/groups/ichigojam/634011960071894/ - IchigoJam BASIC コマンド一覧 GitHub:fu-sen/IchigoJam-BASIC https://github.com/fu-sen/IchigoJam-BASIC - IchigoJam T http://fukuno.jig.jp/1445 - IchigoJam Rβ https://fukuno.jig.jp/3103 https://www.facebook.com/groups/ichigojam/permalink/2019215444884865/ ----------------------------------------------------------------