私はパーツをdigikeyからの欠陥海峡で扱ったことはありませんが、受け取った3つの新しいAtmel ATmega164Aは非常に奇妙な動作を示しています。
私はそれをクロックに関係する何かに絞り込みました、そして、おそらく「工場で較正された」内部発振器からの結果として生じるクロック信号は、それがそうであるはずの固体1 MHzの代わりに650-700 kHzの間でジッターしていることがわかりました。私はこれを1 MHzに非常に近づけるためにキャリブレーションバイトに書き込むことができましたが(ほとんどジッターはあります)、ほとんどのものが機能しますが、UARTは正しく動作せず、短いパルスの連続ストリームを出力しているようですあなたが彼らに何をするように頼むか。
私は以前にこのマイクロコントローラーの低電力バージョン(164P)を問題なしで扱い、それを所定の位置にドロップしてその上のクロック出力をチェックすることを決定しました。これらの164Aチップには欠陥があるという結論に傾いていますが、それを確認するために他にテストを試すことはできますか?
編集:私が時計を測定しているプロセスを説明すると思いました。クロック出力ヒューズビットを有効にし、適切なピンをロジックアナライザーで非常に高いレートでサンプリングして測定しました。キャリブレーションレジスタに書き込むプログラムがありOSCCAL
、1 MHzまで試行錯誤することができました。
編集#2:さらなる調査の後、マイクロコントローラーは特定のプログラムサイズの後に動作し始めるようですしきい値。単一のソースファイルがLEDを点滅させる最小限のプロジェクトは問題ないようですが、他のファイル(たとえばUARTライブラリなど)をコンパイルしてリンクし、それらのメソッドへの関数呼び出しを行わなくても、マイクロコントローラーが動作します。上記の動作。電源接続は問題なく、適切なデカップリングが行われています。現時点ではこれをデバッグする時間がないので、代わりに低電力バージョンを使用しました。どこに問題があるのか正確にわかりません1)164Aと164Pはコード互換ではありません2)これら2つのuCのプログラミング手順が異なります3)ユニットに欠陥があります。私はボード設計に自信があり、電源の問題を除外します。残念ながら、私は実際には正しい答えを選ぶことができないので、この質問はそのままにしておきます-多分私は 将来再び問題に戻るでしょう。洞察に満ちたコメントや回答を提供してくれた皆さんのおかげで、すぐに使えるuCの問題を抱えている他の人に役立つかもしれません。