2011年10月08日

Foca_V2.1

goodluckbuy.com を見ていてこんなのを見つけた。



http://www.goodluckbuy.com/ft232rl-tiny-breakout-foca-v2-1-usb-to-serial-uart-xbee-.html
FT232RL Tiny Breakout Foca V2.1 USB to Serial UART Xbee $10.32 (送料無料)

    これは何かというと XBee を PC で使うための UART ボード。5pin の端子も出ていて RxD/TxD/DTR を使って Arduino というか ブートローダを書き込んだ ATmega328p などに接続できるようだ。AVR の ISP っぽいコネクタのパターンもあり、どうも avrdude-serjtag でライタになるようだ。

    なかなか、良さそうなボードだ。特に ATmega328p のチップ単体を Arduino として使うには便利そう。ちなみに、サイズは、45mm x 20mm と書いてあるが 間違い。XBee の幅は、24.38mm 。-- データシートを見たら 45.72mm x 29.21mm と書いてあった。タカチ SW-55S にも収まるサイズ。

      データシートの 幅も間違い。やはり 25mm に近いはず。だが、下記の考察は、XBee の幅を元にしているので結論は変わらない。

    それはともかく、気になったのは、デザイン -- まるで小さな arduino のようではないか。
    なにか、Ardduio 風のものを 5cm x 5cm 以内で設計してみたくなった。これについて、あとで考えてみよう。

http://iteadstudio.com/store/index.php?main_page=product_info&products_id=94
FT232RL Tiny Breakout - Foca v2.1 $8.90

    さて、もうすこし調べたら オリジナルは、これだと分かった。iteadstudio.com というと Fusion PCB と全く同じサービスをしていたところ(今はちょっと違う?)。-- こんなボードまで開発していたのか。

    値段はちょっと安いが、送料は別にかかる。これだけを買うなら goodluckbuy.com のほうが安そうだ。



    http://iteadstudio.com/store/index.php?main_page=product_info&products_id=396
    [Bare PCB] Foca v2.1 (FT232RL breakout) Bare PCB $1.5

    ボード単体も売っている。裏面をよく見れば、まさに AVR ライタ用だとわかる。ちなみに、電圧は 3.3V or 5.0V で中央のスイッチで切り替えるようだ。

    あと、スライドスイッチやタクトスイッチは、日本で入手しやすいものではないかも知れない。ボードを買って自作する場合は、要注意。

    http://iteadstudio.com/store/index.php?main_page=product_info&products_id=329
    Slide Switcher 1P2T (10Pcs) $2.0

    スライドスイッチは、たぶんこれ。必須だから、ついでに買っておくべき。

    http://iteadstudio.com/store/index.php?main_page=product_info&products_id=334
    2.5mm SMT Momentary PUSH Button (10 Pcs) $0.7

    SMD 2 極のタクトスイッチはこれ。

    http://iteadstudio.com/store/index.php?main_page=product_info&products_id=376
    ET1117-3.3V(SOT-89) - 3.3V Positive Voltage Regulator (5 Pcs) $1.0

    3.3V レギュレータ。これも。

    http://iteadstudio.com/store/index.php?main_page=product_info&products_id=336
    Mini USB 5-Pin SMT Female Connector Socket (5pcs) $2.00

    USB miniB は、微妙。信頼性を考えると、日本製のパーツが使いたくなる。だが安い。ついでに買っておけ... という気もする。そう考え出すと 秋月より 安いものが多々ある。2.54mm ピッチのピンヘッダ・ピンフレームとか。沢山買い込みたくなる -- かなり危険だ。

    そもそもボードが安いからといって自作を考え出すのが危険な考えなのだ。製品があるのならすなおにそれを買っておくほうが安く済む。

