Skip to main content

FST-01

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

FST-01は小型のUSB 32ビットコンピュータです。実際、FST-01は略称で、その正式名称は「Flying Stone Tiny ZERO-ONE」です。

これは日本の群馬県前橋市にあるFlying Stone Technologyによって設計されました。

そのコンセプトは「ミニマリストデザイン」です。これは自由(自由の意味での)ハードウェア設計によるものです。想定されるアプリケーションはGnuk(GnuPG用暗号トークン)とNeuG(ADCノイズに基づく真の乱数生成器)です。これらのアプリケーションはフリーソフトウェアです。

Flying Stone Technologyは、非営利団体であるFree Software Initiative of Japanが著作権を持つ「Gnuk」のセカンドソースメーカーです。

より多機能な製品をお求めの方は、Maple Miniをご検討ください。

                        SWDポート
(GND, SWD-CLK, SWD-IO)
電源ポート +---------------------+
Vdd |[] []()() -------+
GND |[] | |
|()() I/Oポート | USB |
| (PA2, PA3) | |
| -------+
+---------------------+

ご質問はFST-01 Q&Aサイトをご利用ください。

エンクロージャなしのFST-01熱収縮チューブ付きFST-01ケース付きFST-01 (P1A-120704U)

また、Flying Stone Technology(飛石技術)から直接購入することも可能です。詳細はgniibe.orgのBuy FST-01!ページ(日本語)をご覧ください。

アプリケーション


前述のセクションで説明したように、FST-01上でGnukを実行することを意図しています。これはGPLv3ライセンスの下で配布されている著作権ソフトウェアです。

GnukはGnuPG用暗号トークンの実装であり、STM32F103上で動作します。ソースコードはhttp://www.gniibe.org/ (https://git.gniibe.org/cgit/chopstx/ttxs.git/)で入手可能です。

Gnukに関する詳細情報は、公式Gnukドキュメントをご覧ください。

また、FST-01上でNeuGを実行することも意図しています。

NeuGは、ADCの量子化誤差に基づく真の乱数生成器の実装です。

FST-01には1つのアプリケーション(GnukまたはNeuGのいずれか)しかインストールできないことに注意してください。

開発環境

Gnuk 1.0.1では、GCC ARM Embedded 4.6-2012-q2を使用します。

FST-01の初回ロットについて

この製品には、GPLv3ライセンスの下でライセンスされている著作権ソフトウェアGnukバージョン1.0.1が含まれています。このライセンスのコピーはこのWiKiに含まれています。GPLv3をご覧ください。
この製品の最終出荷日から3年間、完全な対応ソースコードを入手することができます。この期間は2016年1月1日以前には終了しません。ソースコードはメーカーのウェブサイトhttp://git.gniibe.org/gitweb/?p=gnuk/gnuk.gitで入手可能で、製品バージョンにはタグ「release/1.0.1」が付けられています。

FST-01の初回ロットに含まれるGnukバイナリは、GCC ARM Embedded 4.6-2012-q2で「-O3 -Os」オプションを使用してコンパイルされています。

Gnuk/NeuG用メーリングリスト

Gnuk/NeuG用のメーリングリストがあります:https://lists.alioth.debian.org/mailman/listinfo/gnuk-users

また、git.gniibe.orgと同様に、ソースコードリポジトリは以下でも利用可能です:https://anonscm.debian.org/cgit/gnuk/

MCUのフラッシュROM書き込み


MCUのフラッシュROMを書き込むためにSWDポートを使用します。SWDは比較的新しい技術であるため、ハードウェアやソフトウェアの経験がまだ十分ではありません。

安価なSWDデバッガとしてST-Link/V2を選択し、Pythonで独自のツール「stlinkv2.py」を作成しました。このツール「stlinkv2.py」はGnuk内で配布されています。ST-Link/V2とFST-01の接続についてはこの記事をご覧ください。

今後リリースされるOpenOCD 0.6.0では、ST-Link/V2とSWDがサポートされる予定です。それを使用することも可能です。

説明

FST-01は最小限のSTM32F103ボードであり、Gnukのような計算指向のアプリケーションを実行するのに適しています。

  • 寸法: 1.62 x 0.52インチ (USBプラグを含む)
  • USBバス電源
  • MCU: 32ビットARM Cortex M3、72MHz (STM32F103TBU6)、フラッシュROM: 128KB、RAM: 20KB
  • SPIフラッシュメモリ: 4MB
  • SWDポート、2つのI/Oピン
  • MCUのフラッシュROMの内容: テスト計画の副産物として、FST-01にはGnukバージョン1.0.1がMCUのフラッシュROMにインストールされており、保護されています。フラッシュROMを書き込む前に保護を解除する必要があります。

