2026年2月28日土曜日

東芝の74VHCシリーズ

 昨今、74シリーズのロジックICは出番が激減している印象ですが、
決して必要性が無くなっているわけではありません。

ただ、電源電圧の多様化により、シリーズバリエーションが増加している点が、
理解度向上を阻害する一因になっている気がします。 

 

前置きはさておき、今回は東芝製74VHCシリーズについて話をします。

そもそも74VHCシリーズとは、74HCシリーズの高速化を狙ったものです。
74HCより高速な石は これまた色々存在するのですが、
例えば74ACシリーズなんかも そうですね。

74ACシリーズは動作電源電圧こそ74HCと同等ですが、
出力ドライブ能力は遥かに上です。
これは多分、74Fシリーズや74ASシリーズの置き換え考慮した結果だと思われます。
その結果、74ACシリーズは74HCシリーズ対し、
とてつもなくノイズを出す石になってしまいました。 

 74VHCシリーズは電源電圧が74HC相当はもちろんの事、
出力ドライブ能力も74HC相当という石なのです。
従って、高速な74HCという意味では、74ACより74VHCの方が相応しいのです。

 

74VHCシリーズですが、似たようなシリーズとして74AHCシリーズが存在します。
こちらはTI社がオリジナルの模様。(74VHCシリーズは東芝がオリジナル)
実際、市場でも同様の使われ方がされてる様です。

 

ここからが本題なのですが、東芝の74VHCシリーズをお勧めする理由です。

74ACの例の様に、ロジックICの動作を単純に高速化するだけだと、
ノイズ発生源になってしまうんですね。
実際、東芝は74ACシリーズで少々頭を痛めた模様。

そこで東芝は74VHCに対し、出力段に手を加えたのです。 
具体的には出力波形の特性を制御し、74HCに近いレベルに収まる様、
頑張ったのでした。


 

 

 

出展
東芝 アプリケーションノート
VHCシリーズ 製品概要

 

 

 

  

 

 

この図は入力に対する出力波形のグラフです。 

74VHCの動作速度は74ACに近いのに、
出力のバタツキは74HCに近いことがお判りいただけるでしょうか?

これぞ正に、理想的な高速版74HCというわけです。

この特性により、74VHCは74HCの置き換えが可能と思われます。
(タイミングが早まるとマズいケースは除きますが) 

これは74AHCには無いアドバンテージですので、
どちらかを選べと言われたら、間違いなく74VHCを選びます。

 

現状の問題点

そんな、とても魅力的な74VHCシリーズですが、難点が無いわけではありません。

1.ラインナップ問題

パッケージの互換性問題にお気づきの方も多いと思います。
DIPパッケージでは全く発生しなかった問題なのですが、
1.27mmピッチのSOPパッケージにおいては、幅が2種類に分かれてしまいました。

TI社は互換性を考慮し、2種類のパッケージをリリースする方針を取りましたが、
現状に居たり、東芝が押してきたパッケージは主流から外れることになりました。

そこで東芝はもう1つのパッケージ幅の製品もリリースする様になったのですが、
既存製品とは別シリーズとしてリリースしています。
(ここが少々ややこしい点なのですが)

そして旧シリーズは順次ディスコン扱いにしていってます。

ディスコンにした旧シリーズが全て、
パッケージサイズが変わった新シリーズでリリースされているなら問題無いのですが、
実はそんな甘い話は無くて、新シリーズで作られていない石も存在します。

74VHCシリーズも旧シリーズでは それなりに品種が豊富だったのですが、
新シリーズでリリースされているものは需要が多そうなものばかり。
その為、パッケージサイズの観点から74VHCシリーズを断念せざるを得ないケースが
発生している現状です。 

2.互換品問題 

74ロジックICは余程特殊な代物でない限り、他社でも同等品がリリースされます。

ならばもろちん74VHCシリーズも・・・・・・・
と期待するわけですが、残念ながら もう厳しい状況です。

