アカウント名:
パスワード:
モニタへの出力はVGA端子かHDMIにして欲しかった。# 今さらビデオ端子ってきつい
スクラッチから作るなら、アナログビデオ信号を作るほうが面倒なような気もしますが、デバイスに入ってるんでしょうねぇ。
#低解像度の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みたいなことができるかも…
内蔵発振回路は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は楽勝じゃないですかね(それなりに重たいですけど)
ソフト的にTV信号もどきを作ってたのはAppleIIとかもうそうだったかと思います。USBはV-USBが存在しますので実装可能だったと思うんですけどね。
#メモリが4KBしかないうえ、VRAM で1KB程度持っていかれるので、この関係で VGA 解像度にして 2KB VRAM が困難なのではないかと。プログラムの方はバッファリングしながらフラッシュに書いているんだと思うけど。
ソフト的にTV信号もどきを作ってたのはAppleIIとかもうそうだったかと思います。
そんな実装されてねーよアホか。1MHzの6502に夢見杉。
1.79MHzのファミコンで、水平同期中に描画情報変えてスキャンラインごとに違う描画をするゲームとか、特定の演出時には同期信号からのクロック数を計算してラインのスキャン中にビデオモードを切り替えて光が差すような映像を作るゲームとか有ったそうですよ。1MHzも馬鹿には出来ない。
# AppleIIのことは知りません
15kHzの水平タイミングレベルの話と、TV信号生成と、何の関係が??
# マジ投稿意図がわからん
それはVDPががんばって表示しているから6502がたまに効果を演出できるだけですよね
TV信号を特別に考えすぎてない?元コメの言う「AppleIIでのソフト的作られたTV信号もどき」ってのが何なのかは知らないが、NTSC(モノクロ)は短いフロントポーチでも1.5usの長さがあるから1MHz(1us)なら十分追いかけられる範囲って話だよ。他の処理をする余裕はあまりないけどそんなことは知らん。
NTSC(モノクロ)は短いフロントポーチでも1.5usの長さがあるから1MHz(1us)なら十分追いかけられる範囲って話だよ。
6502は1命令の実行に最低2クロック掛かるけど1.5μsの信号を1MHzの動作速度でどうにかできるという主張ですか?
もしソフトでビデオ信号まで作っているなら、ビデオ表示をやめて計算力UPという古のノウハウ(?)がそのまま使えそう。
VIDEO 0 で、ビデオ表示を止めて高速化できますね
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike
少しぐらい高くなってもいいから (スコア:1)
モニタへの出力はVGA端子かHDMIにして欲しかった。
# 今さらビデオ端子ってきつい
Re: (スコア:0)
スクラッチから作るなら、アナログビデオ信号を作るほうが面倒なような気もしますが、
デバイスに入ってるんでしょうねぇ。
#低解像度のHDMI信号って市販のテレビで認識するんだろうか・・・・・
Re:少しぐらい高くなってもいいから (スコア:5, 興味深い)
入ってないと思います。これのすごいところは、ワンチップマイコンでビデオ信号を作成してしまったところです。ビデオ出力なんてものはハード的にありません。ソフト的に輝度情報のみ、NTSC信号を作り出しているのです。おそらく5V振幅で出して抵抗で分圧してるのだと思います。なので濃淡もないと思われますが…R-2R使えばそれも克服できそうではありますが作るの大変ですな。輝度情報のみなので、色はありません。ご参考までにLPC1114の特徴 [nxp-lpc.com]をどうぞ。
キーボードがPS/2なのも、USBペリフェラルのないワンチップならではです。多分シリアルペリフェラル使ってると思います(が、ソフト的に頑張ってる可能性もある…)。
HDMIにすれば…というのは気持ち的にはわかるのですが、現実問題としては、一番安いHDMI出力コンピュータは、ラズベリーパイでしょうねぇ。
ほえほえ
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は楽勝じゃないですかね(それなりに重たいですけど)
Re: (スコア:0)
ソフト的にTV信号もどきを作ってたのはAppleIIとかもうそうだったかと思います。
USBはV-USBが存在しますので実装可能だったと思うんですけどね。
Re:少しぐらい高くなってもいいから (スコア:1)
#メモリが4KBしかないうえ、VRAM で1KB程度持っていかれるので、この関係で VGA 解像度にして 2KB VRAM が困難なのではないかと。プログラムの方はバッファリングしながらフラッシュに書いているんだと思うけど。
Re: (スコア:0)
ソフト的にTV信号もどきを作ってたのはAppleIIとかもうそうだったかと思います。
そんな実装されてねーよアホか。1MHzの6502に夢見杉。
Re: (スコア:0)
1.79MHzのファミコンで、水平同期中に描画情報変えてスキャンラインごとに違う描画をするゲームとか、特定の演出時には同期信号からのクロック数を計算してラインのスキャン中にビデオモードを切り替えて光が差すような映像を作るゲームとか有ったそうですよ。
1MHzも馬鹿には出来ない。
# AppleIIのことは知りません
Re: (スコア:0)
15kHzの水平タイミングレベルの話と、TV信号生成と、何の関係が??
# マジ投稿意図がわからん
Re: (スコア:0)
それはVDPががんばって表示しているから6502がたまに効果を演出できるだけですよね
Re: (スコア:0)
TV信号を特別に考えすぎてない?
元コメの言う「AppleIIでのソフト的作られたTV信号もどき」ってのが何なのかは知らないが、NTSC(モノクロ)は短いフロントポーチでも1.5usの長さがあるから1MHz(1us)なら十分追いかけられる範囲って話だよ。
他の処理をする余裕はあまりないけどそんなことは知らん。
Re: (スコア:0)
NTSC(モノクロ)は短いフロントポーチでも1.5usの長さがあるから1MHz(1us)なら十分追いかけられる範囲って話だよ。
6502は1命令の実行に最低2クロック掛かるけど1.5μsの信号を1MHzの動作速度でどうにかできるという主張ですか?
Re: (スコア:0)
もしソフトでビデオ信号まで作っているなら、ビデオ表示をやめて計算力UPという古のノウハウ(?)がそのまま使えそう。
Re:少しぐらい高くなってもいいから (スコア:1)
VIDEO 0 で、ビデオ表示を止めて高速化できますね