パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

1500円でBASICが動くミニボードPC」記事へのコメント

  • モニタへの出力はVGA端子かHDMIにして欲しかった。
    # 今さらビデオ端子ってきつい

    • by Anonymous Coward

      スクラッチから作るなら、アナログビデオ信号を作るほうが面倒なような気もしますが、
      デバイスに入ってるんでしょうねぇ。

      #低解像度のHDMI信号って市販のテレビで認識するんだろうか・・・・・

      • Re: (スコア:5, 興味深い)

        デバイスに入ってるんでしょうねぇ。

        入ってないと思います。これのすごいところは、ワンチップマイコンでビデオ信号を作成してしまったところです。ビデオ出力なんてものはハード的にありません。ソフト的に輝度情報のみ、NTSC信号を作り出しているのです。おそらく5V振幅で出して抵抗で分圧してるのだと思います。なので濃淡もないと思われますが…R-2R使えばそれも克服できそうではありますが作るの大変ですな。輝度情報のみなので、色はありません。ご参考までに

        --
        ほえほえ
        • Re: (スコア:5, 参考になる)

          今回のIchigoJamの回路図は こんな感じ [fukuno.jig.jp]です。非常にシンプルというか、マイコンチップだけで周辺回路は何もなし。ビデオ信号は2本の汎用デジタルI/Oピンを使って信号生成しています。
          (基準0Vに対して、通常の輝度信号(+0.7V)と、同期信号(-0.3V)の2種類の信号が出せれば、アナログモノクロビデオ信号が作れます)

          ビデオ出力機能なんて影も形も無いワンチップマイコンを使って、NTSC コンポジットビデオ信号を根性でソフトウェア生成すること自体は、実は20年近く前からあったり [hirosaki-u.ac.jp]します。当時「8ピンのPICでPONGが動く」というのはかなり衝撃でした。
          14MHz駆動の8ビットマイ [hirosaki-u.ac.jp]

          • すみません、ちょっと勘違いがあったので訂正。

            > 今回のマイコン LPC1114は ARM Cortex M0 の 50MHz

            LPC1114自体は最高50MHzで動作させられますが、外部からのクロック供給が必要です。内蔵発振回路は12MHzしかありません。 IchigoJamにはそういった周辺回路がありませんので、12MHzで動いているということになります。

            NTSCビデオ信号は、水平同期信号が15.734kHz(63.6μ秒)ですので、12MHzだと水平表示が632クロックになります。 [elm-chan.org]
            IchigoJamの表示解像度は288x216 [fukuno.jig.jp]だそうですので、画面の中央部分576クロック分を使って、1ドットを2クロックかけて表示しているのでしょう。
            はっきりいって、この画面表示期間中は表示につきっきりで他にはまったく何もできない、ということになります。

            あとは、
            水平帰線期間+非表示部分が174クロック(14.5μ秒)
            垂直基線期間+非表示部分が、46.5ライン(=262.5ライン-216ライン)×63.6μ秒/ライン = 2.95m秒で35400クロック
            以上の期間は表示処理が比較的暇になるので、CPUがそれなりに使えるということになります

            まとめると、
            CPU能力の60%以上は表示につきっきりになる。
            垂直帰線期間中に、35,400クロックの処理を、1秒間に60回実行可能(CPU能力の18%)
            水平帰線期間中に、170クロックの処理を、1秒間に12900回実行可能(CPU能力の23%)
            ということになります。

            水平帰線期間中は細切れ過ぎてあまり複雑な処理はしにくいのと、PS/2キーボードの通信は水平期間周期がちょうど良いタイミングなので、
            ・BASICインタプリタの処理は垂直基線期間中に処理
            ・PS/2キー入出力は、水平期間中に処理
            しているのだと思います。

            (PS/2のシリアル通信は10kbps~20kbps、ホスト側からクロックを供給するので、正確なタイミングを測る必要がなくホスト側の都合の良い時にデータ送受信ができます。15.7kHzの水平帰線期間に1ビット分処理する、というのはほどよい処理周期になります。)

            …つまり、画面表示をオフにすると、BASICインタプリタの動作が5倍高速になる、という古のPC-8001みたいなことができるかも…

            親コメント
            • by Anonymous Coward

              内蔵発振回路は12MHzしかありません。 IchigoJamにはそういった周辺回路がありませんので、12MHzで動いているということになります。

              System PLL てのが内蔵されてるよ

              • > System PLL てのが内蔵されてるよ
                ああ、本当ですね。見逃してました。

                となると、4倍の48MHzとすると、1ドットあたり8クロックですね。
                さすがにこれでも表示以外のことは何もできなさそうです。それでも、
                > CPU能力の60%以上は表示につきっきりになる。
                > 垂直帰線期間中に、3ms、140,000クロックの処理を、1秒間に60回実行可能(CPU能力の18%)
                > 水平帰線期間中に、15μs、750クロックの処理を、1秒間に12900回実行可能(CPU能力の23%)
                といった感じで、振り分けられる能力比率は変わりませんが、
                水平帰線期間中は750クロックあれば、PS/2キーボード処理以外にもいろいろできそうです。

                親コメント

最初のバージョンは常に打ち捨てられる。

処理中...