アカウント名:
パスワード:
モニタへの出力はVGA端子かHDMIにして欲しかった。# 今さらビデオ端子ってきつい
スクラッチから作るなら、アナログビデオ信号を作るほうが面倒なような気もしますが、デバイスに入ってるんでしょうねぇ。
#低解像度のHDMI信号って市販のテレビで認識するんだろうか・・・・・
デバイスに入ってるんでしょうねぇ。
入ってないと思います。これのすごいところは、ワンチップマイコンでビデオ信号を作成してしまったところです。ビデオ出力なんてものはハード的にありません。ソフト的に輝度情報のみ、NTSC信号を作り出しているのです。おそらく5V振幅で出して抵抗で分圧してるのだと思います。なので濃淡もないと思われますが…R-2R使えばそれも克服できそうではありますが作るの大変ですな。輝度情報のみなので、色はありません。ご参考までに
今回の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みたいなことができるかも…
内蔵発振回路は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キーボード処理以外にもいろいろできそうです。
シンクレアZX80とかと同じですね、50MhzのRISCチップならNTSCは楽勝じゃないですかね(それなりに重たいですけど)
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア
少しぐらい高くなってもいいから (スコア:1)
モニタへの出力はVGA端子かHDMIにして欲しかった。
# 今さらビデオ端子ってきつい
Re: (スコア:0)
スクラッチから作るなら、アナログビデオ信号を作るほうが面倒なような気もしますが、
デバイスに入ってるんでしょうねぇ。
#低解像度の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と、8bitマイコンとは桁違いのCPUパワーが結構ありますので、モノクロ表示なら、BASICインタプリタ動作の片手間でもビデオ信号生成可能、って感じでしょう。
PS/2キーボードも、たぶん純粋ソフト処理。ピン26(クロック)とピン28(データ)の2本を使ってますがこの2ピンはどっちも通信機能のないただの汎用I/Oです。
Re:少しぐらい高くなってもいいから (スコア:2)
おぉ、回路図あるんですね。
ほえー。そういうことですか。なるほど、470Ωと100Ωで、か。
どちらも強烈ですね。はー、カラーもできるのかぁ。一部守れてないところもあるそうですけど。いやいや。
見事にソフト処理ですね。
基本、信号系優先で処理して、隙間でBASICインタープリタなんでしょうね。で、この値段でやってしまったと。よー考えるもんですねぇ。感心します。
ほえほえ
Re:少しぐらい高くなってもいいから (スコア:2)
すみません、ちょっと勘違いがあったので訂正。
> 今回のマイコン 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みたいなことができるかも…
Re: (スコア:0)
内蔵発振回路は12MHzしかありません。 IchigoJamにはそういった周辺回路がありませんので、12MHzで動いているということになります。
System PLL てのが内蔵されてるよ
Re:少しぐらい高くなってもいいから (スコア:1)
> 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キーボード処理以外にもいろいろできそうです。
Re: (スコア:0)
シンクレアZX80とかと同じですね、50MhzのRISCチップならNTSCは楽勝じゃないですかね(それなりに重たいですけど)