SSブログ

アフィリエイトを始めることにした [その他]

(2018.08.23)

ブログを書き始めたのは2010年2月でした。(今回アフィリエイトに参加申請するために調べました)
https://broadbeans.blog.so-net.ne.jp/archive/20100217

最初は紛れもなく親族SNS管理人だった(SNSサーバは現在稼働していない)ので、サーバ構築関連の記事を書いていましたが、最近は専らPICを使った電子工作ブログ(時折手料理etc.)に変容しています。

それでも、なんだかんだで記事数:689、総閲覧数 累計: 1,003,675 <==祝100万PV達成!
パチパチパチ~

まぁ、9年間の累計ですから(これが月間だったりしたら凄いのでしょうが)・・・

『折角書き継いで来たものをこれからも続けて行く』その動機付けとしてアフィリエイトを始めることにしました。(^_^;)

管理人が気になった広告を貼ろうと思うので、宜しくお願い致します。

これ(↓)はA8.netへの義理立てです。




<scikit-learnで学ぶ識別入門>

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

シミュレータでPIC24を動かして見た [電子工作]

(2018.08.22)

SRAMの大きなPIC16(PIC16F18857の4kバイトが最大らしい)を探していたところ、それならPIC24にした方が良いとアドバイスを頂きました。

調べてみるとPIC24FJ256GA702のSRAMは16kバイトもあり十分な大きさです。しかし、PIC24を使った経験が少ないことが気がかりです。お試しで触って見たいけど秋月電子では扱っていないし・・・そんな時、助けになるのがMPLAB-X IDEのデバイス・シミュレータです。

プロジェクトのpropaties==>Hardware ToolでSimlatorを選択するだけでシミュレータを利用できます。
2018_0822_1.pngSimulatorを選択する

メニュー・バーを見るとコンパイルやデバッグだけで無く、MCCを使ったシステム構築も出来ることが判ります。
2018_0822_2.pngシミュレータ使用時のメニュー

TMR1を使って、割り込み機能を確認しました。

2018_0822_3.pngTMR1割り込みのシミュレーション

AIVT(Alternate Interrupt Vector Table)を確かめたかったのですが、INTCON2のAIVTENビットを操作しても、__AltT1Interruptには来ませんでした。(残念)
デバイスをPIC24FJ64GA002に替えると__AltT1Interruptが呼び出されました。(固定アドレスなのでPIC24FJ256GA702よりシミュレートが楽)

デバイスの機能を全てシミュレートしていることを求めるのは酷だと思います。(只で使っているシミュレータなんだし・・・)
割り込みハンドラのレジスタ退避等、知りたかったことが確認できたのは大きな収穫でした。

これでLチカのシミュレーションが出来たら、もっと受けるんじゃないかなぁ~
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
アフィリエイト始めました(^_^;)
管理人が興味を持った広告を紹介します



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

結局、PICkit3は直らなかった [PICkit3]

(2018.08.19)

起動するとStatus LEDが 赤色点灯する3台のPICkit3にFirmwareを書き込みました。

全て、”Programming/Verify complete”と表示されたので、書き込みそのものは成功したと思います。起動するとStatusは 消灯するように成りましたが、相変わらずConnection Failedとなる件は改善されません。

PICkit3が接続できなくなったのは、親族SNS管理人の取り扱いが悪かったせいだと思っていました。しかし、多くの方の報告にもあるように、PICkit3がFirmwareの更新に失敗して、その結果起きる不具合のようです。先日不具合になったPICkit3も、PIC16F1788の開発に使っていたときは問題無かったのに、PIC24FJ256GB106のHexファイルを書き込むためMPLABX-IPEを起動してFirmwareのアップデートが始まり、Download Failを起こして・・・Connection Failedに成りました。orz

厄介なのは、時折この症状から回復するPICkit3があるということです。

何故、PICkit3がFirmwareの更新に失敗するのか?
何故、Connection Failedを表示して接続できなくなるのか?
何故、時折この不具合から回復するのか?

そして、どうしたらこの状態から抜け出せるのか?

数千円の安い開発ツールだと思って諦めていました。しかし、今回ケースの中を見て妥当な価格は¥2500程度では無いか?と感じました。それを¥5000~¥6000で売っているのですからMicrochip社は不具合対策をきちんと行って欲しいと思います。(怒)

