SSブログ

USBDM_CF その3 [HC(S)08]

OSBDMRESET.jpg
9RS08KA2を書き込んだ時のRESET信号です。1目盛5Vです。


そうか、これを基準に、CH2にBKGDやVddを入れてやって、画面を合成してやれば3チャンネルオシロになる訳か。

USBDM_CF その2 [HC(S)08]

書き込みテストをしてみましたが、ダメでした。

イメージ 22222.jpg

きぃたんさんに教えて頂いたロジアナを使ってみることにしました。

qd4_1.jpg
スタート時を拡大します。。
qd4_2.jpg

Input 1 がVdd、2 が BKGD、3 が RESETです。が、、、BKGDの方が早くHになっているが、よいのか。

qd4_3.jpg

なぜVddが一番早く L になるのだ。
どの信号も、HとLに切り替わっているから後はタイミングの問題だろう。まさか、ケーブルの接続がが入れ替わっていたりして。


--------------追加書き込み--------
プログラムで直接ポートをつついておかしなところを探っていくと、
結局、はんだブリッジや接触不良でした。どちらもはんだ付け不良。
現在は、9S08も9RS08も書き込めるようになりました。
次は、ColdFireだ。

USBSPYDER08 [HC(S)08]

1spy08.jpg

今更ながらですが。
これ、外部にBDM信号が引き出せるように端子が付いています。
ですが、そのままでは使えません。Vddが繋がってないのですね。
回路図では0オームの抵抗が書いてありますので、赤丸の部分をショートさせます。

2spy.jpg
しかし、私の持っているUSBMULTILINKBDM RevBは9RS08は書き込めないのですね。
RevCからですか。

USBDM_CF [HC(S)08]

USBDM12.jpg
USBDM14.jpg
最近ちょっと話題になっている、Freescale Forums の Open Source BDM です。
この基板も@エレでぐらろさんが企画をされ、Artikelさんが基板を作成されました。
またまたお世話になりました。
元ネタは、ここです。

http://forums.freescale.com/freescale/board/message?board.id=OSBDM08&thread.id=511&view=by_date_ascending&page=7

MC9S08JM60を使ってColdfire V1/2/3/4、RS08、HCS08、HCS12の開発ができるというものです。

部品の大半もぐらろさんにお世話になったのですが、回路図どおりの部品をつけようと、チップコンを1つ発注したところ、どこでどう間違えたのか、1005サイズになってしまいました。
さて、組み立てが終われば、ファームの書き込みです。必要なファイルはすべて@エレのFreescaleフォーラムにアップして頂いています。
USBDM_JMxx.ZIP を展開して、CodeWarrior6.2 に読み込ませます。コンパイル前に、BDM.C ファイルの3行をコメントにします。下の絵の//でコメントにしている部分。
コンパイルすると、rpmファイルかどうのと言う警告が2つ出ました。警告だから無視しても良かったのですが、
Project_JM32.prm というファイルのROM RAMのアドレスがJM60になってなかったので、ファイル内のコメントを見ながら修正しました。たぶんしなくても良いはずです。警告とは関係ないのかも知れません。また、rpmファイルが二つプロジェクトの中に入ってましたので、Project.prmをremoveしておきました。
何が良かったのか、警告は出なくなっています。

USBDM13.jpg

ファームの書き込みにはUSBMULTILINKを使いました。ただ、コネクタが違うので、変換が必要です。
それと、別途5Vが必要です。写真を見て頂ければ、何をしたかご理解頂けると思います。

さて、書き込みが終了し、次は、PCにドライバのインストールです。
まず、ドライバ関係のファイルを@エレから落としてきます。msg659_installation.zip です。
これを展開して、その中の Install Codewarrior Files.cmd を起動させるのだそうですが、何がどう変わったのか分かりませんでした。そうだ、masato さんを参考にドライブをCからEに変える必要があったのだ。ごにょごにょ。

次に、基板をUSBポートに接続します。基板上のUSBと書かれたLEDが一瞬光ります。
しかし、それ以上の反応無し。別のポートに接続すると、ドライバの要求が始まりました。
ドライバは先ほど展開した\1. Installation\USB_Driver にあります。

USBDM2.jpg

USBVIEWで確認すると、ドライバを要求してきたポートに接続すると、JMxx USBD (TBLCF mode) と正しく表示されているが、その前のポートでは、Turbo BDM Light ColdFire(LibUSB-Win32) となっているので、以前、TBLCF を接続したポートなのでしょう。
なお、ハブをかますだけでドライバのを再要求してきたので、使うポートは限定しておいた方がよいのかも知れません。

次は本当に動くかどうかだな。

今頃分かったこと [HC(S)08]

ベテランなら何でもないことでも、手探りでやっている場合はいつまでたったも分からないことが多い。
しかもメモしておかないとすぐに忘れてしまう。
イメージ 3.jpg
アセンブラで書いた割り込みルーチンですが、HC08は元となった6805とのかねあいからすべてのレジスタをスタックに待避しないので、pshh pulhを意識的に書かなければなりません。
ところが、C言語ではどうなのか、
イメージ 2.jpg
CodeWarriorのコンパイラでは自動的に入れてくれてます。

メモメモ

いつまでたっても [HC(S)08]

スキルアップできない理由は分かっている。
滅多にやらないから、忘れてしまって身に付かない。
と言うことで、今回は基本に立ち返ることにした。
P1010002.JPG
K_Tさんのホームページから「特集: HC08スターター・ボード・キット」のコンテンツを使わせて頂きました。
K_Tさんは、HC08スターター・ボード・キットを使っておられます。当然ですが。
これを、DEMO908QB8でやってみよう、ターゲットはQY4です。
写真は、「[6] VR1 を ADC入力して LED を PWM制御する」のソースを移植しました。
LED2がPWM点灯しているのですが、写真ではわかりにくいです。



こうでもしなければ、せっかくオープンにして頂いているソースコードを見ようともしないのだから。