arduino 風のボードについて

    MPU の条件は、実装面積から判断して USB をサポートしていること。そうなると ATmega32u2 か u4 しかない。u4 は、機能が豊富だからこれが候補。

    ATmega32u4 の Arduino -- Arduino Leonardo がもうすぐ出る。そういう理由からも u4 を使いたい。Arduino Leonardo は、低価格版とも言われているから、大きなサイズで良いのならすなおに使えば良いのだ。わざわざ自作する必要はない。

    ちいさなモジュールとしては、Adafruit 『Atmega32u4 Breakout Board+』 や 『Teensy』 がある。モジュールは、Arduino とは逆で ボードの上に載せるのが普通。

    Arduino 的に マザーとして使って、かつ小さいものがあっても良いかも知れない。Fusion PCB で 基板を作る場合 5cm x 5cm に収まると安くなるという事情もある。-- Arduino 本体やシールドの最小幅は 5cm をわずかにオーバーするので具合が悪い。



    実は、以前 ATmega32u4ボード を作った。このときは、その前の作品との互換性を考えてコネクタを短辺につけた。基板サイズは、47mm x 35mm ぐらい。1/2 に切った C 基板を付けられるようにしている。

    だが、コネクタを長辺につけて arduino 風にするのも面白いかも知れない。ちょっと考えてみよう。

    まずは、Foca を基準に考える。

      Foca_V2.1 の サイズは、45.72mm x 29.21mm 。XBee のためのコネクタは、2mm ピッチ で両サイド 1x10。
      2mm ピッチコネクタの 間隔は、22.0 mm 。

      思ったより幅が広い。 あと 2mm ピッチ はちょっと使いにくいかも。

    次に今まで作ったボードからの考察

      C 基板を 真ん中で切ると縦 47mm 横 35mm ぐらいになる。このサイズは、タカチ SW-55S に入るのだが、底面に置くには、幅がちょっと広い。幅 32mm ぐらいがちょうど良さそう。

      C 基板の短辺の端の穴の数は、13 。(次の列は 15 穴でその次から 17穴) 。1/2 に切ったときの 短辺の穴は最大 13 だが、1列分小さく作るなら 12 。

      このサイズ 17穴 x 12穴 分をベースにすると 43.18 mm x 30.48 mm のサイズになる。これに余白が必要で、C 基板が 47mm であることから計算すると 47mm x 34.3mm になる。だが、3mm φの穴をあけないなら、こんなに余白はいらない。... 1mm づつ四方を削ると 45mm x 32.3 mm 。(余白は、0.91mm)

    このエリアに Foca の パターンを置くと 左右が それぞれ 3.24mm あく。ここに 2.54mm ピッチのコネクタを置ける。3mm φの穴 を無視して、コネクタは、1x14 にすれば良いと思う。

      12穴ぶんのエリアの 左右に 2.54mm ピッチのコネクタを配置するとその内側は、10穴分 -- 25.4mm 。
      2mm ピッチのコネクタの厚みが 2.0mm だとすると .. 22.0 mm + 2mm = 24mm 。計 1.4mm の余裕があるはず。

    さて、Foca との関係はどうしよう。2.54mm ピッチのコネクタは、位置は違っても Arduino Leonardo と互換性があるようにしておきたい。その上で XBee 用 2mm ピッチを付けたいところだが、配線できるのだろうか?

    シリアル出力と ISP はどうしよう。ATmega32u 自体の ISP は必要だから付けるとして ... ライタとして使える ISP も付けたい。で、それを USART ベースにする。(TXD/RXD/XCK とあと 1つ) USART は SPI マスタとしても使えるから これが良いはず。

      そういえば、ATmega32u4 に対応した自製のブートローダ(USBasp 互換)とか、USBasp 互換 ライタも作ったのだった。USBasp 互換 ライタ は 未完ながら TPI/PDI に 対応させようとしていた。これらを使う上で問題ないようにしておかないと ... 忘れてはいけない。

      思い出した、TPI は 5V 対応でないといけない。手持ちのボードは全部 3.3V だからテストが止まったのだった。Foca と同様に 3.3V - 5V の切り替えスイッチを入れなければ。

    時間が取れたら、この構想をベースにして、基板を設計してみたい。

