LPC1102およびウォームランプインジケーター





「フリースケールは、ARMアーキテクチャに基づいて世界最小のマイクロコントローラーのサイズを縮小しました」という記事でこのテキストを書くことを余儀なくされました。 この記事の公開の3日前に、この記事で説明されているFreescale KL02および新しいKL03と直接競合するNXP LPC1102コントローラーを使用した小さなプロジェクトを完了しました。 さらに、NXP(Philips)とFreescale(Motorola)の2つのマイクロコントローラーの比較が行われ、私のプロジェクトはLPC1102にあります。



比較


現時点では、KL03のドキュメントは利用できません(発表されているだけです)。したがって、比較には参加しません。実際、あまり望ましくありませんでした。新しいKL03は昨年のKL02とほとんど変わりません。 主な違いは次のとおりです。



最も貴重なリソースの2倍の半分-RAMは最も素晴らしいアイデアではありませんが、明らかにこれは8 KBのROMを追加してケースのサイズを小さくすることの代償です。 結局のところ、実際のケースは、シリコンチップそのものです。



したがって、最も近い2つの代表を比較します。



<style type="text/css"> .tg {border-collapse:collapse;border-spacing:0;} .tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;} .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;} </style>
      
      







LPC1102UK MKL02Z32CAF4R
寸法 2.17 x 2.32 mm 1.99 x 1.94 mm
結論のステップ 0.5 mm 0.4 mm。
結論の数 16 20
建築 ARM Cortex-M0 ARM Cortex-M0 +
供給電圧 1.8-3.6 V 1.71-3.6 V
働く温度 -40-85°C -40-85°C
コア周波数 50 MHz 48 MHz
EPROM 32K 32K
RAM 8K 4K
ROM 16K -
ADC 10ビット 12ビット
DAC - 6ビット
SPI 1 1
I2C 1 2
UART 1 1
タイマー 2-32ビット、2-16ビット 3-16ビット
デバッグ Swd Swd


ケースの寸法の10分の1ミリの差は、私にはまったく取るに足らないように見えますが、これがこれら2つのプロセッサの選択に何らかの影響を与える可能性があることは非常に疑わしいです。



結論のステップ、モトローラでは0.4、フィリップスでは0.5、PCB設計の観点から、後者を支持する選択は明らかです。 このような小さなステップは、ケースの小型化の必然的な結果です。 小さなステップにより、もう1行の結論を追加できました。KL02の場合は20、LPCの場合は16です。



アーキテクチャの名前に「+」を追加することは間違いなく価値があり、このプラスの主で議論の余地のないプラスは、その非常に低い消費電力です。 LPC1102を正当化するために、ARM Cortex M0 +アーキテクチャよりも古いと言えます。

アーキテクチャの違いを考えると、クロック速度に基づいてパフォーマンスを比較することは単に正しくありませんが、どちらが優れている/高い/速い/生産的であるかを言うのは難しいと思います。 50および48 MHzは、このような小型化が必要なタスクには多くあり、ほとんどの場合、周波数は電力消費を削減するために削減されます。 したがって、クロック周波数は、いずれかを選択する際の最後の基準の1つになります。



このようなパンくず用の「プログラム用」の32KBのフラッシュメモリで十分であり、ローダーでさえも問題ありません。 しかし、RAMには疑問があります。 NXPは、このような小さなパッケージで8キロバイトもの耐え難いものを試してみました。 フリースケールには半分の4キロバイトがありますが、これはおそらくマイナスですが、考えてみると、結論のサイズと数を考えると4Kはそれほど小さくありませんが、もっと欲しいです。 常にもっと欲しいです。



ROM読み取り専用メモリ、つまり 再プログラミングの可能性のないメモリ。 このメモリには、ユーザープログラムを新しいチップにフラッシュできる工場ブートローダー(チップの製造中にステッチされた)が含まれています。 ファームウェアは、利用可能なインターフェイスの1つ、たとえばUARTを使用して実行されます。 このような工場用ブートローダーはLPC1102にのみあり、KL02ではそうではありません。 発表によれば、ファクトリブートローダーはKL03に表示されます。



シリアルSPIは両方のコントローラーに存在しますが、NXPのコントローラーでは、このインターフェイスははるかに機能的であり、8フレーム(Freescaleには1フレーム)のFIFOバッファーと、KL02にはない多くのチップがあります。 ただし、重大なマイナスが1つあります。SPI_CLKの出力はSWD_CLKと結合されます。 つまり、JTAG / SWDアダプターを使用してSPIをデバッグすることはできません。 デバッグ期間には、LPC1102の代わりにLPC1104をハンダ付けする解決策があり、これらの信号は異なる結論に間隔が空けられます。



I2Cは注目に値しませんが、KL02にはこのようなインターフェイスが2つあり、LPC1102には1つあります。 個人的には2つのバスタイプインターフェイス、つまり 1つのインターフェイスに多くのデバイスを接続できるので、なぜ2つですか?...さて、大丈夫、まあ、それは干渉しないようです。



