Top > SkyWiRES > PCインタフェース回路

SkyWiRES/PCインタフェース回路

概要

SkyWiRESを実現するためのインタフェースを紹介する。これは、MsFB/ToneDecoderを使わない方法として有効な手段である。

新着情報

  • 回路図Ver1.02を公開しました。SkyWiRES ONAIR中に自ノードトランシーバを送信状態にする事ができます。PICのソフトウェアは Ver1.01 にアップデートされています。(2010/2/27)

回路図

  • 回路図データ &ref(): File not found: "SkyWiRES_v102.CE3" at page "SkyWiRES/PCインタフェース回路";

&ref(): File not found: "SkyWiRES_v102.PNG" at page "SkyWiRES/PCインタフェース回路";

部品一覧

  • 基板はうちにありそうだったので、それをカットして使うことにしました。無ければ共立エレショップから100円ぐらいで購入できます。例えば ICB-288 あたりではどうでしょう。
    D-Sub9ピンの半田付けが苦手な方は、以下のようにストレートケーブルを購入してケーブルをちょん切って使うと良いです。
  • 全て共立エレショップで購入しました! 1000円以下で納まりそう。
    &ref(): File not found: "SkyWiRES_Parts_00.PNG" at page "SkyWiRES/PCインタフェース回路";

マイコンソフトウェア

こんな単純な回路で単純な動作なのに、どうしてマイコンを使うんだ? と思われてしまいがちだが、将来の拡張性を考え、PICマイコンを使用することにした。これは100円程度で入手することが出来る。DIP8ピンのちいさなものなので、D-SUB9シェルの中に納まりそうな感じ。

  • Hexファイルダウンロード
    PICライターをお持ちの方はこのファイルをダウンロードして書き込めばOK
    &ref(): File not found: "SkyWiRESIF_v101.hex" at page "SkyWiRES/PCインタフェース回路";(PIC12F675)
  • コンパイル環境一式ダウンロード
    色々といじくりたい人はこちらをダウンロード
    &ref(): File not found: "SkyWiRES_v101.zip" at page "SkyWiRES/PCインタフェース回路";(PIC12F675)
  • コンパイラー
    Hitech PICC LITEHI-TECH C Compiler for PIC10/12/16 MCUs - Lite mode v9.70 あたりでOK牧場だとおもいます。
  • ソースコードはとっても単純!動作確認完了!
    Everything is expanded.Everything is shortened.
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
    
     
     
     
     
     
     
     
     
     
     
     
     
     
    -
    |
    |
    |
    |
    |
    |
    |
    |
    |
    |
    |
    |
    |
    |
    |
    |
    |
    |
    |
    |
    -
    |
    |
    -
    |
    |
    |
    |
    |
    |
    |
    |
    !
    -
    |
    |
    |
    |
    |
    |
    |
    -
    |
    |
    !
    -
    |
    |
    !
    !
    !
    !
    
    #include    <pic.h>  /// pic12f6x.h
     
    /// コードプロテクト無し
    /// MCLRピンをGP3ピンとして使用する。
    /// パワーアップタイマーを使用する。電源投入後 約72msリセットがかかる。
    /// ウォッチドックタイマーを使用しない。
    /// 発振モード INTIO(内臓4MHzクロックを使用する。)
    __CONFIG(UNPROTECT & MCLRDIS & PWRTEN & WDTDIS & INTIO);
     
    /// 16進数4桁
    __IDLOC(0000);
     
    void main()
    {
        /// 内臓発振子のCALデータ設定読み出し。
        OSCCAL = _READ_OSCCAL_DATA();
        
        /// GPIO初期化
        GPIO = 0x00;
        
        /// デジタルIOモードにする。
        ANSEL=0x00;
        /// コンパレータOFF
        CMCON=0x07;
        
        /// IOポートの信号方向設定
        /// GP0: Input
        /// GP1: Input
        /// GP2: Output
        /// GP3: Input
        /// GP4: Input
        /// GP5: Output
        TRISIO = 0x1A;// b0001 1010;
        
        while(1) {
            /// GPIO4のレベルをチェックする。
            /// GPIO4はPCからの送信要求を意味し、SkyWiRES PTTを押している状態の時にHIになります。
            if (GPIO4) {
                /// GPIO4 = HIの場合
                /// SkyWiRES 送信要求が検出されているので、
                /// 強制的に論理を切り替えます。
                GPIO2 = GPIO1;
                
                /// 強制的に無線機を送信状態にします。
                GPIO5 = 1;
                
            }
            else {
                /// GPIO4 = LOの場合
                /// 無線機からのスケルチ信号をそのまま出力します。
                GPIO2 = GPIO3;
                
                /// HRI-100からきたPTT信号をそのままPTT出力に出力します。
                /// しかし、外付けでトランジスタが入っている場合には論理が反転するので、
                /// ここで反転した論理を出力します。
                if (GPIO0) {
                    /// GPIO0 = HI ならば、GPIO5 に LOを出力します。
                    GPIO5 = 0;
                }
                else {
                    /// GPIO0 = LO ならば、GPIO5 に HIを出力します。
                    GPIO5 = 1;
                }
            }
        }
    }