Arduino Leonardo のピンアサインとか

    stastaka's Blog の情報を元にすると...

      mega328p mega32u4 mega32u4 mega328p
      D0 PD0(RXD) PD2(RXD) PF0(ADC0) PC5(ADC5) A5
      D1 PD1(TXD) PD3(TXD) PF1(ADC1) PC4(ADC4) A4
      D2 PD2(INT0) PD1(SDA) PF4(ADC4) PC3(ADC3) A3
      D3 PD3(INT1) PD0#(SCL) PF5(ADC5) PC2(ADC2) A2
      D4 PD4(T0) PD4 PF6(ADC6) PC1(ADC1) A1
      D5 PD5(T1) PC6# PF7(ADC7) PC0(ADC0) A0
      D6 PD6(AIN0) PD7#
      D7 PD7(AIN1) PE6

      D8 PB0(ICP) PB4
      D9 PB1(OC1) PB5#
      D10 PB2(SS) PB6
      D11 PB3(MOSI) PB7#(RTS)
      D12 PB4(MISO) PD6
      D13 PB5(SCK) PC7#
      GND
      AREF
      SDA (?)
      SCL (?)

      TXLED PD5(XCK/CTS) PB0?
      HWB PE2

      D14 PB0(SS)
      D15 PB1(SCK)
      D16 PB2(MOSI)
      D17 PB3(MISO)

    転記ミスがあるかも知れないが ... まぁだいたいこんな感じらしい。# は負論理 -- ソフトでの処理のはず。ATmega332u4 では、TWI は、PD1/PD0 が割り当てられている。もとの SDA/SCL を省いてしまえば、16 pin/16 pin にできる。

    SPI は、コネクタに出ていないようだ。そうであれば、ライタ用の ISP コネクタに接続しておきたい。ただ、確定ではないから Arduino Leonardo の 回路図をみてから再考することにしよう。

      やはり、コネクタに出ていないのはおかしいような -- SPI をあてにしているシールドも多数あるはず。二重に接続するとかしているのだろうか? それとも低価格版ということで割り切っている?

      アナログスイッチで切り替える -- みたいな実装もありえるのだが... 写真をみてもそんな IC は載っていなさそう。

    一方 XBeeShield なるものが、ある。本来なら 互換回路を組み込むべきかも知れないのだが ... XBee使わないなら切り離さないといけないし ... ちょっと面倒そうな。

    ちなみに Foca の場合、TXD/RXD/RTS/CTS/DTR/DCD を接続して Xbee の RESET をボタンに接続している。

    ついでに、Seeeduino Stalker (Atmega 328) というのがある。これは、FT232R がないかわりに多数のデバイスを載せたもの。XBee も載せられる。

      Foca XbeeShield Stalker
      1
      2 DOUT RXD o RXD
      3 DIN TXD o TXD
      4 CD DCD
      5 RESET button button
      6 RSSI LED
      9 DTR DTR
      12 CTS CTS o
      15 LED
      16 RTS RTS
      17 AD3 AVR RESET(with Tr)

    信号線だけピックアップするとこんな感じ。XbeeShield は、あまり線を接続していない。

    ATmega32u4 には、CTS と RTS の信号線がある。これに加えて DCD/DTR を定義してつなげたい。
    ただ、Arduino Leonardo では、CTS が、LED 制御に使われているようだ。どうしたものか。

      Foca の XBee は、Host から使うのが前提。それに対し XbeeShield , Stalker は Slave 用で、配線の違いはそれが関係している。また、XbeeShield は、5V の Arduino に接続できるようになっているが、Foca, Stalker は 5V での XBee 使用 は考慮していないように見える。

      では、作ろうとしている Arduino 風のものは、どう考えるのが良いのだろうか? -- Host との USB 接続が特徴と考えれば、Host 向きの接続で良いはず。

    Arduino Leonardo の疑問点は、(1) SPI の扱い 、(2) TWI の扱い、(3) CTS の扱い。回路図が公開されたら、これらをチェックしよう。