タイマーとその容量により、LPC1102は競合他社よりも豊富です。 32ビット以上のキャプチャ/比較出力があります。 NXPの支持者は喜ぶしかありません。



両方のコントローラーには、デバッグおよびプログラミング用のSWDインターフェースがあります。 これが2線式インターフェースであることを知らない人は、共通線をカウントしません。 複数の信号を持つJTAGとは対照的に、非常に便利です。



フリースケールのコントローラーのプラスの貯金箱では、各チップに一意の80ビット識別子の存在を追加したいことがありますが、これは時には非常に便利なものです。



その結果、私は言う、セトリスパリバス、私はフィリップスコントローラー(NXP)を選択するだろう、8KのRAMのために愚かにも、まあ、それはどういうわけかより近いです。 もちろん、それはすべてタスクに依存します。



LPC1102、ウォームランプ LEDインジケータのプロジェクト。


ハード


私はインターネットをサーフィンしましたが、何を探したか覚えていませんでしたが、そのような奇跡が目を引きました。





HP HDSP-2001インジケーター



標準ハウジングDIP12のサイズのミニチュアLEDグラフィックインジケーター。 金メッキの調査結果、セラミックケース、ガラスカバー(売り手はサファイアクリスタルと主張しています...)はただの喜びですが、今ではそうではありません。 インジケーターには、それぞれ7x5ピクセルの4つの使い慣れた機能があります。 制御方法はブロック図から見ることができます-シフトレジスタ4 * 7ビットと列の列挙の5つの入力。 シフトレジスタ出力もあり、ビット深度を簡単に増やすことができます。





HDPS-2001インジケーターのブロック図



注文しました。 到着しました。 早急に有効にする必要があります。どのように機能するかを確認してください。 これを行うには、Arduinoではなく、RasberryPiではなく、開始クジラで十分であり、STM32xxxではなく、AVRでさえ神に祝福しませんが、長い間引き出しにほこりを集めているLPC1102を取ります。





NXPギフト



いいえ、しかし何を歩くべきなのかは、有望なマイクロコントローラーの機能に慣れる必要があります。 繰り返しになりますが、NXPの紳士たちは、ちなみに彼らが送ったのはまったく無料ではなかったことを喜んでいます。 すぐに言ってやった!





マッチの種類





底面図





エポキシ樹脂LPC1102にはまだ浸していない



最終的な結果はすでに写真に表示されています。このレイアウトを作成したとき、記事を書く予定はありませんでした。中間の写真はありません。



そして、あなたは以下を見ることができます:





申し訳ありませんが、電気回路図はありません。 早く走らせたかった。 これは根本的に間違っています。有能なエンジニアは、どんなに簡単であっても、どんな些細なことでも図を描くべきです。 なぜなら すべてがすぐに忘れられ、1週間後には回路内の何かを変更することは非常に困難になります。



柔らかい


ソフトウェアはIAR環境のCで作成されました。 彼はシンプルなランニングラインを作り始めました。 まず、「画面バッファー」は8x5バイトの2次元配列です。 8精通度、各精通度5列、各列7ビット。 システムタイマー2msの中断。 割り込みでは、前の列をオフにし、次の8列のデータを「スクリーンバッファー」からシフトレジスタにロードし、2msごとに点灯します。 注意深い読者は、信号SWD_CLKとSPI_CLKが同じピンで結合されるため、SPIはソフトウェア7ビットであることを覚えています。 一番難しい部分!

次に、「スクリーンバッファー」で機能するputcharを記述します。5x7フォントが必要です。 フォントを作るのは難しくありませんが、私はそれを用意しました(以下のリンク)。 SetPos関数を記述します-どの精通度で出力するかを示します。 さて、標準のprintfは再定義されたputcharを取得します。 その後、200msごとに新しい場所にラインを表示します-クリープラインは準備ができています。







おわりに


説明されたすべては3晩で行われ、ほとんどの時間はチップ内のLPC1102の「消化」に費やされました。これは別の投稿に値するトピックです。 経験、既製およびカスタマイズされたツール、時にはまっすぐな腕、そして最も重要な魅力的な欲求を持っている、これは本当です。 このプロジェクトには実用的なアプリケーションはなく、望んでいただけでした。



参照資料


[1] www.nxp.com/products/microcontrollers/cortex_m0_m0/lpc1100/LPC1102UK.html#documentation-LPC1102

[2] www.freescale.com/webapp/sps/site/prod_summary.jsp?code=KL02&fpsp=1&tab=Documentation_Tab-KL02

[3] www.freescale.com/webapp/sps/site/prod_summary.jsp?code=KL03&fpsp=1&tab=Documentation_Tab-KL03

[4] electronix.ru/forum/lofiversion/index.php/t44983.html-フォント5x7、ニックネーム「AHTOXA」を持つユーザーに感謝

[5] www.hparchive.com/PARTS/HP-Displays-HDSP-2010.pdf-インジケーターに関する技術文書



All Articles