問題タブ [atmel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - AVR プログラムは常に相対ジャンプ命令で開始する必要がありますか?
私がこれまでに見たすべてのサンプル AVR プログラムは、次のようなコードで始まります。
割り込みを使用していない場合は、を使用せずにrjmp
プログラムを開始でき$0000
ますか?
embedded - AT91SAM7X512のSPIペリフェラルは、SPI_TDRへの書き込み時に無効になります
AT91SAM7X512のSPIペリフェラルは、書き込みを行うX時間(Xは変化します)で無効になりますSPI_TDR
。その結果、プロセッサはでTDRE
フラグをチェックするwhileループでハングしSPI_SR
ます。このwhileループはSPI_Write()
、ATMELが提供するソフトウェアパッケージ/ライブラリに属する関数にあります。問題は任意に発生します。すべてが正常に機能する場合もあれば、繰り返し試行しても失敗する場合もあります(試行=同じバイナリをMCUにダウンロードしてプログラムを実行する)。
構成は次のとおりです(書き込み順に定義)。
SPI_MR
:MSTR
= 1PS
= 0PCSDEC
= 0PCS
= 0111DLYBCS
= 0
SPI_CSR[3]
:CPOL
= 0NCPHA
= 1CSAAT
= 0BITS
= 0000SCBR
= 20DLYBS
= 0DLYBCT
= 0
SPI_CR
:SPIEN
= 1
構成を設定した後、コードはSPIENS
フラグをチェックすることにより、SPIが有効になっていることを確認します。
次のようにバイトの送信を実行します。
質問:
- 書き込み時にSPIペリフェラルが無効になる原因は何
SPI_TDR
ですか? レジスタ
/li>SPI_Write()
を読み取る行のコメントを解除する必要がありますか? つまり、次のコードの4行目:( 4行目は元々コメントとしてマークされています)SPI_RDR
5バイトのデータを送信する上記のコードに何か問題がありますか?
ご注意ください:
- NPCS行番号。3はGPIOライン(つまり、PIOモード)であり、SPIコントローラーによって制御されません。必要に応じてChipSelect#3(NPCS3)ピンをデ/アサートすることにより、コード内でこの行を自分で制御しています。私がそうしている理由は、SPIコントローラーにこのピンを制御させようとしたときに問題が発生したためです。
- 私はPDC/DMAコントローラーを使用せず、使用しないことを好みました。
SPIペリフェラルを2回リセットしませんでした。これは、リセットを実行した場合にのみエラッタが2回リセットするように指示しているためです。これは実行しません。正誤表の引用:
ソフトウェアリセット(SPI制御レジスタのSWRST)を実行すると、SPIが正しく動作しない場合があります(チップセレクトの前にクロックが有効になります)。
問題の修正/回避策
SPI制御レジスタフィールドのSWRST(ソフトウェアリセット)は次のようになります。正しく設定するために2回書き込まれます。レジスター(in )への書き込みの前に遅延を設定すると、コードが完全に機能し、通信が成功する場合があることに気付きました。
SPI_TDR
SPI_Write()
便利なリンク:
SPIを初期化し、5バイトの転送を実行する例は、高く評価されており、役に立ちます。
ide - ATMega32マイクロコントローラーのコーディングに使用するIDE
私はミニローバー(火星ローバータイプ)の設計を必要とするプロジェクトに携わっています。私はATMega32マイクロコントローラーを使用しています。DCモーター、IRセンサーなどの他のハードウェアがあります。私の質問は、マイクロコントローラーのコーディングに使用できるIDEはありますか?私はマイクロコントローラーコーディングの概念に慣れていないので、ユーザーフレンドリーである必要があります。また、シミュレーターも必要です。ネットで調べてみたのですが、用語が多すぎて戸惑いました。コードを書いて、シミュレーターを使ってテストできるシンプルなIDEで十分だと思います。助言がありますか?
compilation - AVR_GCC コンパイル エラー delay.h
手順は、blinky.zip、gcc セクション、Teensy++ v.2 にあります。Makefileとblinky.cはzipに入っています。Makefile を使用していないため、最初に F_CPU を定義することで、blinky.c を変更しました。以下を参照してください。では、なぜエラーが発生するのでしょうか? at90usb1286 チップ用に C ファイルをコンパイルするにはどうすればよいでしょうか?
embedded - WinCupl で単純な 2 ビット非同期カウンターを作成する
これは私のコードで、出力ピンの下の 2 行で 1 ビットのリップル カウンターが作成されますが、最初のフリップフロップの出力を 2 番目のフリップフロップのクロック入力に転送する方法がわかりません。私がプログラムしようとしているチップは、Atmel ATF750C チップです。
c - マイクロコントローラー用のGUIライブラリ
128x64ドットのグラフィックLCD(EA DOGL128-6)とナビゲーション用の4つのボタンに接続されたマイクロコントローラー( Atmel XMEGA )用のGUI駆動型アプリケーションを作成したいと思います。
ディスプレイ自体の制御(ピクセルや文字の描画など)は問題ありませんが、車輪の再発明を防ぐために、cで記述されたGUI-Library / -Toolkitを探していましたが、そのソースコードが含まれています。 32 MHz 8ビットマイクロコントローラーであり、少なくとも次のコントロールを提供します。
- パネル(要素をグループ化するため)
- メニュー(スクロール可能)
- アイコン
- ラベル
- ボタン
- 折れ線グラフ(オプション)
しかし、私は何も役に立ちませんでした。誰かがそのようなライブラリを知っていますか(またはよりよく使用します)(できれば無料で)?
avr - AVR JTAGICE mkⅡ
オリジナルの Atmel jtag プログラマーの価格は 300 ドルです。
http://www.atmel.com/dyn/products/tools_card_v2.asp?tool_id=3353
http://search.digikey.com/scripts/DkSearch/dksus.dll?site=us&lang=en&mpart=ATJTAGICE2
どのクローンをお勧めしますか? それらは 100% クローンですか? (avr studio、同じ FW などで動作)
ありがとう。
linux - ソフトウェア経由で USB ライトを制御する
USB電源の小さなライトがあります。ソフトウェアでON/OFFできるようにしてほしい。Linuxコンピューターに接続します。私は以前のプロジェクトからAtmel ATtiny2313を持っていますが、マイクロコントローラーを転用するよりも単純なハックでこれを行いたいです。
これは可能ですか?何らかの USB 準拠のファームウェアがないと、コンピュータはデバイスと通信できないため、これは実行できないのではないでしょうか?
OPがLM317電圧レギュレータを使用してUSB出力の電圧を変更することを示唆するコメントがあるこの質問を見つけました。これは私には当てはまらないと思いますが、言及したいと思いました。
アップデート:
USBtinyをマイクロコントローラーに取り付けて、それをライトに配線し、コントローラーを制御するアプリを作成できるようです。しかし、大変な作業のように聞こえます。簡単なハックをしたいのですが、USB の経験がありません。
i2c - Atmega64 ピンの質問です。SCL/SDA は TXD/RDX と同じですか?
私は決して Atmega のプロではありません。実際、彼らと一緒に働いたことはありません。Atmega64 コントローラーを使用するデバイスに、i2c インターフェイスを使用して外部 eeprom を追加しようとしています。データシートから、ピン 25 と 26 には PD0/PD1 というラベルが付いており、i2c の SCL/SDA であることがわかります。それはいいですし、ダンディです。それで、私はボードに行き、トレースを開始します。それらは、まだよく見ていないいくつかの単純な回路を備えたロッカースイッチに接続されていることがわかりますが、i2c互換のものであると想定しました。しかし、このデバイスにはそのようなロッカーが 2 つあるので、もう一方のロッカーを同じ 2 つのピンにトレースすることを期待していました (i2c は複数のスレーブを持つことができるバスであるため)。代わりに、PD2/PD3 および RXD1/TXD1 とラベル付けされた 2 つの隣接するピン 27 および 28 にトレースバックしました。さて、それは私を混乱させました。
SCL/SDA ラインで並行してメモリを追加できると思っていましたが、発見したことの意味は次のとおりです。
- SCL/SDA は RXD1/RXD2 または
- SCL/SDA がどのように機能するかについて混乱していますが、それはバスではありませんか、それとも単純な入力として使用できますか?
悲しいことに、私は私が何を求めているのかよくわかりません。誰かがこれに光を当てることができますか? メモリを SCL/SDA に追加できるかどうか。
ありがとう。
スティーブ