詳細についてはこのページをご覧ください。

ケースなしのFST-01

評価、開発、または独自のケースを作成したい人向けの裸基板です。

SWDポートにアクセスしてフラッシュROMの内容を変更することができます。

透明な熱収縮チューブ付きのFST-01

基板は透明な熱収縮チューブで覆われています。そのため、SWDポートにアクセスすることはできません。 Gnukトークンとして日常的に使用することができます。

ケース付きFST-01 (P1A-120704U)

基板はケース付きで提供されます。ただし、基板をケースに取り付けるのはユーザー自身です。 透明なチューブが好みに合わない場合や、MCUのフラッシュROMの内容を変更したい場合に適しています。 FST-01のPCBはP1A-120704U仕様の推奨に従って設計されていますが、ケースが少し大きい可能性があり、基板とケースを固定するために少量の接着剤が必要になる場合があります。そうしないと、基板が少し (< 1mm程度) 動く可能性があります。

履歴


  • 2011-08-06: アイデア

  • 2011-08-08: FST-01 Gitリポジトリへの初回コミット

  • 2011-08-23: プロトタイプPCBのFusion PCB注文: #33163

  • 2011-08-26: FST-01の希望

  • 2011-09-06: プロトタイプPCBのFusion PCB注文: #34012

  • 2011-09-13: プロトタイプPCBのFusion PCB注文: #34217

  • 2011-09-30: プロトタイプPCBのFusion PCB注文: #35421

  • 2011-10-27: プロトタイプPCBのFusion PCB注文: #37126

  • 2011-11-14: FST-01 PCBデザインのバージョン1.0リリース

  • 2012-07-10: Propageteに提出

  • 2012-08-??: 生産注文を実施

  • 2012-09-27: 初回ロットの生産完了

    • 初回ロットでは、XTALが20pF負荷容量のものに変更されました。(部品の入手可能性のため)

      • 初回ロットでは、MCUのフラッシュROMの内容はGnuk 1.0.1であり、保護されています。
  • 2012-10-08: Seeed Bazaarで販売開始

  • 2015-04-01: FSFショップで販売開始、NeuGをインストール済み: http://shop.fsf.org/product/usb/

自由(自由としての)ボード設計

Fst-01-schematic.png

ボード設計は KiCAD フォーマットで利用可能です。以下のリンクをご覧ください:http://git.gniibe.org/gitweb?p=gnuk/fst-01.git。

回路図設計は Creative Commons Attribution 3.0 Unported License (CC BY 3.0) の下で配布されています。

PCB設計は Creative Commons Attribution-ShareAlike 3.0 Unported License (CC BY-SA 3.0) の下で配布されています。

FST-01 の部品表 (BOM)


FST-01 の部品表 (BoM)
部品番号 名称 詳細 パッケージ 製造元 販売元 販売元参照
C1 コンデンサ 27pF C0402
C2 コンデンサ 27pF C0402
C3 コンデンサ 0.1uF C0402
C4 コンデンサ 0.1uF C0402
C5 コンデンサ 0.1uF C0402
C6 コンデンサ 0.1uF C0402
C7 コンデンサ 0.1uF C0402
C8 コンデンサ 4.7uF C0603
C9 コンデンサ 0.01uF C0402
C10 コンデンサ 4.7uF C0603
C11 コンデンサ 0.1uF C0402
R1 抵抗 510R R0402
D1 LED 青色 LED0603
J1 コネクタ USB 2.0, 1002-015-01001 USB プラグ A オス CNC Tech Digikey 1175-1020-ND
U1 MCU STM32F103TBU6 QFN36 ST Microelectronics AVNET STM32F103TBU6
U2 LDO 電圧レギュレータ CAT6217-330TDGT3 +3.3V TSOT23-5 ON Semiconductor Mouser 698-CAT6217330TD-G
U3 USB ターミネータ NUF2221W1 SOT363 ON Semiconductor Digikey NUF2221W1T2GOSTR-ND
U4 SPI フラッシュメモリ SST25VF032B-80-4I-QAE-T WSON8 Silicon Storage Technology Digikey SST25VF032B-80-4I-QAE-T-ND
X1 水晶振動子 ABM8G-12.000MHZ-18-D2Y-T 3.2mmx2.5mm Abracon Corporation Digikey 535-10261-2-ND
エンクロージャ P1A-120704U 白色 1.2 x .71 x .40 インチ New Age Enclosures