確かに一時期はサードパーティー製74VHCシリーズも存在していました。
探せば未だに市場在庫が見つかるかもしれません。

しかしこれらは東芝製の回路を模倣しているとは限らないので、
大きなアドバンテージであるノイズ抑制効果が無い可能性が強いです。

これが無ければ74AHCシリーズと同様という結果になってしまうわけでして、
実際のところサードハーティー製74VHCは74AHCと中身が同一の可能性が高いです。 

ですので、先に述べた優位性を期待するならば、
あくまでも東芝製の74VHCシリーズを使うべきでしょう。
入手性に難が出てくるわけですが・・・・・ 

2026年2月20日金曜日

AE-NSP2340A-BO その2

 前の記事の続きの話です。

 NuISP UARTを使った書込み方法を模索していたわけですが、
ヒントは「NSP Update Firmware via UART」というマニュアルにありました。

Nuvotonさん配布のマニュアルは数が多くて把握するのが大変。
しかも英文ですから未だに全てに目を通せていません。

 

通常、皆がよく使うであろうアプリのマニュアル、
「NSP PlayList Editor Tool User Guilde」にはNuISP UARTの話は出てきません。 
「NSP Update Firmware via UART」の中にNuISP UARTが出てくるんですね。

で、このマニュアルを読んでいると、「NSP ICP Writer」なる謎アプリが!!

この 「NSP ICP Writer」はスタートメニューには登録されませんが、
アプリ自体はインストールされている状態でした。

NuISP UARTを使う前に、NSP ICP Writerを使う手順になっているものの、
話が繋がりません(笑)

それでもマニュアルを信じて作業進めると、書き込みまでは完了!
これで1歩かと思いきや、音が鳴りません。 orz

秋月さん配布のテスト用データーを書き込むと ちゃんと鳴るので、
ハードは故障していない模様。

ということは やはり何かしら間違っているという結論に。
先は長そうです。 


2026年2月18日水曜日

AE-NSP2340A-BO

先の記事の中でNSP2340Aを搭載した秋月電子の基板キットを紹介しましたが、
現物が着弾しましたので、実際に触ってみた話です。

以下が実際に着弾したブツ。 


 

 

 

 

 

 

 

 

 

右がNSP2340A搭載のキット「AE-NSP2340A-BO」で、
左はUSBシリアル変換キット「AE-FT234X」です。

AE-NSP2340A-BOはパソコンに直結できる能力を持っていない為、
シリアルポートに接続する為の変換器が必要です。

秋月電子さん側は「AE-CH9102F-TYPEC-BO」を推奨していますが、
今回は個人的趣向で「AE-FT234X」を選択しました。
両者の違いは使用している変換ICとUSBコネクターです。

 

AE-NSP2340A-BOで最初に行わなければならないのが動作テストです。 
どうやら秋月さんでは通電・動作試験までは行っていない模様。

USBシリアル変換器との結線、その後の動作確認方法は添付のマニュアルに載っています。
しかし実はこの内容には不備があるということで、補足マニュアルが配布されています。
これは秋月のサイトからダウンロードする必要有ります。
補足マニュアルが無くても勘の良い方なら作業を進められるかもしれませんが、
可能ならば目を通しておいた方が良いと思います。

 

ということで、実際に動作確認を行い、問題はありませんでした。
ちなみに、動作確認用に提供されている音声データーは約768KB。
その転送時間は約380秒でしたので、転送速度は2KByte/s位です。
USB接続のシリアルポートとしては遅めですね。

では次に、当方で用意した音声ファイルを再生させてみることにします。

作業の流れとしては、NSPPlayListEditorというアプリにて書込データーを作成。
その書込データーをNuISP UARTというアプリにてAE-NSP2340A-BOに書込み、
という感じで良いのかな。
NSPPlayListEditorから出力するファイルは2つになりまして、
1つは再生用の音声データー、もう1つはNSP2340Aの設定データーです。
どちらも専用データーファイルなので、1つに纏めて出力して欲しいところですね。


