SPIデバイスがISPプログラミングを妨げている


8

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


2
これについて良い答えを得るためには、本当に回路を追加する必要があります。Ctrl-Mを使用してオンサイトの回路図エディターを起動するか、回路図へのリンクを配置するだけで、誰かがそれを質問に編集できます。
PeterJ 2013

1
デバイスはアクティブになっていますか?はいの場合、プルアップ抵抗を追加しましたか?そうしないと、デバイスは解放されるまでSPIバスを占有します。
NothinRandom 2013

回答:


12

プログラミング中は、他のデバイスがSPIラインを駆動しないようにする必要があります。

ドライバの競合を回避するために、外部回路がこれらのラインを駆動している可能性がある場合は、3本の専用ラインのそれぞれに直列抵抗を配置する必要があります。

ここに画像の説明を入力してください

アプリケーションノートAVR910をご覧ください。

問題を回避するために、インシステムプログラマは、プログラミングサイクルの間、ターゲットシステムリセット全体を保持できる必要があります。ターゲットシステムは、リセットがアクティブな間は、3つのSPIラインを駆動しようとしないでください。

したがって、プログラマがリセットを保持している間、ディスプレイが何もしないように、ATMEGAとディスプレイのリセットラインを機能的に接続するのが最適です。


1
LCDにチップセレクトラインがある場合は、必ず抵抗でもその高を引き上げてください。プログラミング中、ATmegaはリセットされ、すべての入力/出力を高インピーダンスとして設定するため、LCDは非アクティブになります。
オースティン

1
@ Rev1.0:MISOラインに抵抗があれば十分です(それがSPIスレーブデバイスの唯一の出力であるため、他の2つのラインは入力であり、したがって干渉を引き起こすことはありません)。
2016

@カード、回路図であなたの答えを追加してください、私はそれを賛成します。最良の2つのアプローチのように聞こえるのは、MISOラインのみに抵抗を追加するか、CSプルアップを追加するか、またはその両方です。
ガブリエルステープルズ

2

別の解決策は、プログラミング中に画面無効にすることです。

画面は、CS(チップセレクト)ピンがロー(0v)のときにアクティブになります。あなたがいる場合、CSピンと3V3の間10kRプルアップ抵抗を入れて、それはデフォルトでは無効/ハイになります。これを有効にするには、CSピンをマイクロコントローラーの出力に接続し、その出力をロー(0V)に設定します。私は私のプロジェクトの1つでそれをしました、そしてそれはうまくいきます。

画面は3.3Vで動作します。マイクロコントローラーが5Vで動作する場合は、分圧器を追加する必要があります。

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