独自配列の考察

    どうせ shield に互換性はないのだから、独自配列でも良いような気がしてきた。もとの Arduino も mega88 系に都合の良い配列だったのだ。配線面積が少ないのに、互換性を求めると 配線がスパゲッティになる。それに、互換にすると CTS とか困るケースが出てきそうだ。

    Foca V2.1 の機能を実現しつつ Ardino 風にする ということでも良いのかも知れない。コネクタを 2mm ピッチにして ピン数を増やし、XBee (Host)も載る みたいなのはどうだろう。こうしたほうが見栄えが良くなりそう。もちろん XBee を載せた場合は、他の目的には使えない。(これはもとから)。

    ただ、2.54mm ピッチも付かないと 使い勝手が悪い。2.5mm ピッチは変換基板のように 同じ配列で外側につけるとか。(ただし、配線が辛くなるので、平均 5ピン毎に 2mm ピッチの信号を間引く )

    ちなみに、2mm ピッチのピン・フレームは、背が低い。XBee のように 25.4mm - αの幅にしないと 2.54mm ピッチ の ピン・フレームと競合する。

    電圧の、3.3V / 5V 切り替えは必須。ただ、スライドスイッチの配置が難しいかも。

    Arduino として使うときは、定義ファイルを 作らないといけない? 互換性を捨てた代償がそれだけならば、これで行っても良いかも。

    追記: 定義ファイルは何だろう?

    https://github.com/arduino/Arduino/tree/new-extension/hardware/arduino

    たとえば、ここでソースコードをブラウズできるようだ。

    見てみると、『hardware/arduino/variants/leonardo/pins_arduino.h』というのがある。

    あと、『hardware/arduino/boards.txt

    この 2 つで事足りそう。

    leonardo.build.f_cpu=16000000L
    leonardo.build.core=arduino
    leonardo.build.variant=leonardo

    valiants/xxx/pins_arduino.h を作成し、build.variant を xxx に変更すれば、好きなピン配置にできるように見える。

XBee のピン配置のメモ


    3V3 1 VCC AIO x 20
    RXD 2 O DOUT AIO x 19
    TXD 3 I DIN AIO x 18
    X 4 x AIO x 17 X
    5 I RST RTS I 16 RTS
    6 O RSSI O 15
    7 I VREF I 14 AREF
    X 8 x reserved ON O 13 X
    DTR 9 I DTR CTS O 12 CTS
    GND 10 GND x 11

    上が Foca の USB 側、XBee はアンテナ側。

    内側が XBee の割り当て。x は、デフォルト disable で I,O はデフォルトの入出力。

    外側の X は、間引くところ(予定)。TXD などは割り当てる信号とか。それ以外は mega32u4 の信号を振っていく。コネクタは下に伸ばす。どこまで伸ばすかは未定。