まぁ、コンパイラとかMPLAB-X IDEとか無償の開発ツールを使わせてもらっているので、あまり大声で文句を言う訳には行かないのですが・・・
(お粗末)

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

PICkit4が届いた [PICkit4]

(2018.08.17)

秋月電子に注文したPICkit4(↓)が届きました。これで開発作業を再開できます。
http://ec.akizukidenshi.com/catalog/g/gM-13337/

先ずは、こちら(↓)のサイトを参考にして壊れたPICkit3にFirmwareを書き込んでみました。
http://koibo.blog.fc2.com/blog-entry-40.html

PICkit4はPIC24FJ256GB106も(未だ殆どのデバイスが)βサポートなのですがMPLAB-X IDEで接続して、書き込むことが出来ました。

*****************************************************
Connecting to MPLAB PICkit 4...

Currently loaded versions:
Application version............00.02.00
Boot version...................01.00.00
Script version.................00.02.52
Script build number............66d22ca77a
Application build number.......0123456789

Connecting to MPLAB PICkit 4...

Currently loaded versions:
Boot version...................01.00.00
Updating firmware application...
Connecting to MPLAB PICkit 4...

Currently loaded versions:
Application version............00.03.09
Boot version...................01.00.00
Script version.................00.02.52
Script build number............66d22ca77a
Application build number.......0123456789

PICkit 4 is supplying power to the target (3.25 volts).
Target device PIC24FJ256GB106 found.
Device Id Revision = 0x3

Erasing...

The following memory area(s) will be programmed:
program memory: start address = 0x0, end address = 0x2ff
program memory: start address = 0x800, end address = 0x7fff
program memory: start address = 0xec00, end address = 0xedff
program memory: start address = 0xf000, end address = 0xf2ff
program memory: start address = 0xf800, end address = 0xf8ff
program memory: start address = 0x10000, end address = 0x15bff
program memory: start address = 0x29f00, end address = 0x29fff
configuration memory

Programming/Verify complete

*****************************************************

PICkit3のUSBケーブルを接続し直すとStatusの赤色LEDが消えて、直ったように見えたのですが・・・

Connection failed から抜け出すことは出来ませんでした。orz

もう一台のPICkit3にFirmwareを書き込む準備が出来たら、再挑戦します。
ーーーーーーーーーーーーーーーーーーーーーーー
<おまけの報告>
PICkit4はPIC16F1829もβサポートですがプログラムを書き込んでデバッグすることが出来ました。
(実はかなり使える?)

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

PIC24のBoot SegmentとAIVTの扱いが何か変 [PIC24]

(2018.08.17)

PIC24Fには通常の割り込みベクターテーブル(IVT)とは別に代替割り込みベクターテーブル(AIVT)を設けることが出来ます。

2018_0817_1.pngIVTとAIVT
BOAについては以下の様に記されています。
BOA: Base Offset Address for AIVT, which is the starting address of the last page of the Boot Segment.

『AIVTのオフセットアドレスで、Boot Segmentの最終ページの先頭アドレス』ということです。
(Boot Segmentによらず固定のものもある)
2018_0817_2.pngBoot Segmentのページアドレスリミットの指定

デフォールトでは0x000番地のジャンプ命令でリセット処理(0x100番地以降)が実行されます。(FBSLIM=0X1FFFF)
00000000 <.reset>:
   0:	00 01 04    	goto      0x100 <__reset>
   2:	00 00 00 

00000100 <__reset>:
 100:	4f 82 20    	mov.w     #0x824, w15
 102:	0e 7f 24    	mov.w     #0x47f0, w14

Boot Segmentを設定したの場合はリセット処理の配置(ジャンプ命令の飛び先)が
変更されます。(FBSLIM=0X1FFFB)
00000000 <.reset>:
   0:	00 20 04    	goto      0x2000 <__reset>
   2:	00 00 00 

00002000 <__reset>:
    2000:	af 82 20    	mov.w     #0x82a, w15
    2002:	0e 7f 24    	mov.w     #0x47f0, w14


2018_0817_3.pngFSECレジスタ設定

さらにAIVTを有効にした場合は、二種類の割り込みベクター・テーブルが定義されます。

(resetの辺りは変わらない)
00000000 <.reset>:
   0:	00 20 04    	goto      0x2000 <__reset>

