電気工学

電子工学および電気工学の専門家、学生、および愛好家のためのQ&A


5
I2C EEPROMビットバンギング:正常に書き込みますが、最初のビットが設定されていない場合のみ
現在、ビットバンギングを使用してSDAおよびSCLラインを駆動するI2C EEPROMプロジェクトに取り組んでいます。 私の読み取り機能は正常に動作しますが、先頭に「1」が付いたバイトを書き込むときはいつでも、常にFFを読み取ります。バイトが以前に何か他のものでプログラムされていても。先頭の「0」は完璧です。これは私の読み取りルーチンではありません。スコープで確認できるように、FFを返します。 これがなぜであるかについての提案を探しています。問題を引き起こす可能性のある明らかなミスはありますか?[コードを投稿できません-会社の機密情報... :(] 私が見るすべての波形は、仕様を正確に満たしています。EEPROMを分離しています。私のプルアップは2.2kなので、仕様の範囲内です。このプロトタイプでは、約500 Hzでクロッキングしています。チップは各バイトにACKを送信しているため、それらを認識します。しかし、それはうまくいきません... Microchip 24LC256を使用しています。 1バイトの簡略化された書き込みアルゴリズム: wait SDA low SCL low wait for each bit if bit is set: SDA high if bit is unset: SDA low wait SCL high wait wait SCL low wait wait SDA high SCL high wait wait check ACK status SDA …
9 i2c  eeprom 

1
Altium Busの使い方は?
私はアルティウムの初心者です。8本のワイヤーを接続しようとしていますが、バスを使用しています。Altiumのウェブページでこれを読みましたが、必要な方法でバスを接続する方法についてはあまり説明していません。このように接続したい: ピン数が両側で一致しないことは知っていますが、それが私の考えです。可能であれば、ポートまたはネットラベルとバスを接続したいと思います。私はこの方法を試しました: しかし、PCBデザインにインポートするときに接続されていません。これを行う正しい方法はどうですか?

2
Arduinoは切断されたピンに入力値を持っています
Arduinoは初めてです。たぶん基本的な質問です... このプログラムをロードすると: int mval = 0; void setup() { Serial.begin(9600); // set up the LCD's number of columns and rows: } void loop() { mval = analogRead(1); Serial.println(mval); delay(1000); } 300と400の間で変化する値を取得します。0にする必要があると思うときは、その入力に何も接続されていないということです。 何か案は??USB経由でラップトップに接続されているarduino UNOです。

1
SPIはMSP430で文字化けしているようです
Launchpadボードに接続されたバス海賊から賢明なビットを取り出そうとしています(Sparkfunケーブルを使用:オレンジはP1.6、黄色はP1.5です。MOSIとMISOを混同していない限り、これは正しいはずです。 ...)。バス海賊を使用して何かを監視しているだけなので、CSを接続していません。 バス海賊は、SPI、125KHz、クロック極性アイドルLOW、出力クロックエッジアクティブからアイドル、入力サンプルフェーズ中央、/ CS、出力は正常に設定されています。 Launchpadには、外部クリスタルのないMSP430G2231があります。Code Composer Studioを使用すると、次のようになります。 #include "msp430g2231.h" volatile unsigned char value=0; #pragma vector=USI_VECTOR __interrupt void universal_serial_interface(void) { value+=1; USISRL=value; USICNT=8; } void main(void){ WDTCTL = WDTPW + WDTHOLD; BCSCTL1 = CALBC1_1MHZ; // Set range DCOCTL = CALDCO_1MHZ; BCSCTL2 &= ~(DIVS_3); USICTL0 |= USIPE7 + USIPE6 + USIPE5 + …
9 spi  msp430 

2
コンポーネントが強い磁場で動作するかどうかを確認するにはどうすればよいですか?
PCBをネオジム磁石の隣に置いてもうまく機能するように設計したいと思います。コンポーネントがシールドなしでこのような状態で動作できるかどうかを確認するにはどうすればよいですか? 編集:磁石の隣に回路を配置しても、回路に問題はありませんが、人々は安定性について疑問を抱き始め、それを証明する方法がわかりません。主なコンポーネントは、ボード上のNANDフラッシュメモリ、マイクロコントローラー、MEMS加速度計、バッテリー、ワイヤレストランシーバーです。

5
厚いはんだは溶けにくいですか?
20ワットのアイロンと1.2 mmの63/37はんだを使用して、PCBにはんだ付けを試みています。私が理解できることから、私はその点まで(錫メッキされた)鉄に触れて加熱し、はんだをその点に触れさせると、溶け始めるはずです。しかし、私が見るビデオでは5秒ではなく、そのように溶けるのに十分に熱くなるのに20秒かかります。結局、はんだをアイロンに触れて、ボードに流そうとする必要があります。 0.8 mmはんだの方が適していますか?
9 soldering 

3
デジタルロジックの設定ビット数を取得する
演習として、私はシンプルなデジタルロジックでのコンウェイのライフゲームの実装を設計しようとしています。9変数の関数を最小化することですべてを実行できますが、それでもまだかなり大きいと思います。アルゴリズムのコア要素の1つは、8つのネイバーのうちいくつが「生きている」かを決定することです。 8つの入力がある場合、設定されている数を決定する最も簡単な方法は何ですか?特に、2を設定したときに高い出力、3を設定したときに高い出力が必要です。 私の主なアイデアは、PISOシフトレジスタ、カウンター、3:8デコーダーで構成されていますが、それらすべてを駆動するマイクロコントローラーがかなり必要です。関数の複雑さのようには思えません。256x2 ROMも同様に機能するかもしれませんが、私の検索ではそのような部分は見つかりませんでした。 私は10 IOのpicでこれを簡単に実行できることを知っていますが、可能な限り最小限の方法で実装したいと考えています。

6
バッテリ駆動のアプライアンスとツールがボルトで指定されているのはなぜですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 「18ボルトの吸引力を搭載」 これは無意味な「大きいほど良い」という尺度ではありませんか? あなたが顧客として本当に気にかけているのは、モーターのトルクやパワー、RPMなどです。 供給電圧とこれらのモーター性能またはバッテリー寿命の測定値の1つとの間に直接的な関係はありますか?モーターはそれぞれ異なるため、巻線の数やコイルの数などが異なる可能性があるので、私には思えません。


4
DCモーター電流の検知
私は、DCモーターを流れる電流を小さな抵抗に流し、その両端の電圧を測定しています。このアナログ電圧をマイクロコントローラのADCに与えて、信号処理を行う必要があります。私の問題は、マイクロコントローラが絶縁された電源で動作し、検知される電圧が非絶縁側にあることです。アナログアイソレーターを使うのは良い解決策ではないと思います。これに対する1つの解決策は、非絶縁側で外部ADCを使用し、ADC出力をデジタル絶縁することですが、このADCは、モーターが他の方向に動作しているときに負の電圧を取ることができません。助けてください。

6
USB-シリアルケーブル経由でArduinoをプログラミングするときに、AVRdudeの非同期エラーを修正するにはどうすればよいですか?
私はこの PC用のアンビエント照明を構築しようとしています。これは私のArduino Unoで問題なく動作しました。次のステップは、「ブレッドボード上のArduino」を使用して作成することでした。そこで私は空のATmega328チップを購入し、Arduino IDEとUSBaspを使用してArduinoブートローダー(ボード "Arduino Duemilanove w / ATmega328"用)を書き込みました。そして、このATmegaチップがUnoで正常に動作するので、これは正しくロードされています。 次に、FT232RLを使用してUSB-シリアルコンバーターを作成しました。しかし、そのドライバは私のPC(Windows 7 x64)にインストールされませんでした。表面実装のFTDIチップを過熱し、手ではんだ付けしている間にそれを殺したのではないかと思います。 それで、私はそれを脇に置いて、この USB-シリアルコンバータブリッジを手に入れました:(気まずい写真には申し訳ありません)ブレッドボードに追加のST232CNを使用して、電圧レベルをRS232からTTLに変換しましたページ。ループバックテストで確認したように、これは正常に機能します。そして、ST232のピン9をATmegaのピン2に、ピン10をピン3に接続しました。 Arduino IDEから点滅の例をアップロードしようとすると、次のエラーが発生します。 Binary sketch size: 1026 bytes (of a 30720 byte maximum) avrdude: stk500_getsync(): not in sync: resp=0x00 私が行うと冗長アップロード(Shiftキー+アップロードを)、私はこのエラー/メッセージが表示されます。 avrdude: usbdev_open(): did not find any USB device "usb" また、ATmegaのピン2と3に1kのプルアップ抵抗を追加してみましたが、役に立ちませんでした。では、ST232からATmegaへのシリアル通信に問題があると思いますか?ATmegaのリセットピンへの特別な接続はありますか?10kの抵抗で5Vに引き上げました。

6
CPUが消費する電力
電流Iと電圧Uの CPUの電力はI・Uだと思います。 ウィキペディアから次の結論がどのように導き出されるのでしょうか? CPUによって消費される電力は、CPU周波数とCPU電圧の2乗にほぼ比例します。 P = CV 2 f (Cは静電容量、fは周波数、Vは電圧です)。
9 power  capacitor  mosfet  cpu  cmos 

2
アクチュエーターでもあるセンサー?
これは理論的な問題であり、このQAサイトに適しているかどうかはわかりませんが、学校では、アクチュエーターでもあるセンサー(狭義)の3つの例を提供するように求められました。私の人生についての情報を見つけることができません。私が見つけることができる唯一の例は圧電センサーですが、これが正しいかどうかはわかりません。 狭義のセンサーは、電気信号からの信号/刺激に反応するデバイスです。


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