2397356_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2397356_ja-JP

2397356_ja-JP

68LC302およびシリアルブートストラップ機能

こんにちは、みんな。願わくば、2026年にもLC302に関する知識を頭の片隅に留めている人がまだ生きていていてほしい。

LC302を使った小さなプロジェクトに取り組んでいて、シリアルブートストラップ機能を使いたいと思っています。どうしても動作させることができないのですが、動作させるために何か特別な手順が必要なのでしょうか?

思いつく限りのことはすべて試しましたが、今持っているLC302に何か故障があるかもしれないので交換しようと考えていますが、その前に質問しておきたいと思いました。ちなみにパッケージのマークは(Motorolaロゴ入り):

MC68LC302PU25CT
2J29A
QQDJ0316

5Vで電源を供給しています。

基本的に、送信したものをエコーバックしても返してくれません。同じ問題を説明していると思われる以下の投稿を見つけましたが、私の場合は同じ問題が発生していないようです。https ://community.nxp.com/t5/ColdFire-68K-Microcontrollers/We-have-been-using-the-68LC302-for-decades-wit...

私が試したこと/スコープ/論理アナライザーで観察できること:

PLLモードと非PLLモードの両方を試してみました。PLLモードでは4MHzの発振器を使用しました(4.192MHzの発振器は入手困難です)。このモードでは、9174ボー(4MHz×4、/109、/16)を使用しました。PLLを使用しない場合は、ボーレート11467の20MHz発振器を使用しました。信号発生器を使って4.192MHzを入力し、データシートに記載されているボーレートも試してみましたが、うまくいきませんでした。

PA7をハイにしてブートストラップモードを無効にすると、ASピンで一時的な動きが観察できます。おそらくCPUが外部メモリからリセットベクトルを読み取ろうとしているのでしょう。PA7を低くしてブートストラップモードを有効にすると、この動作はもう見られません。おそらくCPUがリセット状態にあるためでしょう。

早い段階で、PA7には何らかの電流源があるようで、約3~4mAの電流を供給していることが分かりました(電流モードでマルチメーターで測定)。これにより、外部のプルダウン抵抗が追いつかず、ロジックハイが発生していました。これは非常に大きな電流値のように感じるのですが、どなたかその理由を説明できますか?上記のスレッドでPA7が予期せず高すぎる数値を引き上げた原因と漠然と関係しているようです。もしかしたら私の部品に不具合があるのかもしれません。

ResetとHALTが同時にアサートされています(私は過去数年間、趣味のプロジェクトで68kに関する豊富な経験を持っています)。

TX/RX信号の極性を含め、すべての配線を二重三重に確認し、念のためSCC1のフロー制御入力も無効状態に戻しました。オシロスコープで測定したところ、USBシリアルアダプターが私が求めるボーレートを確実に生成し、TXからRXへのループでパテに送った文字をエコーバックできるので、特に異常はないとかなり自信を持っています。

メモリバスはまだ配線していません。今のところ、シリアルでコードを読み込んでLEDを点滅させられるかどうか試したいだけなのですが、BUSWピンは16ビットバス動作用にストラップされています。もし関係あるなら?

ハンダ付けを外す前に、他に何か良い提案があれば教えてください。

よろしくお願いします!

Re: 68LC302 and serial bootstrap feature

こんにちは、メッセージありがとうございます。

SCC1関連のピンを使用していることを確認しました。

私のセットアップはワイヤーラップ付きのパーフボード上なので、ワイヤーラップ以外にピンに影響はありません。マルチメーターで確認したところ、リセットとハルトが同時にアサートされ、0Vに達していること、およびすべてのストラップピンが必要な電圧レベルに達しており、ピンが浮いている状態ではないことを確認しました。

また、私の投稿で述べたように、信号発生器から供給される4.192MHzとデータシートに記載されているボーレートも試してみましたが、効果はありませんでした。

