• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+

marumonのブログ一覧

2012年09月27日 イイね!

PIC32MX250F128B interruptは2度起こる

さて、今日も今日とてはまりまくり。

PIC32のinterruptを使ってみようとしたら、PIC24とは結構違う。
特にUARTのハンドラは送受信兼用になるみたい。
で、よくわからないから、MICROCHIPのデバイスのページにあるサンプルコード PIC32_UART_CodeExample を取ってきて動かしてみると、これがまたおかしな挙動をする。

<pre>
void __ISR(_UART2_VECTOR, ipl2) IntUart2Handler(void)
{
// Is this an RX interrupt?
if(INTGetFlag(INT_SOURCE_UART_RX(UART2)))
{
PutCharacter('+');
// Clear the RX interrupt Flag
INTClearFlag(INT_SOURCE_UART_RX(UART2));

while (DataRdyUART2()) {
// Echo what we just received.
PutCharacter(UARTGetDataByte(UART2));
// Toggle LED to indicate UART activity
mPORTBToggleBits(BIT_5);   //ここだとトグルする
}
// Toggle LED to indicate UART activity
//mPORTBToggleBits(BIT_5); //←オリジナルのここではトグルしない
}

// We don't care about TX interrupt
if ( INTGetFlag(INT_SOURCE_UART_TX(UART2)) )
{
INTClearFlag(INT_SOURCE_UART_TX(UART2));
}
}
</pre>
割り込み部分をこうしてみた。。単純に受信したら、エコーバックするだけ。
でも、ビットはトグルしないし、エコーバックも変。
で、ちょっと改造して、上のようにして、12345とキーを打つと、、、

+1++2++3++4++5++6++7++8++9+

ね、 interruptが2度起こってる????

はまりました。
サンプルコードがちゃんと動かない???
送信のエラッタは知ってるけど、受信のエラッタ無いよ。
どーなってるの??

で、pic32 interrupts twice で検索するとmicrochipのフォーラムに行き当たって、
結局

Family Reference Manual section 21.6.3
For UART1A, UART1B, UART2A, UART2B, UART3A, and UART3B modules, an interrupt will be generated while the interrupt condition specified by the RXISEL control bits is true. This means that to clear an interrupt for these modules, prior to clearing the corresponding UxRXIF flag, the user application must ensure that the interrupt condition specified by the URXISLE control bits is no longer true.

オイ、サンプルが間違ってんだろ!(怒)

ということで、
INTClearFlag(INT_SOURCE_UART_RX(UART2));
をルーチンの後ろに動かしたら、ちゃんと動いたけど、なんだかな~。
------------------------------------