00002000 <__reset>:
    2000:	af 82 20    	mov.w     #0x82a, w15
    2002:	0e 7f 24    	mov.w     #0x47f0, w14

<.ivt._T1Interrupt>と<.aivt._AltT1Interrupt>が用意された
0000001a <.ivt._T1Interrupt>:
  1a:	2e 21 00    	nop       
0000181a <.aivt._AltT1Interrupt>:
    181a:	4c 21 00    	nop       

こちらはMCCが自動生成してくれたIVT用の割り込みハンドラ
void __attribute__ ( ( interrupt, no_auto_psv ) ) _T1Interrupt ( )
{
    TMR1_CallBack();
    IFS0bits.T1IF = false;
}

こちらは自分で追加した(しなければならない)AIVT用の割り込みハンドラ
void __attribute__ ( ( interrupt ) ) _AltT1Interrupt ()
{
    TMR1_CallBack();
    IFS0bits.T1IF = false;
}

不思議に思うのは・・・
1.FSECレジスタのBSEN(Boot Segment Control bit)を操作しなくてもFBSLIM
  レジスタの設定だけで、リセット処理の配置先が変更されること
2.FBSLIMレジスタ=0X1FFBに設定したとき、リセット処理が0x2100番地ではなく、
  0x2000番地に配置されること
3.FSECレジスタのAIVTDISを操作したとき、0x1800番地以降にAIVTが設定されること
4.IVTにはMCCが用意した割り込みハンドラを設定するのに、AIVTには別途割り込み
  ハンドラ(_Altを付けたもの)を用意しないと実行時にエラーになる
  (以下の場所に飛ばされる)こと

0000215c <__DefaultInterrupt>:
    215c:	00 40 da    	break 
    215e:	00 00 fe    	reset     

親族SNS管理人が期待する動作は以下の通りです。
1.FSECレジスタのBSEN(Boot Segment Control bit)を操作すると、FBSLIMレジスタの
  設定でリセット処理の配置先が変更される。
2.FBSLIMレジスタを0X1FFBに設定したとき、リセット処理は0x2100番地に配置する。
3.FSECレジスタのAIVTDISを操作したとき、0x2000番地以降にAIVTを設定する。
4.別の割り込みハンドラ(_Altを付けたもの)が用意されていない場合は、IVTに設定する
  割り込みハンドラと同じもの、AIVTに設定する。

今の動作は(Microship社は仕様と言うのでしょうが)xc16のバグとしか思えません。

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

PIC24のコンパイルで悩んだ [電子工作]

(2018.08.15)

PICプログラム開発にはMicrochip社が無償で提供しているCコンパイラを使います。PIC16ならxc8コンパイラ、PIC24ならxc16コンパイラです。同じ会社が提供する似た名前のコンパイラなのですが、違いが色々あって戸惑います。(聞いた話では開発した事業部が違うらしい)

xc8コンパイラでは、SRAM(データを格納する)やFlash Memory(プログラム・コードを格納する)の使用範囲をRAM ranges propertyとROM ranges propertyで指定していました。これと同じことをxc16コンパイラでやりたいのですが・・・

CodeGuard categoryにそれらしいpropertyを見つけました。しかし設定がsmall,medium,largeの三択で期待していたものとは違うようです。(<==使い方が判らない)

あれこれ調べて、CONFIGURATION REGISTERのFBSMLIMを使えば目的とする(Boot プログラムの後ろにユーザ・プログラムを配置する)機能を実現できることが判りました。

残るRAM ranges相当の機能は、どうやれば実現するのか?

(暫し悩む)>(あれこれ調べる) >(暫し悩む) >> ん!
無理矢理ですが、『ユーザ・プログラムにはこれ(↓)を付けてコンパイルしてもらう』という方法にたどり着きました。
int boot_area[0x400] __attribute__((noload,unused,address(0x800)));

noload==>実行時に初期化しない
unused==>使用していなくても領域を確保する
address(0x800)==>SRAMの先頭に配置する

Bootプログラムの方にはこれ(↓)を付けてコンパイルします。
asm (".section my_stack, stack address(0x0f00)");
asm (".space 0x100");
int user_area[0x1c00] __attribute__((noload,unused,address(0x1000)));

Bootプログラムで自由に使える範囲を0x800~0x0effに制限します。