FST-01の構成部品


  • STM32F103TB

  • SPIフラッシュメモリ (32Mbit)

  • USBターミネータ

  • LDOレギュレータ (3.3V)

  • 12MHz XTAL CL=18pF

  • LED

  • GND/SWDIO/SWDCLKのSWDポート

  • VDD/GND/Port0/Port1の拡張ポート

  • USBプラグA

STM32F103TB

MCUはSTMicroelectronics製のCortex-M3ベースのARMです。72MHzで動作し、128KBのフラッシュROMと20KBのRAMを搭載しています。

SPIフラッシュメモリ

秘密データはMCUのフラッシュに保存されるべきですが、機密性のないデータ(例えば公開鍵リングのバックアップなど)はSPIフラッシュメモリに保存できます。

SST25VF032B(32Mbit = 4MB)を使用しています。

USBターミネータ

NUF2221W1 USBアップストリームターミネータを使用しています。

これは静電気放電保護機能を備えているためです。また、2つのコンデンサと2つの抵抗よりも小型化が可能です。

LDOレギュレータ

3.3Vレギュレータ(5Vから)としてCAT6217-330を使用しています。150mAの電流で十分です。

XTAL 12MHz CL=18pF

12MHz XTAL CL=18pFを使用しています。

これは、12MHzのXTALが8MHzよりも小型化できるためです。

LED

ステータスを表示するためにLEDを使用しています。

SWDポート

SWDポートはMCUのフラッシュROMにファームウェアをインストールするためのものです。

VDD/GND/Port0/Port1の拡張ポート

I/Oピンを2つ持つことにしました。(最小限の設計でも1つのI/Oピンでは不十分です。)

2つのI/Oピンがあれば以下の用途に使用できます:

  • シリアル通信のTXとRX
  • タッチセンサーの駆動と入力
  • 他のMCUのSWDポートの制御

USBプラグA

FST-01の使用方法はUSBポートに接続するだけで、USBメモリのように使えます。

回路および部品の変更の可能性


LDOレギュレータ

MCP1700T-330が代替品となる可能性があります(電気的特性は劣りますが、より多くの電流が必要な場合に適しています)。この場合、回路を少し変更する必要があります。

XTAL

XTALを12MHz XTAL CL=20pFに置き換えるだけで可能です。この変更は設計の許容範囲内です。

その場合、最初から行うのであればC1とC2を33pFに置き換えるのが良いでしょう。

Wikipediaの負荷容量に関する説明を参照してください。

シールドGNDと信号GND

FST-01はUSBポートに直接挿入することを意図しています。
使用方法が直接ではなく延長ケーブルで接続する場合、シールドGNDと信号GNDを抵抗(必要に応じてコンデンサも)で接続するのが良いでしょう。

参考:
http://electronics.stackexchange.com/questions/4515/how-to-connect-usb-connector-shield

USB_EN

USB_ENは必要ありませんが、NUF2221W1のピン5を3.3V(Vdd)に直接接続することができます。

STM32F103を使用した多くのボード設計ではそのようなものが見られますが、ソフトウェアでUSB D+を0Vに制御することが可能なため、USB_ENは不要です。

デフォルトでSPIフラッシュメモリなし

サイズがやや小さすぎて有用性が低いため、特別なユーザーオプションとして扱い、デフォルトではチップなしでも問題ありません。

PCB画像


PCB画像はprettygerbvによって生成されています。

FST-01のエンジニアリングプロトタイプ


FST-01-Prototype-PCB.jpg

Fusion PCBサービスのおかげで、FST-01エンジニアリングプロトタイプのPCBを製作しました。

PCBの組み立てはUser:Gniibeが手作業で行いました。詳細については私の記事をご覧ください。

テスト計画概要


  1. MCU IDの確認
  2. MCUのフラッシュROMへの書き込み
  3. LEDの点滅確認
  4. SPIフラッシュROMアクセスの確認
  5. USBを使用するアプリケーションを実行し、動作を確認(ハブによるアドレス割り当て)
    1. 電源投入時(またはリセット時)、LEDが点灯します。
    2. FST-01アプリケーションはUSBハブによるUSBアドレス割り当てを待機します。(ハブがデバイスを検出し、アドレスを割り当てるまで数秒かかります。)
    3. USBアドレス割り当て後、FST-01アプリケーションは以下のループに入ります:
      • 5秒間待機
      • LEDを点滅(25ms点灯、200ms消灯)。

技術サポートと製品に関するディスカッション

弊社製品をお選びいただきありがとうございます!製品をご利用いただく際に、できるだけスムーズな体験を提供できるよう、さまざまなサポートをご用意しています。お客様の好みやニーズに応じた複数のコミュニケーションチャネルを提供しています。

Loading Comments...