うー、コードをインデントさせたいけど、<PRE>入れてもダメかー。
やはり、みんカラの限界かな~(--;
Posted at 2012/09/27 20:05:13 | コメント(0) | トラックバック(0) | 電子工作 | 日記
2012年09月26日 イイね!

PIC32MX250F128B でbluetooth がおすすめ

PIC32MX250F128B でbluetooth がおすすめちょっとpic開発にエンジンかかってまいりました。

hrdakinoriさんのpicへのlwbtの移植があるにもかかわらず、無謀にも独自に車輪の再発明をすべくがんばってきましたが、ようやく今日lwbt独自移植版でbluetooth通信に成功!うれしー。

さらにpbufのmalloc使用による毎回のメモリ確保をやめて、poolbuf使用にしたので効率アップ、というか、heap無しでよくなったのでメモリ効率が良くなるわけですが、実はほとんど意味が無い。。。

さらに、ターゲットマイコンもPIC24FJ64GB002からPIC32MX250F128Bへ変更。
PIC32MXは初めてだったので、かなり最初は苦労したけど、なんとか移行に成功したみたい。

さて、オレのページにも何人かの方がbluetoothの開発情報を求めていらっしゃるようですが、オレのようなアマチュアの方は、ターゲットをPIC24FからPIC32MX250F128Bへ変更されることを強く推奨しておきます。

そのメリットはずばり開発効率です。

--------------------------------------------------
HCI:R1 : 0E 05 01 55 0C 00 00

hci_event_input: Command Complete
Num_HCI_Command_Packets: 0x1
OCF == 0x55 OGF == 0x3
HCI_EVENT_CMD_COMPLETE
successful HCI_RESET.
phybusif_output
HCI:CMD: 56 0C 01 00
HCI:R1 : 0E 04 01 56 0C 00

hci_event_input: Command Complete
Num_HCI_Command_Packets: 0x1
OCF == 0x56 OGF == 0x3
HCI_EVENT_CMD_COMPLETE
successful HCI_RESET.
phybusif_output
HCI:CMD: 05 10 00
HCI:R1 : 0E 0B 01 05 10 00 36 01 40 0A 00 08 00
----------------------------------------------------

上記はbluetoothドングルとの最初のやり取りの一部です。

lwbtには、かなり親切で豊富なデバッグ出力が付いているのですが、PIC24FJ64GB002ではほとんど使えないのです。PIC24FJ64GB002のフラッシュは64kしかなく、USBスタックとbluetoothスタックを入れるとほぼ満杯で、デバッグオプションをオンに出来ないのです。

その点、PIC32MX250F128Bだと、128Kものフラッシュがあるので、デバッグをオンにしてコンパイルしても、余裕で収まります。つまり、usb+bluetoothにさらに何らかのアプリを乗せても十分すぎる余裕があります。もちろん32kものramも付いてます。

値段ですが、通販ベースだと、
共立エレショップでPIC24FJ64GB002は680円+送料120円 合計800円
かなり送料は勉強してるんですが、いかんせんチップの値段は高いですよね。

一方、chiponestopだと今日現在
PIC32MX250F128B-I/SP がチューブで 429円+送料450円 合計879円
1個だけ買うのになんか凄く送料高い気がするんですが、チューブでも一個から買えてしかも秋月価格に近いので、実はPIC24F買うのと100円も違いません。2個以上買うなら、PIC32MXの方が安くなりそうです。
chiponestopは、ものによっては結構高いし、安いチューブ品だと1個では売ってくれなかったりと、なかなか使いづらいのですけど、ことこのPIC32MX250F128Bに関しては、おすすめです。

---------------------------------------------------------------
一応わかっているPIC32のデメリット

MPLABXのシミュレータが使えない

今朝思いっきりはまったのですが、PIC32でシミュレータ使おうとしたんですけど、ローカル変数のwatchが出来ないようです。maicrochipのフォーラムも見てみましたが、どちらかというと初心者の人が使えないよー、と言ってるのに、上級者の人が、使えないけど、なんか文句あるの??
って感じでした。出たばかりのver1.4に変更してみましたが、ダメそうですね。

内蔵FRCがUSBには使えない

PIC24FJ64GB002は、FRC使ってUSB接続できるのですが、PIC32MX250F128BはFRCからUSBPLLへの内部配線が無いのですねー。と言うわけで、今のところ外部にクリスタルが必要です。手持ちに何かあればいいのですが、お持ちで無い方は、クリスタルが無いと、PIC単体ではUSBには接続出来ないのでご注意を。
これは秋月の220円PICでもそうなので、クリスタル不要にしようと作戦も考えてあったのですが、今のところ成功していません。

そのため、使えるPINがかなり減る。

クリスタルの分2ピン減るのと、ポートリマップの仕組みが変わって、かなり制限がきつくなっています。まあ、全ピン使うような大掛かりなのって、あんまり思いつかないし、ピンが足りなくなったら、継ぎ足せばいいような気が。

---------------------------------------------------

秋月の220円という価格に釣られて始めたPIC32でしたが、やはりアマチュアはコストも大事だけど、簡単便利、も大事ですね。プロで個数出るなら、価格差も効いてくるでしょうが、数個しか使わないなら、多少高くても開発しやすい方がいいんだ。と思うわけですが、やはり、220円のPICにbluetooth乗せたいよねー(^^)


Posted at 2012/09/26 17:12:15 | コメント(0) | トラックバック(0) | 電子工作 | 日記
2012年09月23日 イイね!

優勝しました(^^)/

優勝しました(^^)/土日で行われたシリーズレースで優勝しました~。

実力があまり伴わない我がチームも、単発のレースでは、その恐るべき”引き”の強さから、実力分不相応の成績をあげたりもしていたのですが、って、そうですね~、ヨットレースは、自然の中で行われるので、野球で言うと野茂の投げる剛速球を目をつぶってバットを振ってホームランにする、みたいなことが、たまに起きるのですが、そういうときに”引き”の強さでそのたまたまを、さも実力のように走って、成績だけは良い、っていうのが、我がチームだったわけです。

ところが、2日間とかで数レースをこなすと、やはりそんなに偶然が続くわけも無く、実力通り沈んでいく、というのがパターンだったのですが、なんと今回は5レースやって4レーストップという、いったい何がどーした状態で優勝してしまいました。

写真はそのお祝いで、白鹿の豪華絢爛めぐりという利き酒セットと、いただいたトロフィーです。

まあ、ホントはいつも勝っている一番強いチームが今回は、クルーの練習モードで勝ちを譲ってもらった、ってとこなんですけど、優勝は優勝なのだ~!
Posted at 2012/09/25 16:39:07 | コメント(0) | トラックバック(0) | 日記
2012年09月21日 イイね!

PIC32MX250F128B でLチカ

PIC32MX250F128B でLチカ秋月で取り扱いが始まったことで一気に身近になってきたPIC32.これまではフラットパッケージで、アマチュアにはとっつきにくかったけど、DIP品、しかもUSB付きで220円(送料別)のPIC32MX220は、何気にbluetooth用のPIC24FJ64GB002の代わりになるのでは、の予感だけど、残念ながらフラッシュが32+3Kなので、今のところbluetoothスタックが入りきらない。

じゃあ、プログラムを削るのだー、とやりかけていたのだけど、前回のブログのとおり、PICKITでPIC32を認識しない、という事件に巻き込まれてしまったのだ。

認識しないのは石が悪いのか、PICKITが悪いのか、判別不能なので、新しいPIC32を買って試したいけど、、、と思っているうち、ふと、chiponestopを見てみると、PIC32MX250F128の取り扱いが始まっている。しかも、10個以上だと338円!
chiponestopにしては、珍しく安い!なんせ、PIC24FJ64GB002より安い。
というわけで、買ってしまいましたPIC32MX250F128。しかも10個も。そんなに買ってどーすんのよモードですが、いいのです。

で、それが送られてきたのが昨日。まずは、認識するかですが、、、ダメでした。

PICKITの方は、新しく買ってきたPIC24FやPIC30を読み書きできています。特にpic24fの方は、3.3V系なので、PIC32MXと同じで、電気系にはまず異常は考えられない。となると、、何でダメなの???



で、結論だけ書いていくと。。。

PICKIT3には2つのモードがあって、ベータ版のGUI単独モードと、MPLABから使うモードがあって、PICKIT2時代と同じやり方でいい、GUI単独モードで使っていたのだけど、このモードではPICKIT3はPIC32MX250を認識しない、というのが正解みたい。

MICROCHIPのフォーラム見ても、あんまり認識しないって大騒ぎになってないので、他の人はいけてるんだし、と思って、ふとモードを切り替えてMPLABX+PICKIT3の組み合わせを試したところ、PIC32MXをちゃんと認識して書き込みもおっけのよう。
  
GUIモード では、PIC24Fはおっけ、PIC32MXはダメ。   
MPLABモード では、両方ともおっけ。

そうかー、以前PIC32MXを試したときは、MPLABXから書き込んでいたのかも。で、次にPIC24Fに戻ったとき、GUIモードのベータ版に気が付いてそれに変更。今度はそのまま、またPIC32MXに戻すと認識しない。そういうわけだった、、のかな。

さらに、調べていくと、PICKIT2の方は、MICROCHIP公式にはPIC32MXに対応していないのだけど、PIC32PROGというのがgoogle codeにあって、それを使うとなんとPICKIT2でもPIC32MX250を読み書きできます。さらにうれしいことに、そのとき同時にPICKIT2のGUIを立ち上げていてもおっけです。つまり、PICKIT2のGUIのPOWERとMCLRがクリックで切り替えできるという、ブレッドボード使いにはうれしい機能がそのまま使えるのです。

このPIC32PROGは、PICKIT3でも、たぶん使えるはずですが、ベータ版のGUIモードにする必要があり、MPLABXと同時にというわけには行かないので、まだ実験してません。

ちなみに、
MPLABXでPICKIT3を使うときは、電源供給をコンフィグで設定してやら無いと、PICKIT3から給電しないので、書き込めない。
PIC32PROG.EXEをブラウザでは(trunk内にバイナリとしてありるので見えるのですが)落とせなくて、subversionのクライアントからダウンロードした。
なんてはまりもちゃんと経験しました(^^;;;

int main() {
_TRISB5 = 0;

while(1) {
DelayMs(500);
_RB5 = 1;
DelayMs(500);
_RB5 = 0;

}
}

さくっと書いてLチカ。こいつ動くぞ!(^^)
Posted at 2012/09/21 11:31:24 | コメント(0) | トラックバック(0) | 電子工作 | 日記
2012年09月21日 イイね!

驚愕のchiponestopでブログ再開

驚愕のchiponestopでブログ再開スキー友達に、最近ブログ更新してないね、と言われて改めて気がついたけど、なるほどかれこれ2ヶ月も更新してないんだ。CANやろうとしていたら、柴っちさんのサイトが大変な目にあって、それどころではないよな。なんてしているうちに、いろいろあってなかなか書けなかった。

まず大きいのが、会社辞めた。流行のリストラ。大企業なら退職金の増し積みとかあるだろうけど、まあ、失業保険が退職金代わり。それでも、貯金とか見ると、今の生活水準なら、あと4年ほどは生活していける模様。

働き盛り、遊び盛りは、ちょい過ぎたけど、まだまだ元気なうちに4年遊べるならいいかもだよね。

まあ、その先をどうするか? だけど、結局、長生きするってことは、財源が必要なわけで、財源ない人間はどうするのだ? ってことに、まだ(日本の)社会は回答を出せていない。本当に金が無くても生きているだけでいいのか、やっぱり金無いと生きるのつらいのか、つらいんだったら何で生きるのか?

年金払い込み10年で受給資格って、今の試算だと、月額2万いかないらしい。いったい月2万もらってどうやって暮らせと。
生活保護なら、月6万+家賃+医療費タダ。
中途半端に資産持って、なけなしの年金もらうのと、生活保護。
持たざるものが、どうやって生活していけばいいのか、よーく考えなくてもわかる。

これからの時代、蟻とキリギリス、キリギリスもありなのかも。

-----------------------------------------------------------------

もう一つ、大きかったのが、お盆明けから電子工作のほうが絶不調になったのだ。発端は3端子レギュレータ。知り合いにもらってきたレギュレータ、真ん中の足がGNDではなかったのだ。で、オレはデータシートも確かめずに、3端子は真ん中がGNDだ、とブレッドボードでやったら、なんかPICまで巻き込んでお亡くなりになった模様。さらに、pickitで死んだであろうpic24Fだけではなく新品のpic32mxを認識しなくなったりと、まるでとほほな状態。

会社辞めたし、電子工作三昧するぞー、と意気込んでいたんだけど、のっけから大打撃。現実逃避するため、オンラインゲームの PHANTASY START ONLINE2をやってみたら、これが久々のゲームで、なかなか面白い。

というわけで、おっさんニートというか、ヒッキーできあがり。

------------------------------------------------------------------
とはいえ、柴っちさんのCANもほったらかしにしておくわけにもいかないし、まずはもう一度電子工作環境を復活させねばと、共立行ってpic24f買って来たら、何とかpickitで認識。pickitは生きている、、ならpic32mxは何でダメなの?

えーい、こうなったらやけだー、とchiponestopでpic32mx買ったのだけど、10個まとめ買いすると安いのと、5000円越えると送料無料なので、pic14個まとめ買い!
そんなに買って一生デッドストックになるのわかってるけど、いいのだ。

で、表題の写真はそれが送られてきたときの箱。宅配のおじさんに、それうちの荷物じゃないよ、オレ頼んだの小さいの。と言ったけど、確かにオレ宛。
計ると740X170X70。
いくらなんでも大きすぎだろ! 28ピンのげじげじ14個送るのにどんだけでかいんだ!封筒で十分だろ!



中身はたったこれだけ。

さて、送られてきたpic32mx今朝からチャレンジしたけど、やはり最初はダメ。
うーん、とネットを調べること2時間ほど、ようやく動いたかな、長くなったので続きはまたあとで。







Posted at 2012/09/21 10:02:59 | コメント(1) | トラックバック(0) | 日記

プロフィール

「[車中泊6泊目]今日は寒かったー http://cvw.jp/b/1110950/39009397/
何シテル?   12/15 18:05
marumonです。よろしくお願いします。
みんカラ新規会員登録

ユーザー内検索

<< 2012/9 >>

      1
2345678
9101112131415
1617181920 2122
232425 26 272829
30      

リンク・クリップ

友情パワーよ、ありがとう(^^) 
カテゴリ:その他(カテゴリ未設定)
2012/11/08 22:46:45
自作ハザードイルミ点滅 
カテゴリ:その他(カテゴリ未設定)
2012/04/17 19:25:27

愛車一覧

ホンダ フリードスパイク ホンダ フリードスパイク
主にスキー用。たまに、自転車運びます。

過去のブログ

2025年
01月02月03月04月05月06月
07月08月09月10月11月12月
2024年
01月02月03月04月05月06月
07月08月09月10月11月12月
2023年
01月02月03月04月05月06月
07月08月09月10月11月12月
2022年
01月02月03月04月05月06月
07月08月09月10月11月12月
2021年
01月02月03月04月05月06月
07月08月09月10月11月12月
2020年
01月02月03月04月05月06月
07月08月09月10月11月12月
2019年
01月02月03月04月05月06月
07月08月09月10月11月12月
2018年
01月02月03月04月05月06月
07月08月09月10月11月12月
2017年
01月02月03月04月05月06月
07月08月09月10月11月12月
2016年
01月02月03月04月05月06月
07月08月09月10月11月12月
2015年
01月02月03月04月05月06月
07月08月09月10月11月12月
2014年
01月02月03月04月05月06月
07月08月09月10月11月12月
2013年
01月02月03月04月05月06月
07月08月09月10月11月12月
2012年
01月02月03月04月05月06月
07月08月09月10月11月12月
2011年
01月02月03月04月05月06月
07月08月09月10月11月12月
ヘルプ利用規約サイトマップ
© LY Corporation