パチパチパチ~
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
正しい方法が判ったらあとで書き足すことにして、今はこの方法で先に進みます。
(<==結果オーライな奴)


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

秋月電子は28pinのPIC16F18857も扱っていた [電子工作]

(2018.08.14)
秋月電子が28pinのPIC16F18857(↓)を扱っていることを教えて頂きました。
http://akizukidenshi.com/catalog/g/gI-11888/
どうやら、探し損ねていたようです。(^_^;)

また、PIC24FJ***GA702(<==28pin)ならSRAMを16kB搭載しているという情報も頂きました。(<==感謝)

調べてみると、PICのモデルごとに最大SRAM容量が分かれていました。Microchip社の主張が透けて見えるようです。

SRAM容量
4kbytes ==> PIC16F18857
8kbytes ==> PIC18F27K42
16kbytes ==> PIC24FJ256GA702
64kbytes ==> PIC32MX170F256B

上位モデルはPIC24FJ256GA702で行こう!
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
管理人もお世話になっています(↓)









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

秋月電子でこんなのを見つけた [電子工作]

(2018.08.13)
PIC16でSRAMが大きいのを探していて、これ(↓)を見つけました。SRAMを4096バイト搭載しています。
https://www.microchip.com/wwwproducts/en/PIC16F18857

秋月電子が扱っているかどうか調べたら、PIC16F18877(<==残念ながら40pin)を扱っていました。
I-11901.JPGPIC16F18877

http://akizukidenshi.com/catalog/g/gI-11901/

40pinのPICで値段はなんと¥190(<==安い)!
値付けを間違えたんじゃないか?と思うほどです。

28pinで無いのが惜しい。orz

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

頼みのPICkit3が壊れた [PICkit3]

(2018.08.12)
動かなくなったPICkit3を救済するため、こちら(↓)のサイトを参考にしてプログラムを書き込むことにしました。
http://koibo.blog.fc2.com/blog-entry-40.html

準備を整え、MPLAB IPEを起動したところ、Firmwareの書き換えに失敗しました。
PICkit3は、MPLAB-X IDE<==>MPLAB IPEの切り替え時には必ずFirmWareを書き換えるのです。これまでにもFirmwareの書き換えに失敗することは何度かありました。しかし、書き換えを再度行うと書き換えは成功していたのですが、今回は何度繰り返しても、Connection Failになってしまいます。

動かなくなったPICkit3を修理しようとして、もう一台動かないPICkit3を作ってしまいました。orz

秋月電子にPICkit4(↓)を注文しようとしたら、8/15までお盆休みだとか・・・
http://akizukidenshi.com/catalog/g/gM-13337/

もう踏んだり蹴ったりです。暑さが一段と堪える!

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

WinSCPをインストールした [パソコン]

(2018.08.08)
新しいSDメモリカード・リーダが届いたので、早速Raspiのセットアップに取りかかりました。

前回、Raspbian(stretch)をインストールしたところ、「xrdpが起動しない」という不具合に見舞われたので(<==原因究明はしていない)、今回は手元にあったRaspbian(2017-03-02-jessie)をインストールしました。

用意してあるインストール・スクリプトを順に実行していきます。
$ ./xrdp_install.sh <==stretchはここでxrdp.serverエラーを起こした
$ ./samba_install.sh
$ ./bcmlib_install.sh
$ ./oscilogi_install.sh
$ ./setup_icon.sh
$ sudo dphys-swapfile swapoff
$ sudo insserv -r dphys-swapfile

このあと、WindowsPCの共有ディレクトリをcifsマウントしようとして、エラーになりました。
$ sudo mount -t cifs -o username=****,password=xxxx, //192.168.x.xxx/common /mnt/common

mount error(112) :Host is down

以前マウント出来ていた他のRaspiでも同じ結果になること、ネットワーク上のNASとRaspi間はcifsマウントできることから、WindowsPCの問題と判断しました。

sambaを使ったディレクトリ共有はWindowsPCの動作が不安定な(ときどき見えなくなる)ので、何か他に良い方法は無いか探していて、これ(↓)を見つけました。
https://ja.osdn.net/projects/winscp/

なかなか使いやすそうです。ときどきWindowsPCからNASに接続できなくなる不具合もこれで解決するものと、期待しています。
nice!(2)  コメント(0) 
共通テーマ:日記・雑感

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