タグ付けされた質問 「atmega」

ATMegaは、AtmelマイクロコントローラーのAVRシリーズのファミリーです。これは、Arduinoプロトタイピングプラットフォームのメインマイクロコントローラーです。質問には特定の部品番号を指定してください。

7
UARTラインを見つける方法は送信データのために無料です
Rs485と通信するボードがいくつかあります。彼らは持っているATMegaようなシリーズのマイクロコントローラをatmega168pかatmega8。各ボードはいつでもデータを自由に送信でき、私はModbusの使用につながる制限があります。ボードの数は5〜10の範囲で指定できます。 私の問題は次のとおりです。ボードは、UARTラインが自由にデータを送信できるかどうかを確認し、バスがビジーであることを検出した場合、バスが空くまで待ってから独自のデータを送信できますか? 自動または手動で変更し、他のボードに回線がビジーであることを検出させる特別なフラグまたはレジスタはありますか?
8 atmega  uart  rs485  bus 

1
AVR:ADCのオーバークロック
これはATmega32データシートからの引用です: By default, the successive approximation circuitry requires an input clock frequency between 50kHz and 200kHz to get maximum resolution. If a lower resolution than 10 bits is needed, the input clock frequency to the ADC can be higher than 200kHz to get a higher sample rate. 8ビットのADCを使用する予定です。問題は、200kHzよりもどれだけ高いかです。データシートでこれに関する情報を見つけることができませんでした。uCが16MHzで動作している場合、64または32のプリスケーラーを使用して、それぞれ250kHzまたは500kHzでADCを変換エラーなしで実行できますか?そして、ADCを仕様範囲外で実行すると、どのような結果が起こりますか?

2
SPIデバイスがISPプログラミングを妨げている
私が持っているATmega8とノキアLCD 5510それに接続されています。ブレッドボードではすべてがうまく機能します。次のステップは、より永続的なボードに移動することです。私の問題は、LCDも接続されているときにATmega8をプログラムできないことです。私は、それらが同じSPIピンを使用し、LCDが何らかの形でプログラミングに干渉しているためだと思います。LCDを外さずにISP経由でATmegaをフラッシュできるように、これをどのように変更できますか?
8 atmega  spi  lcd  isp 