CD1を否定状態に結びつけたと言ったのは、用語を混同していただけで、実際にはCTS1とともに接地(アサート)に結び付けられています。

テストとして576バイトを送ってみます。もしかしたら何らかの理由でエコーリングが返っていないのかもしれませんが、正しく受信しているかもしれません。

よろしくお願いします。

Re: 68LC302 and serial bootstrap feature

こんにちは、

まず最初に確認するのはCD1です。LC302のシリアルブートストラップエコーパスについては、マニュアルによるとSCCハードウェアは TXD1 で受信した文字をエコー返すが、 CD1 を主張しなければならない。SCC1では外部 CD1 ピンをローに結びつける必要がある。SCC1モデム制御入力を「否定」状態にした場合、それがエコーが表示されない理由かもしれません。

LC302のブート説明におけるその他の重要なポイント:

  • シリアルブートストラップは、ハードリセット時にサンプリング PA7 = 0 によって有効化されます。ここでハードリセットとは、 RESETHALT の両方が主張されることを意味します。
  • PA7浮いてはいけません。リセット時には、意図的に上下に引っ張る必要があります。
  • SCC1で受信した最初の576バイトはデュアルポートRAMに格納され、受信した各文字はTXD1からエコーバックされます。デバイスは576バイトすべてを受信するまでブートモードを終了しません。
  • 内部クロックブートストラップの場合、公称クロックの仮定は4.192 MHzまたは32.768 kHzで、SCCは約9600ボーにプログラムされています。
  • 非同期UARTモードでは、外部クロックオプションを使用する場合、ビットレートはTCLK1/RCLK1クロックレートの1/16になります。

部品交換前に、まさにこの最小限のセットアップを試してみてください。

  1. RESETHALTを同時に低レベルで押し続けます。
  2. PA7/BOOTボード上のどんな負荷にも負けないくらいの強さで、低い位置にしっかりと固定してください。
  3. PA5で目的の時計モードを選択してください。
    • PA5 = 0 : 内部ブートクロックモード。
    • PA5 = 1 : TCLK1/RCLK1の外部クロック、16 ボー。
  4. PA12/MODCLK0クロックソースと常に一致させて接続してください。マニュアルでは、ハードリセット中にこれをサンプリングして、公称EXTAL周波数を識別します。
  5. CD1低く結ぶ。
  6. RXD1TXD1RCLK1 、およびTCLK1配線は、SCC2ではなくSCC1に準拠させてください。LC302の説明にあるブート機能はSCC1に関するものです。
  7. 受信が正常に機能していれば、エコーは文字ごとに表示されるはずですが、1文字だけでなく、576バイトのテストストリーム全体を送信してください。

PA7から発生する3~4mAは疑わしい。データシートレベルで取得された入力リーク電流値は最大でもわずか20μAで、ミリアンペアをはるかに下回っています。PA7双方向の多機能ピンでもあるため、他の何かがそれを駆動している場合や、部品がすでにリセットサンプリング状態を終了している場合は競合が発生する可能性がありますが、ブートストラップとしてのリセット中は、ローを読み取るためだけに数mAをシンクする必要はありません。PA7の基板レベルのプルアップ/ドライバー/はんだブリッジを確認し、パッケージのピンの向きを確認し、RESETHALTの両方がアクティブに設定されている間に電流を測定してください。

もう一つ実用的な注意点があります。あなたの4MHzの内部クロックの試みは、4.192MHzとは等価ではありません。反対側を調整すれば一部のUARTsでは十分に近いかもしれませんが、ドキュメント内の内部ブートストラップモードは標準的なLC302クロック値を想定しているため、変数を除外するには4.192 MHzで記載されたボーを使ったり、外部クロックモードを使いクリーン TCLK1/RCLK1 = 16 × baud を提供したりできます。

 

よろしくお願いします。

Tags (1)
No ratings
Version history
Last update:
yesterday
Updated by: