SSブログ

要素試作がほぼ終わりました [PICkit3]

USB_Controler(PIC18F2550)とPIC10F322のシリアル通信が実機レベルで動くようになりました。
(パチパチパチ~)

MPLAB SIMを使ってロジックを入念にテストしましたが、”実機テストが一発で通る”という訳には参りませんでした。割り込み処理と割り込みタイミングの関係が思っていたよりも厳しく、割り込み処理の順番を見直し、TMR2割り込みのタイミングを見直して、ようやくステータス・コマンド(PIC18F2550==>PIC10F322)とステータス・レスポンス(PIC10F322==>PIC18F255)の送受が出来るようになりました。

youso_sisaku.PNGシリアル通信ライン

タイミング・マージンがどれくらい確保できているか見極められていませんが、要素試作はほぼ終了しました。いよいよ、コンテストに応募する回路の試作に取り掛かろうと思います。

割り込みハンドラに組み込まれた(by HITECH-C)レジスタの退避復帰処理
interrupt_function:
  movwf	saved_w
  swapf	status,w
  movwf	(??_intsrv+0)
  movf	fsr0,w
  movwf	(??_intsrv+1)
  movf	pclath,w
  movwf	(??_intsrv+2)
  movf	btemp+1,w
  movwf	(??_intsrv+3)
  ljmp	_intsrv

(ここにユーザが定義した処理が入る)

  movf	(??_intsrv+3),w
  movwf	btemp+1
  movf	(??_intsrv+2),w
  movwf	pclath
  movf	(??_intsrv+1),w
  movwf	fsr0
  swapf	(??_intsrv+0)^00h,w
  movwf	status
  swapf	saved_w,f
  swapf	saved_w,w
  retfie


上に示したレジスタの退避復帰処理に凡そ10μS掛かります。PIC10F322の割り込みにはプライオリティ制御が無いので、NCO割り込み(現時点では動いていない)が入るとTMR2やIOCの割り込み処理タイミングが10μS以上遅れる場合が出てきます。これをカバーするだけのタイミング・マージンは無さそうなので、さらに一工夫する必要がありそうです。

にほんブログ村 IT技術ブログへ
に

ほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。