PICからAVRへの切り替え[終了]


13

私はPIC16およびPIC18で3年以上働いてきましたが、AVRについても知りたいと思います。特定のプロジェクトを念頭に置いているわけではありませんが、異なるアーキテクチャを試してみたいと思います。PICとAVRの互換性レポートを入手したいです。


PIC16およびPIC18のアセンブリとCに精通しているuCのソフトウェア。AVRマイクロコントローラーのアセンブリおよびCバリアントは、PICバリアントとどのように異なりますか?多くの違いはありますか?

PCのソフトウェア
AVRチップ用にプログラムをコンパイルおよびアセンブルするには、どのソフトウェアが必要ですか?無料ですか、どこからダウンロードできますか?

プログラミングハードウェア PIC
プログラミングにはVOTIのWisp648を使用しましたが、そのボードはAVRをプログラミングできません。プログラマーを購入する必要がありますか、それとも自分で構築できる回路がWeb上で利用可能ですか?

uCのハードウェア
PICには、PIC18F4620を多く使用しました。同様の機能を備えたAVRを探しています。私が好きな機能は次のとおりです。

  • 内部発振器
  • タイマー
  • 5Vおよび3.3Vバージョン
  • ADC
  • I2CおよびSPIをサポートするMSSP
  • (E)USART
  • PWM
  • 多くのI / Oピン
  • > = 32kBプログラムメモリ、> = 2kB RAM
  • DIPパッケージ

どのAVRチップに同じ機能がありますか?パッケージはディールブレーカーです、私は本当にDIP、PDIPまたはSPDIPが欲しいです。同等の機能を備えたAVRはどうなりますか?

SPIおよびI2Cバリアント
MicrochipにはSPIおよびI2Cプロトコルに独自のバリアントがあると言われました。PICと組み合わせて、マイクロチップのSPIおよびI2Cスレーブデバイスをよく使用します。これらのチップ(23K256、RTC、ENC28J60など)をAVRと組み合わせて使用​​できますか?それに加えて、I2CまたはSPIを使用してAVRとPICチップをリンクすることは可能でしょうか?


@LeonHeller申し訳ありませんが、明確ではありませんでした。具体的なプロジェクトは考えていませんが、さまざまなアーキテクチャを知るために少し遊んでみたいと思います。

5
これは質問が広すぎて、Q + A形式には適していませんが、一般的には、使用を検討しているプロセッサのデータシートを読んでください。ダークサイドでどのようなものかはわかりませんが、おそらくAtmelにはMicrochipのようなセレクターガイドがあります。これらの企業は、誰もが心に留めておくにはあまりにも多くのマイクロを持っています。私は15年以上にわたり100以上のPICプロジェクトを専門的に行ってきましたが、新しいプロジェクトを選択する際には、まだセレクタガイドを参照してください。
オリンラスロップ

1
どのような命令セットがAVRの使用や開発ツールなどを設定するかは、簡単に調査できます。PICのように、これらのものは十分にサポートされています。この面白いビデオをお勧めします:youtube.com/watch
Kaz

electronics.stackexchange.com/a/66163/8627を見て、Linux for Windowsを変更してください。ツールチェーンはほぼ同じです。同一ではありませんが、Googleにとっては充実しています。
ジッピー

@jippieいいね!サンプルが到着したときのためにブックマークに保存しました:)

回答:


8

uCのソフトウェア

PICとAVRの命令セットは似ていますが、アセンブリでAVRのプログラミングを始めません。Atmel Studioを使用したCでのプログラム。これは、AVRバージョンのgccにパッケージ化されており、作成したCの行を表示する非常に優れた逆アセンブラーを備えています。WinAVRもダウンロードします。

PCのソフトウェア

Atmel Studioを使用します。Eclipse、プログラマーのメモ帳、または他の人々が使用する他のランダムなIDEを気にしないでください。Atmel StudioはVisual Studioに基づいており、Atmelから利用可能なすべての種類のプラグインがあり、優れたシミュレーターが組み込まれています。

プログラミングハードウェア

Bus Pirateのような安価なAVRプログラマーはたくさんいますが、Atmel ICSPを入手してください。複数のAVRプロジェクトを実行する場合は、追加費用を支払うだけの価値があります。USBを使用し、Atmel Studio内から制御可能です。

uCのハードウェア

セレクタツールがありますが、一般的に、ローエンドのAtMegaの典型的なハードウェアは次のとおりです。

Internal Oscillator (8 MHz)
3 Timers
2.7-5.5V Supply range
8-channel multiplexed ADC
I2C and SPI support
USART
2 PWMs that work in conjunction with the 8 bit timers

より高性能なチップに行くと、より多くのタイマーとPWMを購入できます。使用可能なフラッシュメモリとSRAMの量は、特定のチップによって異なります。AtMegaのパーツパーツのほとんどはPDIPで利用でき、本当にピン数が多いのはQFPです。

