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

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

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

    • by Anonymous Coward on 2015年03月17日 14時05分 (#2779104)

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

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

      親コメント
      • デバイスに入ってるんでしょうねぇ。

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

        キーボードがPS/2なのも、USBペリフェラルのないワンチップならではです。多分シリアルペリフェラル使ってると思います(が、ソフト的に頑張ってる可能性もある…)。

        HDMIにすれば…というのは気持ち的にはわかるのですが、現実問題としては、一番安いHDMI出力コンピュータは、ラズベリーパイでしょうねぇ。

        --
        ほえほえ
        親コメント
        • 今回の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と、8bitマイコンとは桁違いのCPUパワーが結構ありますので、モノクロ表示なら、BASICインタプリタ動作の片手間でもビデオ信号生成可能、って感じでしょう。

          PS/2キーボードも、たぶん純粋ソフト処理。ピン26(クロック)とピン28(データ)の2本を使ってますがこの2ピンはどっちも通信機能のないただの汎用I/Oです。

          親コメント
          • おぉ、回路図あるんですね。

            ビデオ信号は2本の汎用デジタルI/Oピンを使って信号生成しています。

            ほえー。そういうことですか。なるほど、470Ωと100Ωで、か。

            ビデオ出力機能なんて影も形も無い~カラーのコンポジットビデオ信号が生成可能。

            どちらも強烈ですね。はー、カラーもできるのかぁ。一部守れてないところもあるそうですけど。いやいや。

            PS/2キーボードも、たぶん純粋ソフト処理。~ただの汎用I/Oです。

            見事にソフト処理ですね。

            基本、信号系優先で処理して、隙間でBASICインタープリタなんでしょうね。で、この値段でやってしまったと。よー考えるもんですねぇ。感心します。

            --
            ほえほえ
            親コメント
          • すみません、ちょっと勘違いがあったので訂正。

            > 今回のマイコン 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キーボード処理以外にもいろいろできそうです。

                親コメント
          • by Anonymous Coward

            シンクレアZX80とかと同じですね、50MhzのRISCチップならNTSCは楽勝じゃないですかね(それなりに重たいですけど)

        • by Anonymous Coward

          ソフト的にTV信号もどきを作ってたのはAppleIIとかもうそうだったかと思います。
          USBはV-USBが存在しますので実装可能だったと思うんですけどね。

          • NTSC を SCI0/1 で叩いているのでそこで時間を取られていそうで、USB のソフト実装をしたら多分 50MHz 程度だと間に合わないです。PS/2のハンドシェイクもしないといけないですし。

            #メモリが4KBしかないうえ、VRAM で1KB程度持っていかれるので、この関係で VGA 解像度にして 2KB VRAM が困難なのではないかと。プログラムの方はバッファリングしながらフラッシュに書いているんだと思うけど。

            親コメント
          • by Anonymous Coward

            ソフト的にTV信号もどきを作ってたのはAppleIIとかもうそうだったかと思います。

            そんな実装されてねーよアホか。1MHzの6502に夢見杉。

            • by Anonymous Coward

              1.79MHzのファミコンで、水平同期中に描画情報変えてスキャンラインごとに違う描画をするゲームとか、特定の演出時には同期信号からのクロック数を計算してラインのスキャン中にビデオモードを切り替えて光が差すような映像を作るゲームとか有ったそうですよ。
              1MHzも馬鹿には出来ない。

              # AppleIIのことは知りません

              • by Anonymous Coward

                15kHzの水平タイミングレベルの話と、TV信号生成と、何の関係が??

                # マジ投稿意図がわからん

              • by Anonymous Coward

                それはVDPががんばって表示しているから6502がたまに効果を演出できるだけですよね

              • by Anonymous Coward

                TV信号を特別に考えすぎてない?
                元コメの言う「AppleIIでのソフト的作られたTV信号もどき」ってのが何なのかは知らないが、NTSC(モノクロ)は短いフロントポーチでも1.5usの長さがあるから1MHz(1us)なら十分追いかけられる範囲って話だよ。
                他の処理をする余裕はあまりないけどそんなことは知らん。

              • by Anonymous Coward

                NTSC(モノクロ)は短いフロントポーチでも1.5usの長さがあるから1MHz(1us)なら十分追いかけられる範囲って話だよ。

                6502は1命令の実行に最低2クロック掛かるけど1.5μsの信号を1MHzの動作速度でどうにかできるという主張ですか?

        • by Anonymous Coward

          もしソフトでビデオ信号まで作っているなら、ビデオ表示をやめて計算力UPという古のノウハウ(?)がそのまま使えそう。

      • by Anonymous Coward

        VGAのアナログRGB信号ならともかくHDMI(DVI-I)のTMDS差動信号4ペアを20MHz以上で吐けとかワンチップマイコンになに要求してるんスか。
        NTSCはカラーであっても3 579 545Hzを必要な分解能で位相差つけて吐ける程度の能力があればば十分です。
        モノクロならもっと遅くて十分で、AVRやPICなどの8ビットマイコンでのNTSC出力例は結構あります。パワーはギリですがカラー工作例もあります。

        今回のコレはARMコアなのでもうちょい余力はあるんでしょうけど、それにしたってDVI/HDMIは専用ハード無しではキツイと思いますよ。.

        あとNTSCは信号線の数が圧倒的に少なくて済みます。

身近な人の偉大さは半減する -- あるアレゲ人

処理中...