3.3V化できるかどうか調査

  • PIC12F675_DataSheet
  • PICマイコンの電気的特性
    • PIC12F629,12F675 の電気特性

      VOH 内部で High (1)を出力したときの電圧 Vdd - 0.7V 以上 を出力
      IOH High (1)を出力したときに流れ出る電流 25mA 以下
      VOL 内部で Low (0)を出力したときの電圧 0.6V 以下 を出力
      IOL Low (0)を出力したときに流れ込む電流 -25mA 以下
      Vdd=3.3Vとしたら、VOHは3.3V-0.7V=2.6Vになってしまう。しかし、これは電流をガンガンに流したときの話だとおもうので、実際にはこんなに電圧のドロップはないんじゃないかなー。

  • HRI-100のSQL端子入力特性

    0--->2.99V(ここでHI認識)-->5V->1.65V(ここでLO認識)-->0V

  • インタフェース電圧の考察
    • HIと認識するためには、2.99V以上の電圧が必要になる。もしPICの出力電圧が上記のように2.6Vまでドロップしてしまったとするなら、Hiが受け取れなくなる。たいした電流を流さないのであれば大丈夫なんじゃないかなぁ。保障外の電圧だなぁ。駄目かぁ。
    • LOと認識するためには、1.65V以下の電圧が必要になる。PICの出力電圧は0.6V以下なので問題なし。

どぞー♪

  • まだ動作確認はしていないけれども。こんな雰囲気でどうだべさ?^^;; -- JM7MUU 本田 2010-02-06 (土) 05:51:15
  • 雰囲気は、いいと思うよ。下手にトランジスタでロジックを組むよりスマート。拡張性もOK牧場。 本田さんのコンパイラは何を使っているの? それだけ本文に書いてくださいませ。 -- 小林@jr7ovc/1 2010-02-07 (日) 07:45:29
  • Hitech PICC LITEHI-TECH C Compiler for PIC10/12/16 MCUs - Lite mode v9.70 あたりでOK牧場だとおもいます。 -- JM7MUU 本田 2010-02-08 (月) 05:55:03
  • 上記回路図は 5Vで作ったけれども、5.1Vのツエナーダイオードってなかなか品薄。そういえば、3.3Vでもマイコンは動くなぁ。HRI-100のSQL端子は 3.3V の電圧で動くかなぁ。動けば 3.3Vに変更しようかなー。 -- JM7MUU 本田 2010-02-08 (月) 15:28:36
  • 3.3V化できないかなーと思ったけれども、I/F上問題になりそうねぇ^^;;; 5vのままで行くか! -- JM7MUU 本田 2010-02-09 (火) 06:16:15
  • RS232Cのハードウェア規格 -- JM7MUU 本田 2010-02-09 (火) 18:19:56
  • 動作確認ができましたので、回路図やマイコンソフトをアップします。もっとかっこいいソフトを書けない事も無いけれども、まぁいっか^^ IOポート入力レベル変化割り込みをつかうという手もあるねー。面倒だからやってないけれども^^;;;;; -- JM7MUU 本田 &new([nodate]){date}: Invalid date string;
  • そういえば、PICのVCCに 負電圧がかかる状態になるねー。自分の実験ではダイオードを入れて負電圧がかからないように細工したなぁ。上記の回路図も入れておこうかな。 -- JM7MUU 本田 &new([nodate]){date}: Invalid date string;
  • シリコンダイオードは約0.6Vの順方向電圧だすー。 -- JM7MUU 本田 &new([nodate]){date}: Invalid date string;
  • ツェナーダイオード 0.5W 5.6V[R指] / HZ6 A3 (-) これをつかって、その後にシリコンダイオードで0.6Vダウン=VCC5Vになるねー。そのほうが安心だなぁ。 -- JM7MUU 本田 &new([nodate]){date}: Invalid date string;
  • ということで、V1.01をアップしました! -- JM7MUU 本田 &new([nodate]){date}: Invalid date string;
  • 回路図Ver1.02 で SkyWiRES 通話中も 自ノード無線機が送信状態となります。しかし、通常のWiRES-II ノード接続では無変調になります。 -- JM7MUU 本田 2010-03-04 (木) 15:37:40
  • これはHRI-100が INTERNET状態の時には 音声の流れを RF->Net(PC)側に制限しているためで、PC->RFへ信号が流れるようにしてあげる事が必要です。 -- JM7MUU 本田 2010-03-04 (木) 15:37:40
  • HRI-100のSQL端子はBUSY_LOWなら、オープンコレクタ(ドレイン)で駆動可能、PTTも同じ、駆動回路(マイコン)がONに出来れば3Vでも12Vでも大丈夫のはず。 -- 7M1RUL利根川 2010-03-04 (木) 19:42:35
  • 部品、増えちゃうけど。PICのポートでオープンタイプの設定があれば....。GNDに落とすだけなので。 -- 7M1RUL利根川 2010-03-04 (木) 19:45:46
  • ↑で「PTTと同じ回路」に訂正。1815の回路がSQLでも使えますよ。BUSY_LOWなら。 -- 7M1RUL利根川 2010-03-04 (木) 19:52:20
  • オープンドレインの件了解。PTTはローアクティブでOKなんだけれども、SQLは色々だから参っちゃいます。 -- JM7MUU 本田 2010-03-05 (金) 03:34:17
  • SQLは色々なので自作装置側は「両対応」にして置いて、出力はアクティブローに私は統一してます -- 7M1RUL 利根川 2010-03-05 (金) 08:30:19

Reload     Front page List of pages Search Recent changes Backup   Help   RSS of recent changes
Last-modified: Tue, 27 Dec 2016 19:33:24 JST (811d)