kuroの覚え書き

96の個人的覚え書き

MacでPICプログラミング



Writer509は手軽なライターなんだけど、やはりWindowsを介さないと書き込みが出来ない。

完全OSXで出来ないものかとさまよっているとWISP628というものに遭遇。

writer509同様USB-シリアルアダプタ経由で書き込みできるようだし基本ICSPで使うような感じ。

で、このプログラマの制御アプリがソース共々公開されていてOSXでも使えるような記述があるじゃないですか。

早速ダウンロードして、アプリが動くかどうか確認してみる事にする。

xwisp2という名前なのでX11で動くのかと思いきやCUIのようだ。

最新版1.9.2を落としてきて解凍。実行ファイルを探すもわからない。Readmeを読んでみると・・・xwisp2uというのがLinux用バイナリだそうだが、これをターミナルから起動してみてもだめ。もっとReadmeを読んでみるとOSXはソースからコンパイルしてくれという事だ。

仕方がないのでソースをダウンロードしてきてコンパイルしようと思ったが、最新版ソースには説明がついてなくてちょっと途方に暮れる。

もしやと思って一つ前の1.9.1のソースをダウンロードして、フォルダのReadmeを読む。

結局のところxwisp2_gu.makというのがOSX用のmakefileという事がわかったので


$ make -f xwisp2_gu.mak

としてやったところコンパイルできたような感じ。

出来たバイナリはさっきのLinuxのと同じxwisp2uらしく、上書きされてしまった模様・・・

ということでとりあえず


$ ./xwisp2u

としてやると


xwisp2 version 1.9.2 for MacOS (Oct 29 2007, GCC 4.0)
BAUD b : set baudrate b PAUSE "m" : print "m", wait for Enter
BEEP : beep at end of operation PORT x : use port x (name or number)
CHECK : buffer against target PROTECT x : x = ON, OFF or FILE
DELAY d : programming delay (0.1 ms) PUT : buffer to target
DTR x : x = ON or OFF READ f : get, save f
DUMP : display hex image RTS x : x = ON or OFF
DUPLEX m : m = HALF or FULL (Wisp628) RUN : put target in run mode
ERASE : erase target SAVE f : buffer to file
FORCE x : override target with x SELECT x : x = one or more of +-CDFI
FULL : check/verify all memory TARGET x : x = AUTO, ? or device name
FUSES x : x = FILE, IGNORE or value TIME : show current time
GET : target to buffer VERBOSE : enable screen logging
GO f : erase, write f, check, run VERIFY f : load f, check
HELP : display these screens WAIT n : wait n milliseconds
LOAD f : file f to buffer WRITE f : load f, put
LOG f : log to file f
PASS m : enable passthrough
m = B6T, B6I, AUXT, AUXI
>>> Press 'Enter' to continue:

とでた。

やった。いけるかも。とりあえずライター基板をつくらねばねば。

ちなみに対応PICは


Specs of following targets were collected from the configuration file(s):

12F629 +16F690 16F87 18F1220 +18F2510 +18F4321 18F458 18F6680

  1. 12F635 *16F716 16F870 18F1230 +18F2515 18F4331 +18F4580 18F6720

12F675 16F72 16F871 18F1320 18F252 +18F4410 +18F4585 +18F6722

  1. 12F683 16F73 16F872 18F1330 +18F2520 18F442 +18F4610 18F8410

16F627 16F737 16F873 18F2220 +18F2523 +18F4420 +18F4620 18F8490
16F627A 16F74 16F873A +18F2221 +18F2525 +18F4423 +18F4680 18F8520
16F628 16F747 16F874 18F2320 +18F2550 18F4431 +18F4682 18F8525
16F628A 16F76 16F874A +18F2321 18F258 +18F4450 +18F4685 +18F8527
16F630 16F767 16F876 18F2331 +18F2580 +18F4455 18F6410 18F8585

  1. 16F636 16F77 16F876A +18F2410 +18F2585 18F448 18F6490 18F8620

16F648A 16F777 16F877 18F242 +18F2610 +18F4480 18F6520 18F8621
16F676 +16F785 16F877A +18F2420 +18F2620 +18F4510 18F6525 +18F8622

  1. 16F677 +16HV785 16F88 +18F2423 +18F2680 +18F4515 +18F6527 +18F8627
  2. 16F684 16F818 +16F913 18F2431 +18F2682 18F452 18F6585 18F8680
  3. 16F685 16F819 +16F914 +18F2450 +18F2685 +18F4520 18F6620 18F8720
  4. 16F687 16F83 +16F916 +18F2455 18F4220 +18F4523 18F6621 +18F8722
  5. 16F688 16F84 +16F917 18F248 +18F4221 +18F4525 +18F6622
  6. 16F689 16F84A +16F946 +18F2480 18F4320 +18F4550 +18F6627

>>> (+) requires Wisp628 firmware >= 1.10, (*) firmware >= 1.12
>>> Press 'Enter' to continue:

ということらしい。


Some examples of command lines:

Flash file 'abc.hex' using a Wisp628 on COM1 or /dev/ttyS0 or /dev/ttyd0:

> xwisp2 abc {first serial port is default, 'go' is not required}

Flash file 'abc.hex' using a Wisp628 on COM3 or /dev/ttyS3 or /dev/ttyd3:

> xwisp2 port 3 go abc {'go' must be specified in this case}

The environment variable 'XWISP2' may be set to customize XWisp2 for daily use:

> set XWISP2=baud 19200 rts on {eComStation, Windows}
> export XWISP2="baud 19200 rts on" {Linux, FreeBSD}

xwisp2 terminated successfully in 187.65 seconds