Foca のディメンジョン



    この画像は、355 x 196 に縮小したもの。縦を 45mm とすると 1.77 inch これを x200 すると 354 -- 横は 0.98 inch - 24.9 mm という計算になる。

    さて、2mm ピッチを下に伸ばすとして... 1x20 は、入らない。1x16 ぐらいがせいぜい。
    横につける 2.54mm ピッチは、2mm を間引く。3pin 間引けば 1x13 だがパーツの都合では 1x14 が良い。8+6 もいけるし。あるいは、12 ?。

    2mm のピンフレームは、秋月だと
    http://akizukidenshi.com/catalog/g/gC-03669/
    http://akizukidenshi.com/catalog/g/gC-03871/

    の 2 種類がある。いずれも 1x20 で切って使わないといけない。XBee の分のみで良いなら 1x10 もある。

    iteadstudio.com だと こんなのがある。

    http://iteadstudio.com/store/index.php?main_page=product_info&products_id=119
    2.0mm 40Pin Female Header (5 Pcs) $1.50

    どうせ切るならこれで良いかも。

    ところでこれらは背が低い。プラスチック部:約4.3mm ? (2.54mmピッチは約 8.5mm) これだから Arduino 風に見えるのだ。
    デザイン優先で 2.54mm ピッチをなしにしたいところだが、そうもいかないだろう。

    2.54 mm 1x14 は秋月では、これ。
    http://akizukidenshi.com/catalog/g/gC-00653/

    iteadstudio.com だと、1x40 がある。切って使えば随分お得。

    http://iteadstudio.com/store/index.php?main_page=product_info&products_id=117
    2.54mm 40Pin Female Header (5 Psc) $1.50

    ー どうもなんでも 5 個 $1.50 のようだ。原価はずっと安く管理費用のほうが支配的なのか?

    ところで、電源切り替えの スライドスイッチは、どうしよう。4.3mm の高さに抑えるか、

    http://akizukidenshi.com/catalog/g/gP-01665/
    超小型スライドスイッチ IS−1250
    http://akizukidenshi.com/catalog/g/gP-02627/
    超小型スライドスイッチ 2回路2接点 IS−2235

    を付けることにして、上部の ノブ(?) を切る? 本体は 3.5mm 高だから 一応収まる。

    http://akizukidenshi.com/catalog/g/gP-03006/
    リセット用のタクトスイッチは、やっぱりこれ? いままでと同じように、ファームウェア書き換え専用。

    これに LED も 付ける。... と入らないおそれが... 裏に mega32u4 を付けることになるかも知れない。

    コネクタは、自分自身の ISP と シリアルは出したい。できれば、ISP も SPI に転用可能にしておきたい。

    シリアルは、TXD/RXD に XCK(or CTS) に加えて DTR(ピン未定) 。ISP は、ジャンパで RESET/SS 切り替え。SparkFun FTDI Basic Breakout と同じ配列にして 1x6。-- DTR/RXD/TXD/VCC/CTS=XCK/GND 。こうしておくと、シリアルも SPI として使える。

