要素試作がほぼ終わりました [PICkit3]
USB_Controler(PIC18F2550)とPIC10F322のシリアル通信が実機レベルで動くようになりました。
(パチパチパチ~)
MPLAB SIMを使ってロジックを入念にテストしましたが、”実機テストが一発で通る”という訳には参りませんでした。割り込み処理と割り込みタイミングの関係が思っていたよりも厳しく、割り込み処理の順番を見直し、TMR2割り込みのタイミングを見直して、ようやくステータス・コマンド(PIC18F2550==>PIC10F322)とステータス・レスポンス(PIC10F322==>PIC18F255)の送受が出来るようになりました。
シリアル通信ライン
タイミング・マージンがどれくらい確保できているか見極められていませんが、要素試作はほぼ終了しました。いよいよ、コンテストに応募する回路の試作に取り掛かろうと思います。
割り込みハンドラに組み込まれた(by HITECH-C)レジスタの退避復帰処理
上に示したレジスタの退避復帰処理に凡そ10μS掛かります。PIC10F322の割り込みにはプライオリティ制御が無いので、NCO割り込み(現時点では動いていない)が入るとTMR2やIOCの割り込み処理タイミングが10μS以上遅れる場合が出てきます。これをカバーするだけのタイミング・マージンは無さそうなので、さらに一工夫する必要がありそうです。
(パチパチパチ~)
MPLAB SIMを使ってロジックを入念にテストしましたが、”実機テストが一発で通る”という訳には参りませんでした。割り込み処理と割り込みタイミングの関係が思っていたよりも厳しく、割り込み処理の順番を見直し、TMR2割り込みのタイミングを見直して、ようやくステータス・コマンド(PIC18F2550==>PIC10F322)とステータス・レスポンス(PIC10F322==>PIC18F255)の送受が出来るようになりました。
シリアル通信ライン
タイミング・マージンがどれくらい確保できているか見極められていませんが、要素試作はほぼ終了しました。いよいよ、コンテストに応募する回路の試作に取り掛かろうと思います。
割り込みハンドラに組み込まれた(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以上遅れる場合が出てきます。これをカバーするだけのタイミング・マージンは無さそうなので、さらに一工夫する必要がありそうです。
|
|
|
コメント 0