hIgeBlog

2013-04-08

Downloading Programming Executive...FAILED! (dsPIC33FJ32MC204)

00:25

タイトルのエラーが起きて困ってました(今もすこし困ってる).

前の記事に載せたMicrochip MCLV開発ボードを久しぶりに使ってみたのですけど,プログラムの書き込み時にタイトルのようなエラーメッセージが出て,書き込めなくなってしまいました.


PICkit2とPICkit3の二つを使って試したのですけど,同様のエラーが出て詰んだ・・・

(使っているPICは,dsPIC33FJ32MC204)


公式のフォーラムでも同様の問題を抱えている方が居たようなので,斜め読み.

dsPIC33FJ: Downloading Programming Executive...FAILED! | Microchip


「書き込みのポートを変更すると書けるんじゃん?」という記述を見つけたので

PGC3, PGD3 → PGC2, PGD2

にポートを変更して試したところ,問題なく書き込めた orz



・・・冬場の間にPICが死んでしまったのかな? と思ってPIC部分だけ買い換えたんだけど,買い換えた物もPGx3からPGx2にポートを変更すれば書き込めるという謎現象が起きて,どうにもテンションが下がるねぇ

特に,今まで何も問題が無かったのに,突然に意味不明な問題が起きると尚更ですよ!

2012-11-21 Microchip MCLVのサンプルがビルドできない件について

所用でBLDCを動かすことになって,下記の評価ボードを購入したところ,すんなり行かなかった点についてメモ

no title


どうやら,コンパイラのバージョンによって挙動が異なるのが原因らしいと海外のフォーラムで知り,下記の点について修正を加えた.

※修正の参考にしたのはコンパイラインストールフォルダのサンプルです.

 私が使用したコンパイラはv.3.31でした.


まず,AN957で修正した点について

_FICD (ICS_PGD3 & JTAGEN_OFF & COE_ON);     //ビルドできない
_FICD (ICS_PGD3 & JTAGEN_OFF);// & COE_ON); //ビルドできる


また,AN1017は上記に加えて更に修正が必要

//ビルドできない
reg_a = __builtin_mac(
	x_prefetch,y_prefetch,
	&ControlDifferencePtr, &x_prefetch, 2,
	&PIDCoefficientsPtr, &y_prefetch, 2, 0
	);

//ビルドできる
reg_a = __builtin_mac(
	reg_a,
	x_prefetch,y_prefetch,
	&ControlDifferencePtr, &x_prefetch, 2,
	&PIDCoefficientsPtr, &y_prefetch, 2,
	0, 0
	);

そんな感じでBLDCが元気に回りましたよ

2012-10-25

Ether Topの電源コネクタについて

13:36

北陽から発売されている測域センサEther Topの電源コネクタについての情報が見当たらなかったので調べてみたところ,JST社のPHコネクタが使用されているのではないかと思う.

日本圧着端子製造株式会社

どうやら千石で手に入るようなので,このコネクタで合っているか試してみよう.

せんごくネット通販

2012-10-07 PICkit3で書き込めない

最近はPICを使った開発が多くて,さまざまな問題に出会います.

PIC18F14K50へMPLABを使用してファームウェアを書き込もうとしたところ,以下のようなエラーメッセージが吐かれた.

PICkit 3 detected
Connecting to PICkit 3...
PK3Err0038: Failed to initialize PICkit 3.

Failed to properly connect to PICkit 3

他の記事を見たところ,PICkit3のファームウェアが壊れたことが原因のようだと書かれているが,試しにPIC12F1822に接続したところ問題なく書き込むことができた.

恐らくMPLABとPICkit3の相性が悪いのだろうと踏んでPICkit 3 Scriptingに含まれているPICkit3.exeを使用したところ,問題なく書き込むことができた.

2012-09-25

PIC12F1822のAD変換がうまく動かなかった(CCS-Cを使用)

13:32

はい,タイトルの通りです.


このPICは32MHzで動作することが可能なのですが,どうも32MHzで動作させると途中で停止してしまうようです.ですが,16MHzで動作させると問題なく動作する様子なので,当面は16MHzで我慢して使うことにします.

その時のプログラムは下記の通りです.

この中の動作周波数を32MHzにすると,私の環境では動かなくなりました.


 1 #include <12f1822.h>
 2 #device ADC=8;               //ADCを8bit変換モードに
 3 
 4 #fuses INTRC_IO,PLL,NOWDT,NOPROTECT,NOMCLR,PUT
 5 #use delay(clock = 16000000)  //16Mhz
 6 #use fast_io(a)
 7 
 8 #define LED_ON  output_low(PIN_A5)
 9 #define LED_OFF output_high(PIN_A5)
10 
11 long int photo(void)
12 {
13     set_adc_channel(2);       //AN2に設定
14     delay_us(40);
15     return read_adc();
16 }
17 
18 void main()
19 {
20     unsigned char adc;
21 
22     setup_oscillator(OSC_4MHZ|OSC_PLL_ON);   //内部クロック設定  4 * 4 = 16Mhz
23 
24     set_tris_a(0x0f);
25 
26     setup_adc_ports(sAN2|VSS_VDD);
27     setup_adc(ADC_CLOCK_INTERNAL);
28 
29     while(1)
30     {
31         delay_ms(10);
32         adc = photo();
33 
34         if(adc < 128)
35         {
36             LED_ON;
37         }
38         else
39         {
40             LED_OFF;
41         }
42     }
43 }