名称について

    なにを作るのでも名前を考えないといけない。ファイル名もあるし、最初に必要で、これが超やっかい。

    しょうがないので、なにか考えるのだが、O-duno (小角)にした。i がないが、まぁいいや。

    意味は、『小さい Arduino のつもりだが何か足りない』とでもしておこう。



    超ラフなレイアウト。以前作ったボード をもとにして作った。2.54mm ピッチ 1x14 でも 悪くないかも。だが、高さがあるから実際につけると不恰好になるかも知れない。

    それはともかく、主要部品は表に置けそうだ。だが、水晶や CR は、裏になりそう。

    あと、ISP を SPI として使うためのジャンパ -- 3穴 2.54mm は厳しいかも。

    http://akizukidenshi.com/catalog/g/gP-02736/
    小型スライドスイッチ 1回路2接点 SS12D01G4

    とかを使えるようにしておきたいところなのだが... ううむ。

    そういえば、
    http://akizukidenshi.com/catalog/g/gP-03908/
    2mmピッチジャンパーピン

    なんてのも買えるようになった。これで済ますか。リセット を接続するかしないかなら 2穴で済むし。



    すこしまともにしたレイアウト。コネクタの部品を作り予定の位置に置いた。あと 2mm ピッチのジャンパを作り基板外に置いた。

    リセットボタンの位置がわるい。押しやすいところに置くべき。



    とりあえずこうしてみた。電源切り替えスイッチの収まりガ悪い。
    2mm ピッチと 2.54mm ピッチの関係を分かるようにした。



    スイッチを
    http://akizukidenshi.com/catalog/g/gP-02736/
    小型スライドスイッチ 1回路2接点 SS12D01G4

    に変更。
    あと、ピン名をコメントとして入れた。
    ISP/SPI 切り替えを 2mmピッチジャンパーピンでできるようにした。
    HWB を ジャンパーしたときだけ Enable にしようかと思う。

      HWB ピンは HI-Z 入力なので、確実に Disable にしたければ、弱いプルアップが必要。ジャンパで Enable にするには強いプルダウンか接地にする。

      以前 LED をつないだら 明るいところでは Disable / 暗いところで Enable になったりした。それはそれで興味深いが実用的ではない。



    かなりのところまで配線完了。

    ISP/SPI, シリアルのコネクタは 180°回転した。こっちのほうがうまく配線できる気がする。

    ただ、このまま進めて良いものかどうか? XBee のピン配置をベースにするとあんまり美しくないのだ。CTS が反対側に行くのがちょっと困る。

    というわけで、CTS も (チップの機能を使わない) PORT にして、画像の下側は PORTD メイン、上側左は ADC(PORTF) メイン、上側右は SPI(PORTB) という風になった。



    完成。2mm のみのボードを想定して、リセットの位置を内側にした。あと、シルクの作成。
    Serial の DTR は、PD4 にした。

      Digital 側
      1 VCC
      2 RX PD2
      3 TX PD3
      4 () PB7(RTS)
      5 SDL PD0
      6 SDA PD1
      7 () PD4
      8 GND
      9 () PD5(XCK/CTS)
      10 () PD6
      11 () PD7
      12 3V3
      13 5V
      14 RST

      Analog 側(#14 から)
      14 () N.C.
      13 () PE6
      12 () PF0(ADC0)
      11 () PF1(ADC1)
      10 () PF4(ADC4)
      9 AREF AREF
      8 () PF5(ADC5)
      7 () PF6(ADC6)
      6 () PF7(ADC7)
      以下 SPI
      5 () PB3(MISO)
      4 () PB1(SCLK)
      3 () PB2(MOSI)
      2 () PB0(SS)
      1 GND

      Serial
      1 DTR PD4
      2 RXD PD2(RXD)
      3 TXD PD3(TXD)
      4 VCC
      5 XCK PD5(XCK/CTS)
      6 GND

      ISP/SPI
      MOSI 1 6 VCC
      SCK 2 5 MISO
      RST/SS 3 4 GND

      (V 1.0 t1 -- 間違い)
      MOSI 1 2 SCK
      RST/SS 3 4 GND
      MISO 5 6 VCC

      LED
      PC6 Red/Orange
      PC7 Green/Yellow

      HWB ジャンパ。ショートで HWB有効。
      ISP/SPI ジャンパ。1-2 で ISP, 2-3 で SPI

      未割り当てのピン PB4/PB5/PB6 PE2(HWB 専用)


  • oduno-1.0.zip (eagle データ)
  • oduno-1.0-out.zip (http://iteadstudio.com 提出用)

    今回は、iteadstudio.com で作ってみよう。5cm x 5cm 10枚で $9.9 なのは同じで送料は $4.0 。
    ルールは、前の Fusion PCB と同じような感じ。ファイル名どうとかは、ないようだ。

    あんまりチェックしていないのだが、前に作ったものを元にしているし、ひどいことにはならないだろう。

  • 来たメールに リプライするのではなく pcbあっとiteadstudio.com に送るらしい。即効で怒られた。

  • ISP のピン配置を間違えた。ピンヘッダの番号で割り当ててしまった。作り直さないと。

  • oduno-1.0a.zip (eagle データ)
  • oduno-0.1a-out.zip (http://iteadstudio.com 提出用)
  • oduno-01a.png (イメージ)

    一応作り直した。が、自信がなくなってきた。『データを差し替えてくれ』とメールは送ったが、受け付けてくれるかどうかは分からない。まぁ、ピンの間違いだから動作自体には支障ない。他にもっと重要な問題があるかも知れないし、まぁいいや。

      もう 作り始めているからダメといわれた。まぁしかたない。

    ところで、タカチのケースに SW53 というのがある。厚みが 11mm しかないので、見栄えがする。( 蓋を止める枠 を除いた)内寸は、 (たぶん) 49.4mm x 32.4mm 。うまくすると Foca や O-duno が入るかも。(といっても ピンフレームをどうするか別途検討する必要あり)
posted by すz at 23:51| Comment(0) | TrackBack(0) | 日記