NSPPlayListEditorを起動し、新規プロジェクトを作成します。
すると、以下の様なNSP2340Aの動作設定画面が出ます。






設定画面

 

 

 

 

 

 

NSP2340Aはソフト設定で諸々の機能を切り替える様になっています。
一件便利な様に感じますが、要注意点も存在します。
なんと外部との通信ポートの設定も含まれておりました。
AE-NSP2340A-BOはUSBシリアル変換器経由でパソコンと通信するので、
NSP2340AはUART通信の設定にする必要がありますが、
デフォルト設定はI2C等になっているので、設定変更する必要があります。
このデフォルト設定はセーブできない様なので、
新しいプロジェクトを作成する度、毎回この設定を行う必要あるのは、
少々不親切な気がしますね。

その他にも諸々の設定が存在するのですが、マニュアルを参照しないと理解が大変です。 
しかしマニュアルは中文か英文のみなので、結構辛い感じです。

更に言うと、NSPPlayListEditorはNSP2340A用アプリというわけではなく、
Nuvoton社製音声再生チップ全般向けのアプリになっています。
ですのでNSP2340Aにて不要な機能というのも含まれている模様。
場合によっては その辺りも把握する必要がありそうです。 

 

まぁなんとか設定を終わらせ、次は音声データーです。
ADSU01の時と異なり、NSPPlayListEditorはWAVデーターのみだそうです。
もし用意してるデーターがMP3だった場合、WAVに変換する手間が必要です。