2
AVR割り込みサービスルーチンが期待どおりに実行されない(命令オーバーヘッド?)
7つの入力を持つ小さなロジックアナライザーを開発しています。ターゲットデバイスはATmega16820MHzのクロックレートです。ロジックの変更を検出するには、ピン変更割り込みを使用します。今、私はこれらのピンの変化を検出できる最低のサンプルレートを見つけようとしています。私は、最小5.6 µs(178.5 kHz)の値を決定しました。このレートを下回るすべての信号は適切にキャプチャできません。 私のコードはC(avr-gcc)で書かれています。私のルーチンは次のようになります。 ISR() { pinc = PINC; // char timestamp_ll = TCNT1L; // char timestamp_lh = TCNT1H; // char timestamp_h = timerh; // 2 byte integer stack_counter++; } キャプチャした信号の変化はにありpincます。それをローカライズするために、4バイト長のタイムスタンプ値があります。 データシートで私が読んだ割り込みサービスルーチンは、ジャンプするのに5クロック、メインプロシージャに戻るのに5クロックかかります。私の各コマンドのISR()実行には1クロックかかると想定しています。要するに、5 + 5 + 5 = 15クロックのオーバーヘッドがあるはずです。1クロックの持続時間は、20MHzのクロックレートに従う必要があります1/20000000 = 0.00000005 = 50 ns。秒単位の合計オーバーヘッドは、次のようになります15 * 50 ns = 750 ns = …

3
RTCのバックアップ電圧をチェックすると、バックアップバッテリーが消耗しますか?
私は時間を維持する予定のATMegaプロジェクトに取り組んでおり、ソフトウェア時間(millis()ベース)、DS1307、またはDS3231(ChronoDot)RTCのオプションを選択できるようにしています。 最も基本的に、私がやりたいのは、はんだ付けに使用できるChronoDotのヘッダーを用意し、ソフトウェアでなんとかしてChronoDotが接続されているかどうかを検出し、それを使用するように切り替えることです。通常、DS1307またはDS3231が同じI2Cレジスターを使用しているため、DS1307またはDS3231が存在することを確認するのは簡単ですが、最初の確認後は少しずれ、後者にはより多くの機能があります。したがって、どちらが接続されているかを判断したいと思います。一般的に、私はデフォルトのオプションとしてDS1307をはんだ付けするためにボード上に直接配置することを計画しており、DS3231サポートはデュアル4ピンヘッダーを介してのみ完全なChronoDotを使用します。ChronoDotは基本的に、DS1307が通常行く場所に適合します(この場合は装着されません)。私が特にChronoDotに焦点を合わせている主な理由は、普及しており、入手が簡単で、エンドユーザー(これはキットの場合)にSMDはんだ付けを必要としません。だから、これが私が考えていることです... DS1307とDS3231はどちらもチップにVbatラインがありますが、実際には何も必要ありません。ただし、ChronoDotにはブレイクアウトボード上に実際のVBatピンがあります。DS1307ではなくChronoDotヘッダーからVbatのみを接続して、それをATMegaのデジタル入力ピンに接続することができます。しかし、その入力ピンは抵抗によってグランドにプルダウンされていますか(本当にどの値なのかわかりません...おそらく4.7k?)。私のEE理論が正しければ、そのピンを読み取ることができます。ローになった場合、クロノドットはありませんが、クロノドットはあります。 このようなもの: この回路のシミュレーション – CircuitLabを使用して作成された回路図 ここでの私の主な質問は、これを行うと、RTCのバックアップバッテリーが消耗してしまうかどうかです。通常、メインの5V電源が供給されている間はバックアップバッテリーから電流が引き出されませんが、これをデジタル入力に接続すると、常にバッテリーから電力が引き出されますか?または、いわばピンを「切断」するために、ピンを読み取った後にピンを挿入する必要があるモードはありますか?出力に変更できることはわかっていますが、出力とローに設定されている場合、基本的にはバッテリーを接地していると思います。 とにかく、私のEEコースはずっと前のことです。ここでの理論に関するどんな助けもいただければ幸いです。

1
奇妙な動作なしにミリ秒レベルの電力中断のためにATMEGAをバッファする方法は?
SPIを介して接続されたLED +シフトレジスタストリップ回路を備えたATMEGA328p-pu arduinoがあります。オンになると、EEPROMの変数を増やして表示モードを進めます。 電圧低下検出器をレベル1(2.7V)に設定しました。 バッテリ端子がミリ秒(?)ほどわずかに切断される可能性があるため、物理的な影響でarduinoがモードを変更しないように、電力リードに並列に1500 ufコンデンサが取り付けられています。 キャップがLEDに放電するのを防ぐために、キャップの正極リードにダイオードがあるため、arduinoのみをバッファします。 電圧を保持していたので、それをドレインするためにキャップ全体に並列に1000オームの抵抗があります。これは、起動時にチップがLED回路を点灯しない問題の背後にあると考えられます。 arduino pro miniとstripの定格は5vですが、通常は3.7Vで実行するため、1つのリチウムイオンセルで電力を供給できます。 10秒間または15秒間座った後、回路が点灯しないことがあります。バッテリーを取り外し、数回続けて再接続すると、バッテリーが点灯する場合があります。 誰かがATMEGA(LEDストリップではなく)にパワーバッファを提供するより良い方法をお勧めできますか?私たちはそれを大部分正しく行っていますか? 図(ごちゃごちゃしている場合は申し訳ありませんが、不明な場合は、Illustratorで友達にやり直してもらえます。数時間かかる場合があります):

2
USB HIDデバイスを作成する最も簡単な方法
所有しているRCリモコンのハッキングに取り組んでいます。私がやろうとしていることは、それを開いて、電位差計を利用することです。ポテンショメータから提供されるアナログ値を読み取り、信号をPCに送信したい。基本的には、HID USBインターフェースを備えたジョイスティックのように機能させるために、それを再利用したいと思います。もちろん、HIDインターフェースは必須ではありませんが、これを実現するには最良の方法だと思います。 私はAVRマイクロコントローラーファミリに精通しているので、最初はATMega8でV-USBのようなものを試すことができました。それと同時に、私はそれがいることを考えるようになったことがあり、不必要に困難になります。銀行を壊すことなくそのような接続を実現する簡単な方法はありますか?
8 usb  avr  atmega 

1
実行中にATmegaまたはATtinyデバイスの署名を読み取ることはできますか?
ATtinyまたはATmegaをプログラミングする間、avrdudeはデバイス署名を出力します、この例ではそれはATtinyです。 avrdude: Device signature = 0x1e910a C ++コード(avr-gcc)を使用して、実行中のデバイスでこの署名を読み取ることはできますか?ATmega1280については、それについて書く29.6.10の章がありますが、C ++でそれをコード化する方法に少し戸惑っています。 デバイスがデバイスIDを制御PCに送り返して、PCがそれを決定できるようにしたいと考えています。
8 arduino  atmega  linux  attiny  c++ 

2
ATmega328の実際の最大電流?
私が読んだすべては、ATmega328がピンあたり40mAを提供できると言います。しかし、1つのピンから供給される実際の電流を測定したところ、80mAでした。テストしたすべてのピンで同じでした。他の誰かがこれに気づいた?それとも、この特定のものに固有のものですか? RM:ATMega328データシート

3
Arduino DuemilanoveをATMega168からATMega328にアップグレードする
Arduinoブートローダーが事前にプログラムされたATMFa328をSparkFunから購入しました。私の意図は、現在DuemilanoveにあるATMega168を置き換えることです。これはチップを交換するのと同じくらい簡単ですか、それとも追加の手順を実行する必要がありますか?私が覚えているように、私は現在Arduino 13にいますが、パーツ交換と同時に17(現在のバージョン)にアップグレードすることを計画しています。
8 arduino  atmega 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.