Parallax Propellerマイクロコントローラーベースのミニコンピューター

Propellerと呼ばれるParallaxマイクロコントローラーは、PICやAVRなどのジャンルの「クラシック」と比較して、やや奇妙なニッチを占めています。 最初の2つについては、これらは汎用アーキテクチャーであると言えます。 プロペラの作成者は、この問題に「側面から」アプローチしました。



Propellerの主要な特徴:

Spin言語は、便利なマルチプロセッサプログラミング向けに設計されており、手続き型言語とオブジェクト指向言語のクロスのように見えます。



次に、複数のコアでスピンする関数を起動するスピンコードの例を示します。 コードは本当にシンプルで簡単です。



CON _clkmode = xtal1 + pll16x 'Establish speed _xinfreq = 5_000_000 '80Mhz OBJ led: "E555_LEDEngine.spin" 'Include LED methods object VAR byte Counter 'Establish Counter Variable long stack[90] 'Establish working space PUB Main cognew(Twinkle(16,clkfreq/50), @stack[0]) 'start Twinkle cog 1 cognew(Twinkle(19,clkfreq/150), @stack[30]) 'start Twinkle cog 2 cognew(Twinkle(22,clkfreq/100), @stack[60]) 'start Twinkle cog 3 PUB Twinkle(PIN,RATE) 'Method declaration repeat 'Initiate a master loop repeat Counter from 0 to 100 'Repeat loop Counter led.LEDBrightness(Counter, PIN) 'Adjust LED brightness waitcnt(RATE + cnt) 'Wait a moment repeat Counter from 100 to 0 'Repeat loop Counter led.LEDBrightness(Counter,PIN) 'Adjust LED brightness waitcnt(RATE + cnt) 'Wait a moment
      
      





cognew



関数は3つのコアでタスクを実行し、それぞれ独自の周波数とスタックでパラメーター化しています。



簡略化すると、プロペラは次のように構成されています。







「プロペラ」という名前は、共有リソースにアクセスする優先順位を転送するモデルに由来します。 時間の分離を制御するハブモジュールは、回転するプロペラのようにこれを円で実行します。



この記事では、Propeller自体には深く入りたくありません。これは大きなトピックだからです。 最後に興味がある人のために、このマイクロコントローラに関する包括的な情報を入手できる書籍へのリンクがあります。



しかし、「 ポケットミニコンピューター 」と呼ばれる興味深いプロジェクトについてお話ししたいと思います。 これは、「P8X32A QuickStart」評価ボードをベースとして使用するプロペラベースのミニコンピューター(P8X32A)です。







この見た目は次のとおりです(公式サイトの写真)。







実際、著者評価ボードと、VGA、microSD、PS / 2、サウンド、Wii Gameportを備えた拡張ボードを販売しています。 オプションで、32KB SRAM RAMチップを配置できます。



このプロジェクトの特徴は、作者がBASICインタープリターを開発したことです。これにより、これらすべてが80年代のマイクロコンピューターに変わります。 Spin'eで書かれたBASIC( ソースオープン )。 方言は非常に制限されています。たとえば、配列、文​​字列、実変数はありません。変数名は1文字のみです。 それにもかかわらず、SDカードを含むすべての周辺機器へのアクセスを提供し、C(ParallaxにはPropeller用のGCCバージョンがあります)でも、少なくとも同じSpin'eで書き込み可能な純粋なバイナリファイルを実行できます。アセンブラー。



次に、デザイナーの写真をいくつか掲載します。これにより、セットに含まれているものが明確になります。 すでに述べたように、PMCの基礎は既製のP8X32A QuickStartボードであるため、拡張ボードをはんだ付けするだけで済みます。















ほとんどすべてが封印されています。







サンドイッチアセンブリ。



















以下は、グラフィック機能を評価するための小さなデモです。







一般的な印象



プロペラ



汎用プロセッサとは言えません。 私の主観的な意見では、プロペラを効果的に使用するには、適用されたタスクを十分に理解する必要があります。 たとえば、PropellerにはPWM、DAC / AAC、組み込みフラッシュメモリ、トリガー、割り込みの概念がなく、作成者はいくつかのコアのパワーを使用して必要なプログラムを実装するか、専用の外部マイクロ回路を使用するかを提供します。 最後の本では、追加のチップを使用した多くの例を説明しています。



別のことは興味深いです。 プロペラの作成者は、従来のアプローチから離れることを恐れず、ほとんど既成のタスクである具体的なアプリケーションに投資しようとしました。 いくつかのプロジェクトでは、これが役に立つかもしれません。 私が理解しているように、プロペラは、たとえば高品質のテレビ信号とVGA信号を生成する機能が組み込まれているため、あらゆる種類のスロットマシンとコンソールを作成するのに非常に便利です。



結論 :間違いなく注目に値する興味深いアーキテクチャ。



デザイナーPMC



繰り返しますが、二重の感覚。 動作しているようですが、BASICには明らかにリソース、特にメモリが不足しています。 たとえば、PIC32に基づく同じMaximiteは、それを頭で上回っています。 その上で、少なくともRetroBSD 、少なくともRadio 86RKを実行できます。 そして、組み込みのMMBasicは、比類のないほど強力です。



ただし、39ドルで、これは、デバイスが既に組み立てられている状態で、プロペラを感じたい人にとっては素晴らしいおもちゃです。



おやつに



私が読んだプロペラに関する本は、アーキテクチャに関してであり、見落とされています(プロジェクトに関して)。 私はそれをすべてお勧めします。






初心者向けの小さくて非常に理解しやすい本。 (写真付きで)興味深いプロジェクトを説明します。 共著者の1人はPMCの設計者です。



プロペラ入門










建築とプロペラの本質の理解に関して非常に有能な本。 スピンプログラミングについてのみ説明しますが、マイクロコントローラのアプローチと機能について詳しく説明しています。 最初の章を読んだ後、アーキテクチャについてほぼ完全に理解できます。 いくつかのプロジェクトを以下に説明します(これはスキップできます)。



Spinによるプロペラのプログラミング:並列処理の初心者向けガイド(Tab Electronics)










作成者のPropellerを使用した実際のプロジェクトのコレクション。



マルチコアプロペラマイクロコントローラーのプログラミングとカスタマイズ:公式ガイド







この記事の執筆時点では、最初の本はAmazonでKindle形式でのみ2ドルの価格で入手できますが、検索すると2冊目と3冊目が見つかります。



All Articles