そのWAVファイルを読込、そこから再生用データーを作成・・・・・・
するのですが、流れが良く分かりません(;;
小一時間格闘してみたのですが、結局出力することが出来ませんでした。 

ADSU01の場合も専用アプリを使うわけですが、書き込みデーターの生成から転送まで、
1つのアプリで完結している上、UIも非常に解り易くなってました。
再生データーの編集まで行うならば、マニュアルの参照が必要になるでしょうけれど、
単に書込転送だけで構わないのであれば、マニュアル不要なレベル。

それに対してNSP2340Aは機能が豊富な点は否定しませんが、
NSPPlayListEditorのUIが難解で、マニュアルの理解が必須です。

案件で必要という場合には更に手間をかけるのは構わないのですが、
単なる評価実験という立場では、ここで一旦保留かなと。

後日、時間的な余裕があるとき、再チャレンジしてみるつもりです。 

 

ただ今回いろいろ調べて気づいたのですが、
複数の音声データー再生に対応している模様です。
ADSU01では上限4つでしたが、NSP2340Aでは上限数は遥かに多い模様。
(もちろんメモリー容量による制限は存在するわけですが)

とは言え、複数の音声データー再生を行うにはシリアル通信制御が必須です。
制御で使うシリアル通信線は再生データーの書き込みにも使わなきゃならないので、
回路構成も含め、お手軽さには欠ける印象が強いですね。


更に後になって気付いたのですが、もしかしたら私の解釈が間違っているかも??
NSPPlayListEditorで2種類のファイルを生成しNuISP UARTにて書込むのではなく、
NSPPlayListEditor上からNSP-1-WTR経由で書き込む仕様かも??

NSP-1-WTRというのはNSPシリーズIC用の純正プログラマーです。
USBでパソコンと接続し、NSPシリーズの各種チップへ書き込みする為のアダプター。 

もしこれが必須だとすると、ちょっとお試ししてみたいと思っただけでも、
6800円もの出費が必要となってしまうので、一気にハードルが上昇します。 

NuISP UART様の書込みファイル作成方法を見つけたいところです。 

2026年2月15日日曜日

音声再生モジュール

 サンプリングした音声を再生する基板モジュールの話。

最近、某所向けにADSU01という再生モジュールに手を出していました。
これはビット・トレード・ワン様が販売している物です。
組込み用途を意識した設計になっているので、
そういう方面に使うには非常に使い易い設計になっています。


最近気づいたのですが、秋月電子さんが昨年の11月に、
似たような用途向けの基板を出しておりました。
AE-NSP2340A-BOという製品なのですが、
Nuvoton社製のNSP2340Aという石を使用した代物です。

このNSP2340Aという石は音声再生用に作られた物なので、
こういう用途にはピッタリ、のはずなのですが、
実際のところ、ADSU01とAE-NSP2340A-BOでは
機能的な差異が生じております。

この差について書いてみますね。 
なお、現時点でAE-NSP2340A-BOが手元に無い為、
資料を元に話をしている点にご留意ください。

 

さてでは早速、まず電源についての比較。

ADSU01は5Vオンリーに対し、AE-NSP2340A-BOは2~5.5V。
電源電圧の幅広さはAE-NSP2340A-BOの勝ちですね。

 

再生データーについて比較。
ADSU01は合計約90秒のデーターを4種類まで持てます。
これは実装しているフラッシュメモリーの容量に依存している模様。
特注で大容量メモリー版を作って貰えば更に時間を延ばせるのかもしれませんが、
通常市販している製品は上記の仕様となっています。
サンプリング周波数は約40KHzとなっていますが、
実際に聞いた感じだと高音域がかなりカットされています。
たぶん10KHz辺りでも かなりカットされているっぽい印象です。

AE-NSP2340A-BOではサンプリング周波数が選択できる模様。
もしかしたら音質はADSU01より良い可能性がありますが、
まだ実物を聴いていないので断言は出来ないところです。
音声のデーターは1つのみです。
ですので、ADSU01のように複数の音声を流したい場合には、
AE-NSP2340A-BOを複数用意するという形になるでしょう。
ただメモリー容量は こちらの方が圧倒的に多い様なので、
AE-NSP2340A-BOの方が長時間再生できる様です。

 

音声出力端子はADSU01ではハイインピーダンス出力に対し、
AE-NSP2340A-BOはスピーカー出力となっています。
ADSU01は何かしらのアンプを繋げる必要があるわけですが、
AE-NSP2340A-BOではスピーカーが直結できるわけです。
もっとも数百mW程度の出力なので、ヘッドホン程度ならともかく、
そこそこの音量で鳴らしたければ、外付けアンプが必要になりますし、
そもそも基板上にボリュームも無いので、直結使用は無理があるかと。

以上から音声出力端子については実用上の差は無いと思われます。

 

外観について

ADSU01は600mil幅20Pソケットに合うような端子配列です。
横幅は取りますが、ホールドの安定感はありますね。

AE-NSP2340A-BOは2.54mmピッチの7ピン1列配列。
L型のピンヘッダーコネクターと組み合わせることで基板を立てて実装できるので、
コンパクトに纏めることが出来ますね。
振動が多いような条件下では対策が必要になると思いますが、
AE-NSP2340A-BOの方が実装スペース的に勝ちかな。

 

次にインターフェースの比較。

ADSU01は単純な接点入力になっています。
再生開始端子をGNDに繋ぐと再生スタートします。
ADSU01では4種類の音声までサポート可能ですので、
再生開始端子も1から4まで存在します。
再生の強制停止端子も存在してて、これもGNDに繋ぐと再生が停止します。
このように全ての端子がGNDへの接続で機能することから、
スイッチを直結するだけで簡単に動かせます。
組込み用途としては非常に楽ですね。
上記入力端子の他に「STATUS」という出力端子が存在していまして、
これはいずれかの音声が再生中にハイになるというもの。
これも実は便利な機能なんですね。

対するAE-NSP2340A-BOはシリアル信号制御です。 
NSR2340A自体はI2C等、複数のシリアルI/Fを選択できるようですが、
AE-NSP2340A-BOでは非同期シリアルになっています。
C-MOSレベル信号ですので、PCと接続する場合には変換器が必要です。
扱える音声データーは1つにも関わらず、
鳴らす場合にはシリアルコマンド制御が必要という点で、
通常だとこの基板を実働させるには少々部品が必要となってきます。
設定によっては電源投入直後もしくはリセット直後にに音声を再生させる、
という動作も可能な模様。
これを使い、リセット信号で再生スタートさせる、という使い方が一番簡単かも。
ただ再生を強制停止させる事や、モジュールが再生動作中ということを
外部で知る事が出来ないという点について、ADSU01の方が勝ちですね。

 

次は再生データーの書き込みについて。

どちらも専用ソフトがリリースされており、
Windowsパソコン上で再生させたいデーターを加工し、
基板に書込みという流れになっています。

ADSU01もAE-NSP2340A-BOも、どちらも再生モジュールですので、 
この基板を使って音声を録音する機能はありません。
再生データーはWAVデーター等で予め用意する必要があります。

ADSU01はUSBインターフェースを装備しているので、
これを使ってパソコンに繋ぎます。
コネクターがmini-Bなので、ケーブルを持っていない場合は
改めて購入する必要がありますね。

AE-NSP2340A-BOは前述の通りシリアルポートしかない為、
なんらかの変換機を通してパソコンと繋ぐ必要があります。 
秋月さんではAE-CH9102F-TYPEC-BO等を奨めてる模様。
直結可能な点でADSU01の方が扱いやすいですね。


最後に資料についてです。

ADSU01は完全に国内メーカー品なので、全ての資料が日本語。

それに対しAE-NSP2340A-BOは、この基板自体は秋月電子製ですので、
ある程度の内容までは日本語になっています。
しかしシリアル通信のコマンド等、NSP2340Aの詳細に関わる部分は、
Nuvoton社の資料を参照する必要があるのですが、
これについては日本語化されておりません。
その為、中文か英文のマニュアルを読む必要が発生します。 

 

という感じでして、近日中にAE-NSP2340A-BOを入手して試してみる予定ですが、
再生時間以外はADSU01の方が利点多い感じなんですね。
ただ、単価が6倍以上違うという点がネックになるかも?? 

2026年1月30日金曜日

フラックスによる白濁汚れ

 ハンダごてによる手ハンダ時、ヒュームによる白い汚れが基板に残る事がありませんか?
これは使用しているハンダに含有しているフラックスの量や種類に依存します。 

ですので必ず問題になる、というわけではありませんが、
使用するハンダによっては 結構やっかいな状況になる場合があります。

ヒュームによる白濁はフラックスそのものですので、
RMAハンダを使っている場合はそのままでも特に支障はありません。

従来の要洗浄ハンダでは基板洗浄時に この汚れも落ちていましたので
問題にならなかったわけですが、昨今は無洗浄ハンダが主流ですので、
こういう問題が出てくるようになったわけです。

先に書いた様に、白濁汚れが付いていたところで、
基板的には問題が無いわけですが、問題になるとすれば見た目、
これ問題になる場合は白濁汚れに対処する必要があります。

では皆さん、その際にどうされていますか? 

一番簡単な方法は洗浄する事ですね。
フラックスクリーナーで基板を洗えばいいわけです。

ところが、これには1つ、大きな懸念点があります。
ハンダが露出してしまうという事です。 

RMAハンダでハンダ付けした状態ではハンダはフラックスで覆われています。
非常に薄い被膜ですので、絶縁性等は望めませんが、
ウィスカの発生抑制には効果を発揮してくれます。

ウィスカ対策は鉛フリーハンダでは結構重要な問題ですので、
フラックスを除去してしまった場合は、
代わりにコーディング材を塗布する必要が出てきます。

手間と費用が増えるばかりで良いことがありませんね。

 

実は簡単な白濁汚れ対処法があるのです。

それは、ヒートガンによる加熱

下の写真2枚をご覧ください。 


 

 

 

ハンダ付け直後

 

 

 

 

  

 

 

 

 ヒートガン加熱後
(手前側に白く見えるのは
フラックスに反射している照明です)


 

 

    

いかがでしょうか?

よーく見ると、白濁汚れの跡が残っている様にも見えますが、
これなら特に問題無いレベルでしょう。
洗浄で除去しているわけではないので、痕跡が残るのは仕方ないわけです。 

白濁汚れはヒュームが基板に付着したものです。
ヒュームが蒸発したフラックスですが、本来はほぼ透明。
しかし煙の状態で基板面に付着すると発泡状態の様な感じになる為、
白く濁って見えるわけです。

ヒートガンで加熱するとヒュームが溶けて液状のフラックスに戻るので、
白濁が無くなって ほぼ透明に戻る、という仕組みです。 

これですとフラックスはハンダ上に残ったままなので、
除去に伴う弊害も発生しませんし、見た目も改善されると、一石二鳥です。

なお、フラックスを溶かす必要ありますので、ドライヤーでは温度的に無理です。
数百度の温風が出るヒートガンが必要です。 

2026年1月25日日曜日

PIC12F1840とPIC16F18313の比較

8ピンのPICマイコンである、PIC12F1840PIC16F18313を比較します。
自分用の忘備録も兼ねてます。

12F1840は登場してから そこそこ経過しておりますが、
8ピンのPICマイコンとして割と中身が充実していたので、
ベストセラーの1つと言えると思います。

12F1840の完成度が高かったせいなのか、
その後しばらく、8ピンの高機能PICマイコンがお目見えしませんでしたが、
ついに登場した製品が16F18313というわけです。

片や「12F」で、片や「16F」という名称の違いがありますが、
マイクロチップの命名ルールが変わったことに起因しているもので、
12F1840と16F18313は同列に考えて頂いて問題ありません。

 

まず、サクッと違いを纏めてみた表が以下です。 


 

 

 

 

 

 

 

 

 

 

 

あまり細かい内容を詰め込むと見づらくなってしまうので、
参考にできる範囲で 割と簡素にしてみました。

改めて見てみると、12F1840の完成度の高さを実感しますね。
割と最近の石である16F18313に対し、基本的な部分のスペックで引けを取りません。

プログラムメモリーは16F18313の方が僅かに少ないのですが、
8ピンのPICマイコンでこの容量を使い切るケースは少ないのでは?
そう考えると この差は大した問題ではないと思われます。

16F18313は16F18300シリーズですので、周辺機能は充実さは素晴らしいところ。 
8ピンのPICマイコンに こんなにも必要なのか?という疑問も感じますが、
まぁ無いよりは有った方がベターですね。

 

それでは差について、もう少し説明していきましょう。

1.TMR0について 

TMR0は古のPICマイコンから搭載されている、もっとも基本的なタイマーです。
12F1840は従来通りのTMR0を搭載しておりましたが、
16F18313では16ビット動作可能な、拡張版のTMR0を搭載してます。 

2.コンパレーター・PWM等について

表では解釈が紛らわしいかもと思い、補足の意味で記載いたします。 

12F1840ではコンパレーターが1つと、ECCPが1つ搭載されています。
ECCPは拡張版CCPですので、キャプチャー・コンパレーター・PWMの、
どれか1つの機能を選択して使用可能です。

12F18313ではCCPだけで2つ存在する他に、
コンパレーターとPWMがそれぞれ2つ搭載されています。
8ピンパッケージでは積みすぎですよね(笑) 

3.外部I/Oピンの入れ替え機能について

周辺機能とパッケージ外部のピンとの接続ですが、
12F1840ではAFPCONというレジスタの設定により、
極一部の周辺機能についてのみ、ピンの割り当て選択が可能ですが、
自由度がとても低い為、事実上回路設計段階の考慮が必要という代物です。

それに対し16F18313では「PPS」という割り当て変更システムを搭載してます。
これによりほとんどの周辺機能ピンを自由に割り当てる事が出来ます。
(ICSPで使うピンは変更できませんが) 
これだけ自由度が高いと、回路設計の柔軟性が高まりますね。

4.データーEEPROMについて

EEPROMという名称が使用されておりますが、
実際には搭載されているフラッシュメモリーの一部です。
最近のPICでは「NVM」という呼び方に変わってきております。
表の通り、容量等に変化はない様に見受けられますが、
アクセスに関する仕様が変更となってます。

従来のデーターEEPROMには絶対値アドレスとも言うべき値が存在してました。
具体的には12F1840ならば0xF000~0xF0FF領域です。
これにより、以下の例の様にソースコード上に記載する事が可能になります。

DATAEE    ORG  0xF000
    DE    "Hello World"

すると、FLASHメモリーへの書き込み時に、
データーEEPROMへ"Hello World"という文字列も同時に書込んでくれます。 

これは結構便利な機能だったのですが、最近のPICマイコンでは使えなくなりました。
なぜならば絶対値アドレスが無くなり、NVM Control レジスタ経由でしか
アクセスできない仕様になったからです。

代替案としては、PICマイコンのブート後のイニシャライズ段階にて、
NVM Control レジスタを使用して"Hello World"を書き込むという手があります。
しかしNVM Control レジスタ経由では1byteずつしか書けませんので、
従来であればたった2行で済んだものが、数十行のコードになってしまうのは、
なんともスマートではありませんし、
PICがブートする度にデーターEEPROMへ書き込むというのも違和感を覚えます。

今後の改善を期待したいところですね。 

5.I/Oポートの機能設定について

16F18313ではI/Oポートについての機能が拡張されました。
具体的には以下の3つの設定レジスタが追加されてます。
  INLVLA
  SLRCONA
  ODCONA

INLVLAはデジタル入力ポートとして使用時のスレッショルドレベルの設定です。
TTLレベルかシュミットトリガ―レベルを選択できます。
通常はシュミットトリガ―レベルの方が好ましいわけですが、
CMOSレベルの電圧域となる為、入力信号の電圧レベルを考慮する必要があります。
どちらの設定でも、実際の閾値電圧は電源電圧に依存します。
具体的な値を知りたい場合はデーターシートを参照してください。

SLRCONAはデジタル入力ポートのスルーレート設定です。 
スルーレート制限無し設定が、通常のデジタル入力状態です。
CMOSデバイスの特性上、実際の入力レスポンスは電源電圧に依存します。
スルーレート制限有りにした場合の具体的な差ですが、
データーシートを見た感じ4000番シリーズCMOSロジック位でしょうか。
数十nsオーダーの話なので、ものすごくブロードな特性になるわけではありません。

ODCONAレジスタはデジタル出力のタイプ設定です。
これにより、従来と同じトーテムポール出力タイプの他、
オープンドレイン出力タイプも選ぶことが出来るようになりました。
通常のデジタルロジック回路ではトーテムポール出力での使用が多いと思いますが、
繋ぐ回路構成によっては電流引き込みで駆動したいというケースも有り、
そういう時はトランジスターなどを噛ませる等で対処していました。
これらが直結で済ませられる様になり、回路が簡素化できます。
また、不要な出力ポートもオープンドレイン出力に設定しておくことで、
不用意にHレベル電圧が出力されてコンフリクトを起こす事も予防できます。
この様にオープンドレイン出力機能は結構重宝すると思われます。

 6.その他

容量センシングモジュールとSRラッチについては12F1840のみの搭載。
対して、CWG・NCO・CLCは16F18313のみ搭載してます。 

周辺モジュールの供給電力を個別に制御する「PMD」機能も、16F18313のみの搭載。 
もっとも、そもそもPICマイコンはかなり低消費電力ですので、
PMD機能が必須となる場面は少ないかもしれません。

あと、内蔵発振器の1つである「MFINTOSC」についてですが、
12F1840には存在しているのものの16F18313には存在しません。
これは機能削減ではなく、不要になったので削除したと見るのが正解でしょう。
HFINTOSCから生成できる周波数バリエーションが、
MFINTOSCをカバーできてしまうからです。 
ですのでMFINTOSCの削除はなんらマイナスポイントになっておりません。 

 

以上の様な感じで、おおまかな違いはご理解頂けると思います。
上記以外でも各周辺機能モジュールについて、
16F18313で少々機能拡張されてる場合がありますが、
その点については逐次確認をお願い申し上げます。 

2026年1月24日土曜日

多機能化の弊害

 PIC16F1823用のプログラムをPIC16F18424へ移植した際の話です。

 桁が1つ増えてるくらい、16F18424は かなり世代の新しい強力な石です。
16F1823でも実用上は問題無いプログラムが書けたのですが、
後々の拡張性等を考慮し、16F18424へ移植して見る事を考えた次第。

 

この移植のメリットは大まかに以下の2つ。

1、Foscの高速化

  16F1823ではタイマーに使うクロック源のバリエーションが少ないため、
  長時間のタイマーが欲しい場合はFoscの周波数を抑えるしかありません。
  すると当然ながら、各命令の処理速度も落ちてしまうわけですね。 

  16F18424ではタイマーへ低速のクロックを割り当てる事が可能なので、
  Fosc周波数を抑える必要が無くなります。
  常に最高速度である32MHzで回す必要はありませんが、
  そこそこの速度にしておくと処理に余裕が出来て好ましいです。

2、オープントレイン出力

  16F1823のI/O出力はトーテムポール出力のみです。
  それ自体がデメリットというわけてはなく、
  適切に設計されていれば通常問題になるわけではありません。

  16F18424ではオープンドレイン出力に設定することが可能です。
  今回の回路では十分大きなプルアップ抵抗が存在し、
  立下りタイミングが動作関与する為、オープンドレインで事足ります。

  もちろんこの場合でもトーテムポール出力で支障が出るわけではありません。

  ただ、何らかの原因で誤動作が発生した際、
  オープンドレイン出力ならばコンフリクト発生を回避できる可能性があります。
  そういう意味で、問題無ければオープンドレイン出力を利用した方が安全。

  そんなわけで、出力ポートを全てオープンドレイン化したのでした。

 

さて実際の移植ですが、アルゴリズム的には変更不要です。
手を加えなければならないのはバンク指定。 

16F18424は非常に機能が増えた分、レジスタもガッツリ増大しております。
PICの仕様上、1つのバンクに納められるレジスタ数には限界がある為、
レジスタ数が増えたならバンクを増やして対応することになります。

16F1823では7つ程度だったバンクが、16F18424では約20個に増えてます。
単に増えたのみならず、レジスタの配置を大幅に変更されているんですね。
ですのでレジスタへアクセスする箇所で、
切り替えるバンクを全て確認/変更しなければなりません。

実はこれが かなり厄介。
16F18424ではバンクへの配置が かなり散らばったんですね。
16F1823では同一バンクに有ったものが、16F18424では別バンクに、
というケースが非常に多かった為、バンク切替が多発する事に。

すると当然ながらバンク切替の命令が増えるのでコードが長くなっちゃいます。
バンク指定のミスというバグの発生確率も上がるので、
バンク切替が多発するというのは 個人的に好ましく思いません。
(そういう意味で、多機能の石は18Fシリーズを使うべきかも)

 

というわけで、必ずしも最近の機能の石に置き換えるのがベスト、
とは言えないケースがあるという話でした。