Vol.952 25.Sep.2026

APN設定 エクセルで文字を検索 CLB)3桁7segLED表示

A APN設定   〜スマホの機種変更時に注意

by TMX

 最近、「スマホの各アプリがサポートを終了します」というメッセージが頻繁に出るようになりました。
 発売してから9年になる私の携帯電話(iPhonX)、今月は新しいiPhon18が発表・発売されるのに合わせて機種変更することにしました。
 いろいろと調べていくと、私が使っているプロバイダーはeSIMには対応していない・・・という事で、iPhon16を購入することにしました。
 データー移行はスマホ2台を隣りに並べ、Wi-Fiで壁紙やアプリの配置までそのまま移行できるそうです。しかし、Suicaの移行は問題なく出来るのに、銀行口座のアプリや認証IDやパスワードが必要なアプリは、改めて再設定が必要でした。データー移行はやはり厄介な作業です。
 さて今回の引越では、電話は繋がるが、データー通信が不可になり、焦りました。
 格安プロバイダーを使っている私にとって、前の機種ではSIMの差し替えで終わりましたが、「データー通信機能が起動できません。pdp認証に失敗しました」とメッセージが出ました。原因はAPN(Access Point Name)設定で、APN構成プロファイルのインストールが必要でした(前回は自動でAPN設定をしてくれたみたい)。
 Auやドコモなど大手携帯(MNO)4社は自動でAPN設定を自動でしてくれるみたいですが、格安SIM(MVNO)、SIMフリー、中古スマホや海外SIMなどはAPN設定が必要なので、機種変更、買い換え時には注意しましょう!

<参考>
  ・APN設定とは?必要なケースと設定手順


E エクセルで文字や値を検索

by fjk

Excelで特定の文字を含むデータや数式を探すには、「検索ボックス」が便利です(参考)。

  1.  ctrl+Fで「検索と置換」ダイヤログを開く
  2. 「検索する文字列」に探したい文字や数値を入力(*や?のワイルドカードも使えます)
  3. 「全てを検索」または「次を検索」をクリック
  4.  検索結果をクリックすると、そのセルに移動できる
     
    <オプション>
    �@検索場所:  シート/ブック
    �A検索方向:  行/列
    �B検索対象:  数式/値/コメント
    <その他>
    ・大文字と小文字を区別する/しない
    ・セル内容と完全一致する/しない
    ・半角と全角を区別する/しない


Excelの検索ボックス

※検索ボックス以外に、抽出や関数を使う方法もあります(参考)


P PIC16F13145 (9)   〜CLBで3桁7segLED表示とモジュール

by fjk

 abc950で小数点付2桁7segLED表示か可能となり、3桁のOSL30301-LRAが余ったので、CLB+CLC+TMR0で、3桁7segLEDのダイナミック表示を試みた。
 (TMR0でなく最終的にTMR2+PWM1を使用)

【ハード】
 LEDパターン表示用はRC0-6(CLB)[7ビット]、桁ドライブはRB4-6(CLC)を使用。


回路図

配線状況

【ソフト】
 <使用したMCCデバイス> (当初TMR0を使用しテストしたが、最終的には使用せず)

Clock:
32MHz、Divider=1
TMR2:
FOSC/4、Prescaler=1:128、Postscaler=1:16、Period=65.536ms
PWM1:
Timer2
CLC1-4:
CLC1(JK-FF with R)、CLC2-4(AND-OR)
CLB1:
Module(select3in、bcd7seg)


MCC

TMR2

<桁ドライブ信号>
 当初、3桁ドライブ信号をTMR0とCLC1-4で作製したところ、2桁用の信号しか作れなかった。
 その理由は、MCCでCLCの入力としてTMR0を使ったが、PIC16F13145のDataSheetで確認すると、このTMR0はTMR0_OverflowでDuty比が50%の信号ではなかった(abc950を参照)。
 そこで、CLCもCLBもフルに使っているので、PWM1でDuty比が50%の信号を作ることにした。
 PWM1で使用するタイマーはTMR2を選択し、TMR2のクロックソースはFOSC/4でpre/post_scalerは共に最大とし、Periodは65.636ms。
 (実際にオシロで確認するとPeriod=約4mSで、MCC画面でTMR2表示値の1/16)。


CLC1

CLC2

CLC3

CLC4

PWM1
 

桁ドライブ信号
(上からCLC1、CLC2、CLC3、CLC4)

<CLB設計>
 3桁のセグメント表示用BCDデータ(3x4)の振り分けに、標準付属のマルチプレクサを使用しても良いが、モジュールの作成練習を兼ねて「3入力セレクタ」(select3in.clb)を自作し、Moduleとして登録し、利用した。
 そして、abc949で使用した 7_segment_display_lut.clb も使って回路を設計し、synthesizeすると、「BLE容量不足エラー」となった(gate使用でも不足)。
 そこで、7_segment_display_lut.clb の使用をあきらめ、'0'〜'9'のみを表示することにし、「 Verilog Code for bcd7Seg Module」(Microchip)をダウンロードし、利用した。

<CLB モジュール>

●モジュール化
1.DocumentタブでNewschematicを選び、名前を付ける。
2.回路設計する(入出力ポートにはOff-SheetPortを選択し、名前も付ける)。
3.設計後、メインタブを選択すると、Moduleに追加され、使用可能となる。
 
●モジュールをライブラリーとして保存
・サブシートでモジュールを作成後、メインシートを削除。
・Documets/Savedesign as moduleでモジュールとして保存(zipファイルになる)
・説明文などをライブラリーに追加。
※詳細はCLBsynthesizer_User_Guideの「9.5 Creating a Library With Modules」を参照

select3in.clb

main.clb(▼main.zip)

【動作テスト】
 プログラムが起動すると、3桁の数値を7segLEDに表示し、数値は0.1秒ごとにカウントアップしていることが確認できた。
 なお、TMR2使用時はabc947で紹介したように、コンパイル時に「非推奨の・・」エラーがでるので、tmr2.hで警告・エラーのでる記述を全てコメントにすること!


3桁7seg表示例

▼abc952-13145.c(zip)

/**************************************
 *      7segDisplay  (3digit)
 **************************************/
#include <stdio.h>
#include <stdlib.h>
#include "mcc_generated_files/system/system.h"

//=====  4桁BCD変換関数 ==============
uint16_t bin2bcd(int d) {           // 最大9999まで(下位4桁)
    div_t    qr;
    int   i, bcd = 0;
    for ( i = 0; i < 4; ++i) {
      qr = div(d, 10);              // 商・余りを得る
      bcd += (qr.rem << (i * 4));   // i桁分左シフト後、加算
      d = qr.quot;
    }
    return (uint16_t)bcd;
}

//=======(main aplication)=============
int main(void) {
    uint16_t cnt = 0;
    uint16_t bcd;

    SYSTEM_Initialize();

    while(1) {
      cnt = 0;
      do{
        bcd = (uint16_t)bin2bcd((int)cnt++);
        CLB1_SWIN_Write16(bcd);     // BCD表示
        __delay_ms(100);            // カウント間隔
      }while(cnt < 1000);
    }    
}


【Synthesizeエラー!!】
 9月の中頃から、Synthesizeを実行すると、以下のメッセージが出て、Synthesizeできなくなった(Webでも実行できない)。

 そこで、マイクロチップジャパンの「技術問い合わせ」にメールすると,
 「Synthesizerサービス自体が現在正常に稼働していない」と回答があった。
 正常に戻るまで、使えないようだ。


※ 本レポートの参考・利用は、あくまでも自己責任でお願いします。


APN設定 エクセルで文字を検索 CLB)3桁7segLED表示