SPIおよびI2Cバリアント

ACP uCでMCP I2C(AVRのTWI)およびSPIデバイスを使用することが可能です。AVRデータシートのSPIおよびTWIセクションを注意深く読む必要があります。行をスキップしないでください。各インターフェイスには、データの順序、クロックの極性などのための複数の制御レジスタがあります。データシートにすべてレイアウトされており、非常に読みやすくなっています。AVRとPICをリンクするのは難しくありません。通信を確立するまで、SPIモードまたはTWIモードで遊ぶ必要があります。


3
ATtinyはATmegaの小さな兄弟です。それらのプログラミングに関しては、非常によく似ています。Makefileでパーツタイプを変更するだけで、ソフトウェアをメガから小さなものに「移植」しました。
ジッピー

@CamilStaps jippieがポイントです。これがPICと類似しているかどうかはわかりませんが、ほとんどの場合、AVRプロセッサはレジスタ名とビット順序を共有しています。より高性能なプロセッサが制御レジスタを2つの部分に分割する場合があるなど、いくつかの例外があります。データシートにはすべて、各章にレジスタの説明セクションがあり、比較が容易になっています。
マットヤング

少なくとも1つのファミリ(PIC16、PIC18、..)では、PICも同様です。ヒント(@jippie)をありがとう!

これは素晴らしい説明です。私のお気に入りのAVRチップはATmega328pとATtiny24です。他の一般的な行は、tinyx5とtiny2313です。これらはすべてDIPで利用でき、すべてがまったく同じSPIベースのプログラミングインターフェイスであるISPを備えています。安い、クイックスタートのために、SparkfunからこのUSBプログラマを試してみてください。sparkfun.com/products/9825言及も価値がWinAVRとして知られているWindows用の人気番組のバンドルです:winavr.sourceforge.netあなたは、開発の任意の並べ替えをする必要はありませんボード、電源、バイパスキャップ、およびクリスタルのみ。
カートE.クロシエ

11
  • Cはいくつかの小さなコンパイラの違いは同じです。アセンブリはアーキテクチャが異なるため、まったく異なります。Cを使用することをお勧めします。いくつかの重要なルーチンをインライン化するのに十分なアセンブリを選択することもできます。

  • IDEとプログラマー向けに、AtmelはMicrochipと同様の製品を提供しています。ウェブサイトを見て、無料のIDEをダウンロードしてプログラマーを選んでください。

  • 18Fに似たチップはATMega328(Arduinosで使用されているもの)のようなものかもしれません。DIPパッケージバージョンを持っていると思います。

  • はい、I2CとSPIはまったく同じように動作するはずです。AVRとPICのリンクは問題ないはずです。

免責事項-AVRを長い間使用していません。最近は主にPICとARMを使用していますが、過去にSPI / I2Cとの接続で問題が発生したことはありません。たとえば、PIC / Atmel EEPROM / Cortex-M3 / FPGA間の接続にSPIを頻繁に使用していました。SPIは非常に基本的なプロトコルであり、ほとんどの現代のマイクロはハードウェアで対応できるはずです。
I2Cはもう少し複雑です。ライセンス/ネーミング(たとえば、2線式、I2C、SMBus)の話を頭の上で思い出せませんが、ほとんどの周辺機器は基本的なレベルで互換性があります。Wikiページを読む詳細についてを。


AtmelのTWI(Two Wire Interface)はI2Cと互換性があります。I2CはNXP(以前のPhilips techology)からライセンスを取得できますが、Atmelはライセンス料を回避することができました。
ジッピー

11

私はPICとAVR(およびその他)でも同様に仕事をしています。

AVR-libcが主な理由でAVRが好きですです。これはオープンソースであると合理的に十分に文書化、まともな組み込みライブラリーです(とは異なり、マイクロチップ社のPLIBが、PLIBは、私は本当に感謝完全なソースを、持っていません)。AVRは通常の古いgccとgdbを使用します。これは、ばかげたIDEが邪魔にならないことを意味します。同じツールがWindows、OSX、Linuxで動作し、JavaとNetbeansまたはEclipseを備えた600MB以上のIDEを使用して、ソースツリーをつまずいたり、独自のゴミで汚染したりする必要はありません。

AVRのプログラミングは通常、ISPまたはJTAGを介して行われます( について最近の質問)、プログラミングの観点からは、実際には他のマイクロと大差ありません。

個人的な観点から、私はマイクロチップ社のデータシートと部品番号付けが非常に嫌いになりました。Microchipを使って組み込み設計で歯を切って、ずっと愛していましたが、最近マイクロを探しているときは、欠陥がないわけではありませんが、Atmelから始める傾向があります。(SAM-BAはSAMパーツのごみであり、工場のサポートにも問題があります。)

どちらを使用するかについては、両方試してください。これは、CokeとPepsiの違いのようなものです。それらは非常によく似ており、選択は通常価格と使用するツールに依存します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.