PICマイコン
2025.01.16
マイコンは各社各機種、次々に新しいのが出てきて、どれを選んだら良いものやら迷ってしまって、結局、手が出なかったりする。
トラ技などの付録に基板がついてきたけど、今では廃れてしまったものもある。
今後使っていこうとして、解説書や書込ツール等をあれこれ買い揃えたけど結局無駄になった、というのは避けたい。
そもそも昔は('90年代)ワンチップマイコンは少なかった。世の中には有ったけど、特にホビーでいじる人にとっては身近ではなかった。
それまではCPUがあって、ROMがあって、RAMがあって、I/Oがあって・・・というふうにそれぞれのLSIを配線で結んでシステムを構成していた。
Z84C015のようにワンチップ化されたものもあったが、ROMとRAMは外付けしかなかった。
どうしても大掛かりになり、場所をとるので、ROMやRAMも含めたワンチップは欲しかった。
8048(8748)などが存在するのは(製品の基板などを見て)知っていたけど、あまり市販されておらず、開発ツールや書込機の課題もあった。
そんな中、'97年頃にトラ技に載ったのはPICマイコンの初めての記事。
なお、PIC自体はもっと昔から存在していた。たとえばMacintoshのマウスの中に入っていたのを実際にこの目で見ている。
その初めての記事は間違いも結構あったが、やってみようという気にさせられた。書き換え可能のワンチップマイコンは便利そう。
マイクロチップ社の英文の分厚いデータブックしか手に入らず、それを必死になって読み込んでいた。
当時は16C84で、その後16F84になった。
やはり最初は書込機でつまずいて、パラレルポートにつなぐ書込回路なんか手作りしてみたけどなぜかうまくいかない。あの回路をシンプルで素晴らしいなどと称賛する文章を見かけたが、動かなければ意味がないのだ。
とにかく、困った困ったと苦しんでいた。
プログラムも、あの変なアセンブラに慣れなくて、プログラムが正しいか間違っているのか。コンフィグはこれで良いのか悪いのか。わからなくてウロウロしていた。最初の頃はそんな具合だった。
試行錯誤しているうちにうまくいったのか良く覚えてないけど、記事に載っていた書込機を何パターンか作って試したのは何となく覚えている。
どれもこれも中途半端で、使いにくい点があったりして不満はあった。
最終的には秋月のPIC書込機キットを組み立ててケースに入れ、ようやく落ち着いた感じ。その後、色々な型番のPICを使う必要があり、純正の書込機を買ったと思う。
あのPICの変なアセンブラには苦心したが、Cコンパイラは当時高かったし、この小さなマイコンにCコンパイラは合わないだろうとも思っていた。
ちょっとしたプログラムだけでおさまりきらないのではないか。アセンブラで頑張って詰めるしかないと信じていた。
8ピンPICも魅力があった。
最初は12C508で、容量の大きい509と、EEPROM内蔵の12CE508なども有り、出た当時に入手して試していた。最初は窓付き(高価だった)とワンタイムしかなかった。
窓付きの内部をのぞいてみると、PICのコアとEEPROMが別々になっているのがわかって面白かった。(いまでは一体になっているだろうけど)
ところで、
PICにはいろんなワナがあって、毎回のようにひっかかったりしていた。
特にバンクが曲者で、暴走の原因になった。プログラムメモリにもデータメモリにもバンクがある。その切替が面倒で、切り替えのために余分な命令が増えるのと、常にバンクを意識しながらプログラムを作る必要があった。
ある時、他人の作ったプログラムを改良・機能追加してほしいと頼まれ、見てみるとかなり容量の大きいアセンブラのプログラムだった。よくこんなの作るなあ、と思いながら、元になったプログラムはアレだなと気づいていた。
機能を追加するのでプログラムを足していったら、バンクをまたいで動かなくなった(暴走)。困ったぞ、このバンクにおさまるようにするには!? 地獄の三丁目であった。
最終的にはうまくおさめたけど二度と触りたくない気持ち。
元々は確かソースが失われていて、最新版は製品に載っているPICから読み出してくれ、と。そのバイナリを逆アセして、残っている旧版のソースとを照合しながら、最新版のソースを再現してくれというのが最初の依頼だったような記憶。(よかったね、プロテクトかかってなくて)
担当者がやめたのか、HDDが壊れたのか、そのあたりの事情は知らない。
また別の話で、
いまアセンブラのソースが有るけど、これをC言語に書き直してほしい、ってのもあった。
新しい担当がアセンブラわからないって。
色々不思議な依頼があるものだ。
あと、PICのポートは「微妙に足りない」の法則がある。
最初18ピンでいけそうだと確信した。ところが、あと1本欲しいってのはよくある。
そうなると次の選択肢は28ピンになる。(今は20ピンもあるだろうけど)
今はXTALのピンもI/Oとして使える品番もあるけど、昔はXTALやMCLRは専用だった。16F84とかの時代。
28ピンか、でかいな・・・SSOPにするか、と。
それでも、兼用ピンの制約などでこのピンは使えないな、これはあれにしか使えないな、このポートは8ビットのデータを受けるから、・・・というわけで足りなくなり、結局40ピンになる。
40ピンはさすがにでかすぎるので、QFPにするか、と。
トラ技などの付録に基板がついてきたけど、今では廃れてしまったものもある。
今後使っていこうとして、解説書や書込ツール等をあれこれ買い揃えたけど結局無駄になった、というのは避けたい。
そもそも昔は('90年代)ワンチップマイコンは少なかった。世の中には有ったけど、特にホビーでいじる人にとっては身近ではなかった。
それまではCPUがあって、ROMがあって、RAMがあって、I/Oがあって・・・というふうにそれぞれのLSIを配線で結んでシステムを構成していた。
Z84C015のようにワンチップ化されたものもあったが、ROMとRAMは外付けしかなかった。
どうしても大掛かりになり、場所をとるので、ROMやRAMも含めたワンチップは欲しかった。
8048(8748)などが存在するのは(製品の基板などを見て)知っていたけど、あまり市販されておらず、開発ツールや書込機の課題もあった。
そんな中、'97年頃にトラ技に載ったのはPICマイコンの初めての記事。
なお、PIC自体はもっと昔から存在していた。たとえばMacintoshのマウスの中に入っていたのを実際にこの目で見ている。
その初めての記事は間違いも結構あったが、やってみようという気にさせられた。書き換え可能のワンチップマイコンは便利そう。
マイクロチップ社の英文の分厚いデータブックしか手に入らず、それを必死になって読み込んでいた。
当時は16C84で、その後16F84になった。
やはり最初は書込機でつまずいて、パラレルポートにつなぐ書込回路なんか手作りしてみたけどなぜかうまくいかない。あの回路をシンプルで素晴らしいなどと称賛する文章を見かけたが、動かなければ意味がないのだ。
とにかく、困った困ったと苦しんでいた。
プログラムも、あの変なアセンブラに慣れなくて、プログラムが正しいか間違っているのか。コンフィグはこれで良いのか悪いのか。わからなくてウロウロしていた。最初の頃はそんな具合だった。
試行錯誤しているうちにうまくいったのか良く覚えてないけど、記事に載っていた書込機を何パターンか作って試したのは何となく覚えている。
どれもこれも中途半端で、使いにくい点があったりして不満はあった。
最終的には秋月のPIC書込機キットを組み立ててケースに入れ、ようやく落ち着いた感じ。その後、色々な型番のPICを使う必要があり、純正の書込機を買ったと思う。
あのPICの変なアセンブラには苦心したが、Cコンパイラは当時高かったし、この小さなマイコンにCコンパイラは合わないだろうとも思っていた。
ちょっとしたプログラムだけでおさまりきらないのではないか。アセンブラで頑張って詰めるしかないと信じていた。
8ピンPICも魅力があった。
最初は12C508で、容量の大きい509と、EEPROM内蔵の12CE508なども有り、出た当時に入手して試していた。最初は窓付き(高価だった)とワンタイムしかなかった。
窓付きの内部をのぞいてみると、PICのコアとEEPROMが別々になっているのがわかって面白かった。(いまでは一体になっているだろうけど)
ところで、
PICにはいろんなワナがあって、毎回のようにひっかかったりしていた。
特にバンクが曲者で、暴走の原因になった。プログラムメモリにもデータメモリにもバンクがある。その切替が面倒で、切り替えのために余分な命令が増えるのと、常にバンクを意識しながらプログラムを作る必要があった。
ある時、他人の作ったプログラムを改良・機能追加してほしいと頼まれ、見てみるとかなり容量の大きいアセンブラのプログラムだった。よくこんなの作るなあ、と思いながら、元になったプログラムはアレだなと気づいていた。
機能を追加するのでプログラムを足していったら、バンクをまたいで動かなくなった(暴走)。困ったぞ、このバンクにおさまるようにするには!? 地獄の三丁目であった。
最終的にはうまくおさめたけど二度と触りたくない気持ち。
元々は確かソースが失われていて、最新版は製品に載っているPICから読み出してくれ、と。そのバイナリを逆アセして、残っている旧版のソースとを照合しながら、最新版のソースを再現してくれというのが最初の依頼だったような記憶。(よかったね、プロテクトかかってなくて)
担当者がやめたのか、HDDが壊れたのか、そのあたりの事情は知らない。
また別の話で、
いまアセンブラのソースが有るけど、これをC言語に書き直してほしい、ってのもあった。
新しい担当がアセンブラわからないって。
色々不思議な依頼があるものだ。
あと、PICのポートは「微妙に足りない」の法則がある。
最初18ピンでいけそうだと確信した。ところが、あと1本欲しいってのはよくある。
そうなると次の選択肢は28ピンになる。(今は20ピンもあるだろうけど)
今はXTALのピンもI/Oとして使える品番もあるけど、昔はXTALやMCLRは専用だった。16F84とかの時代。
28ピンか、でかいな・・・SSOPにするか、と。
それでも、兼用ピンの制約などでこのピンは使えないな、これはあれにしか使えないな、このポートは8ビットのデータを受けるから、・・・というわけで足りなくなり、結局40ピンになる。
40ピンはさすがにでかすぎるので、QFPにするか、と。
トラックバックURL
トラックバック一覧
コメント一覧
コメント投稿