パスワードを忘れた? アカウント作成
324557 story
ハードウェアハック

microSD カードスロットを VGA ポートとして使うハック 29

ストーリー by reo
よく考えるなあ 部門より

ある Anonymous Coward 曰く、

以前 /.J 記事でも話題に上った「『本』(Ben) NanoNote」だが、このマシンは 99 ドルと低価格なのが特徴であるものの、その拡張性の低さもまたしばしば議論されてきた。そこで、このマシンの microSD カードスロットを改造して VGA ポートにしてしまうというハックが行われたとのこと (Qi Hardware の記事本家 /. 記事より) 。

これは UBB (Universal Breakout Board) を用いた拡張で、ビデオ信号の制御はソフトで行い 640x480、800x600、1024x768 の解像度を 50 Hz で出力できるという。SD カードスロットにここまでの拡張性があるとは驚きである。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by DenRock (38403) on 2011年05月11日 16時27分 (#1950349)
    >>640x480、800x600、1024x768 の解像度を 50 Hz で出力
    SD画質ですな!
  • SDIOであれば (スコア:3, すばらしい洞察)

    by kineko (38165) on 2011年05月11日 12時44分 (#1950134) 日記

    auがマイクロSDで無線LANを飛ばしてますし、不可能ではないですね。

    #↑がSDIOなのかは謎

    • Re:SDIOであれば (スコア:4, 参考になる)

      by osakanataro (17131) on 2011年05月11日 13時03分 (#1950155) 日記

      SDIOにも対応しているので、指定された型番のmicroSDサイズの無線LANをつけられます。
      # auのはLinuxで動作させれるドライバが見つからなかったので動きませんでした ← 買って試した

      今回のは、SDIOとか関係無しに、ソフトウェア的な手法で、かなり強引な手法で出力させてます。
      回路図 [qi-hardware.com]

      SDIOポートをただのVGA端子だと見なして、本来はグラフィックカードで行わせるような処理をメインCPU+ソフトウェアで行い、無理矢理、直接出力しているようです。
      SDIO CMDポート: HSYNC
      SDIO CLKポート: VSYNC
      SDIO DAT0ポート: G
      SDIO DAT1ポート: B
      SDIO DAT2ポート: Y
      SDIO DAT3ポート: R

      つか、これを思いつくなんて、どうかしてるよw

      親コメント
      • えーと、CPUで映像信号の波形を作ってるんだよね...
        シンクレアみたいだ。

        親コメント
        • ZX81は「リアルタイムに生のビットパターンを送り込む」仕組みですけど、「CPUで映像信号の波形を作ってる」わけではないです。
          NTSC/PALで、横32文字(256ドット)だと、ドットクロックは大雑把に5MHz程度。たかだか3.5MHzのZ80ではそんな頻度でデータを送り込むことはできません。

          ZX81の回路図 [mainbyte.com]を見ればわかりますけど、CPUとビデオ出力の間に「ULA」と呼ばれるICが一個入っていて、そいつが同期信号の生成パラレル-シリアル変換をやってます。ですが、8bitパラレルからシリアルへの変換があっても、まだまだCPUでのソフトウェア処理だけでは無理。

          ZX81のビデオ表示は、Z80CPUを「NOPをずっと実行している」ように騙すことで、NOP実行の命令フェッチの2サイクルでキャラクタコード取得、リフレッシュの2サイクルでキャラクタパターン取得という流れで「4サイクルで2回のメモリ読み込みを行って8ドットのパターン取得」というかなり巧妙な処理になっています(このページの9章のタイミングチャート参照 [8bit-museum.de])。ビデオ信号生成のメインはULAであり、Z80を「アドレスジェネレータ」に成り下がらせているのです。

          親コメント
      • by Anonymous Coward
        方向性は、beep音源を1ビットD/Aコンバーターに見立ててPCMを再生した例に近いものがありますね。
      • by Anonymous Coward

        モノクロディスプレイにカラーを出してみたり
        BEEPでPCMを鳴らしたり
        PCMでMIDIを演奏したり
        データレコーダのモーターがミシンになったり

        そんな裏技を思い出しました

        • by Anonymous Coward

          MSXのジョイステックポートを使ったMIDIインターフェースの製作記事を思い出しました

          #意外につかえたよ

        • by Anonymous Coward

          16色の画面のバンクとパレットを切り替えて擬似多色なんてもあったよ。

      • by Anonymous Coward

        [機器]→[RS232-C]→[数個の抵抗とコンデンサだけからなる回路]→SDカード で、機器からSD上に正しくデータを書き込むアレなツールとか見かけたことがある。このストーリーのアイデアのちょうど逆な感じかな。ハードウェアのハックって凄い。

        • by Anonymous Coward

          > 機器からSD上に正しくデータを書き込むアレなツール

          いや、そもそもそーいうショボい機器(つーより治具)のために
          SDバス規格にSPI互換モードとかも規定されてるわけで、
          まともなカードならそのあたりもきっちり対応したIP載ってますよ。

          カード側が元々持っている機能に正当に頼った手順で実現するってのは
          特に「アレ」でも「ハック」でもないんじゃないの?

          元のストーリーのアイデアは本来の規格意図とか無視して
          無理やり別規格の電気的信号を生成しているのがミソですから、

          > このストーリーのアイデアのちょうど逆な感じかな。ハードウェアのハックって凄い。

          というようなものじ

          • > 元のストーリーのアイデアは本来の規格意図とか無視して
            > 無理やり別規格の電気的信号を生成しているのがミソですから、

            そういう観点では、元コメの
            >> [機器]→[RS232-C]→[数個の抵抗とコンデンサだけからなる回路]→SDカード
            は、シリアルポートの使い道としては「本来の規格意図とか無視して無理やり別規格の電気的信号を生成」しているアレでハックな使い道でしょう。

            > あえて(わざわざMMC互換モードで)無理やりな実現

            いや、今回のディスプレイはMMC互換モードとしてすら使ってませんよ。SPIでは使わない端子も含め6本の信号線を汎用I/Oとして使ってます。

            ・シリアルポートシリアルポートとして使わずに、信号線を直接叩いて汎用I/Oとして使う
            ・SDカード端子をSDカード端子として使わずに、信号線を直接叩いて汎用I/Oとして使う

            どっちも十分アレだと思う。(そういう点では、元々コメの「このストーリーのアイデアのちょうど逆な感じ」というのは間違いですね。
            どっちも方向性は同じ。

            シリアルポートを汎用I/Oに使うのは定番だけど、SDカード端子を汎用I/Oに使うのはあまり見かけない、という点では今回の方がアレゲ度は高いと思いますが。

            親コメント
          • by Anonymous Coward

            > 機器からSD上に正しくデータを書き込むアレなツール

            いや、そもそもそーいうショボい機器(つーより治具)のために
            SDバス規格にSPI互換モードとかも規定されてるわけで、

            いや、そもそもアマチュアが正攻法で直接アクセスするには方法はそれ一択なんですよ。
            #まあ、隠し機能でもなんでもないので、ハックと呼べるようなものじゃないとは私も思いますが

            パラレルで高速にアクセスするには、SDカードアソシエーションの会員になって契約しないといけないんです。
            #直ではなくリーダ/ライタをかませればどうとでもなるけど

    • by taka2 (14791) on 2011年05月11日 13時06分 (#1950156) ホームページ 日記

      タレコミ人の「SD カードスロットにここまでの拡張性があるとは驚きである。」という文章は、SDIOを知らずに書いたとしか思えないですね。SDIOの無線LANカード [impress.co.jp]とか何社か出してた憶えがありますし、WILLCOMのSDIOの通信カード [willcom-inc.com]なんてものをあった。

      とはいえ、今回のブツはSDIOどころかもっと原始的で、SD端子の信号線をそのままVGAビデオ信号線に繋いでしまう [qi-hardware.com]というシロモノです。
      SD端子を6bitの汎用I/Oポートに成り下がらせた上で、ビデオ信号を全てソフトウェアで生成するという力業。

      やってることは「PCのシリアルポートを、ソフトウェアで信号線制御することで無理矢理汎用I/Oに使う」のと次元は同じ。
      そこでビデオ表示をやらせてみようなんていう発想がなかなか凄いですね。
      まあ、ワンチップマイコンの汎用I/Oでビデオ信号出力 [hirosaki-u.ac.jp]なんてやっている人もいたりするのですが…

      ただ、800x600-60Hzでドットクロック40MHzぐらいになるので、336MHz のCPUでは、およそ8クロックごとに信号出力という
      もはやソフトウェア的には画像表示以外何もできないようなギリギリのものになってるかと思います。
      CPUに何かさせてる間は同期信号も出せなくなるので、表示停止することになります。

      親コメント
      • by kineko (38165) on 2011年05月11日 13時36分 (#1950188) 日記

        windowsパソコンでも、同等の事が出来てしまうのでは?

        #複数コアの時代だし余裕そう。
        #数百円のSDカードリーダがソフトウェアVGAカードになったりして

        親コメント
        • by Anonymous Coward
          できないと思う。
          I/OポートやメモリマップドI/Oのアクセス速度は、そんなに速くないんです。
          80386の頃から速度が変ってないと思っても、いいです。
      • by Anonymous Coward
        タレコミのリンク先にも、
        ユーザーモードで動いているがCPUを100%占有
        ってなことが書いてありますね。
      • by Anonymous Coward
        これ、シンクレア ZX81 [wikipedia.org] がやってたこととおなじですね。元ユーザかしらん。
    • by masakun (31656) on 2011年05月11日 13時10分 (#1950164) 日記

      こちらのコメント [srad.jp]にあるリンク先をみると、

      • Spectec SDW-821 full-size SD (SDIO) Wi-Fi card
      • Spectec SDW-823 microSD (SDIO) Wi-Fi card
      • (note that all other Spectec Wi-Fi cards use MTK Wi-Fi chips without Linux drivers!)

      が利用可能ということになっていますね。

      ただSDメモリーカード - Wikipedia#SDIO [wikipedia.org]をみますと、microSDで発売されているのは無線LANのみらしいので、ビデオ出力を実現したのは画期的じゃないかと。

      --
      モデレータは基本役立たずなの気にしてないよ
      親コメント
      • by Anonymous Coward

        元コメ氏の質問はauのWi-Fi WINカードがSDIOかどうかだよ。

        >ただSDメモリーカード - Wikipedia#SDIOをみますと、microSDで発売されているのは無線LANのみらしいので、ビデオ出力を実現したのは画期的じゃないかと。

        そこに載ってるのがWi-Fi WINカード。
        というか、NanoNoteの対応状況を挙げたり、SDIO関係ない力技をSDIOとして画期的だと言ったり、的外れすぎる。

    • by Anonymous Coward

      WILLCOMでもW-ZERO3[es]でminiSDの無線LANカードを出していました。

  • by osakanataro (17131) on 2011年05月11日 12時54分 (#1950144) 日記

    Nano Note関連では、ここしばらくは2011年4月4日号 [qi-hardware.com]にあるように、IEEE 802.15.4規格のアダプタとソフトウェアが開発中ですね。

    今回のVGAアダプタネタはまだCommunity Newsのネタには上がってないです。
    にしても、抵抗のみでICとか使ってないってすごいなぁ

    ちなみに、うちにあるNano Noteは、ホコリが・・・

    IEEE 802.15.4について
    家庭内の機器間で無線通信を行わせようというWPAN(Wireless Personal Area Network)規格。
    ZigBeeは、IEEE 802.15.4の上で実現されている

  • by Anonymous Coward on 2011年05月11日 12時39分 (#1950129)
    × SD カードスロットにここまでの拡張性があるとは驚きである
    ○ コネクタにこのような拡張性があるのは当然である

    汎用性のあるコネクタをどのように使うのかは利用者の勝手でしょ!
    プロセッサやFPGAの汎用I/Oポートをどのように使うかも利用者の勝手でしょ!
    • by Anonymous Coward
      × SD カードスロットにここまでの拡張性があるとは驚きである
      △ コネクタにこのような拡張性があるのは当然である
      ○ 汎用I/Fにこのような拡張性があるのは当然である

      言い方悪いし誤解を招くとは思うけどちょっと転送速度が速いので
      シリアルコンソールよりは高機能な使い方が出来てるってだけでそ?

      大事なのは「出来る」でなく「やってしまった」だよなw
    • by Anonymous Coward

      「私のコネクタもなかなかの拡張性があるので誰か接続実験してみませんか?」
      というネタと
      「そこは排出口であって汎用コネクタじゃな……アッー!」
      というネタを思いついてしまったのでAC

  • by Anonymous Coward on 2011年05月11日 12時54分 (#1950146)
    NanoNoteのついているSDカードスロットの根元って
    接続なんでしょうかね?

    大抵のノートPCってカードスロット自体の接続は
    USBまたは稀にPCIeじゃなかったかな?

    ハードウェア的にハックすれば
    USBディスプレイだけでなく
    USBハブすらつなげるんではないかと。

    # 良い子は普通にUSBポートを使いましょう
    • by Anonymous Coward

      NanoNoteは確かCPU(というかSoC)がJZ4720で、SDのインターフェースはこいつが直接持っている。
      (まあJZ4720自体はUSBコントローラも入ってた気がするから、それ使えば良いっちゃあ良いんだけど)

typodupeerror

目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond

読み込み中...