USBの話だけ聞きたい方は、こちらから、どうぞ。

晒せ、晒せってんだよポンコツが!

。。。どうも、リコピンです。
まあ、まだ寝てないんでぎりぎり25日、先日の更新からちょうど2週間ですね(白目)
さて、世間はクリスマスとかいう何からしいですが、今この瞬間までこのことについて触れなきゃいけないことを忘れてました。それくらい普段通りの生活を送っておりました。
クリスマスはさておき、皆さん、セールですよ!

Steamのウィンターセールですよ!!!やったぜ。

というわけで有り金全部溶かしました。


年明けにもあと数タイトル買うかもです。もうこれ、研究費用がなくなるの目に見えてますね。まあそんときはそんときです。

。。。そろそろ本題へ参りましょうか。

進捗報告セクション


USBとWi-fiもジュールについて調べてました。
それでUSB用に48MHzを生成しなくてはいけないことが判明して、かつシステムクロックは50MHzで動かしたいとなると、
発振器を外付けするなら20MHz一択になるということが判明しました。
はい。ということで秋月のこれを買うことにしました。
またRSで買うとなるとまた送料がついちゃうのでね。適当に買い物してはいけない(戒め)

あと、RSからPIC32MX570F512Lと使う予定だった50MHzの発振器が届きました。
強いpicと50MHz
発振器が使われる日は訪れるのだろうか。。。

あとはマルツで買ったwi-fiモジュール ESP-WROOM-02 にのってる ESP8266 のファームウェアを書き換える環境を整備したりしました。
まあ、詳しくはwi-fi関連のプログラミングをやるときに触れると思います。(いつになることやら)

で、今日USBの電源周りの回路図が(ほぼ)できました。ってかんじで進捗は(ほぼ)ないです。
来年の1月上旬まで休日なので、評価ボードのハードの設計だけでも終わらせたいです。

技術紹介セクション


今回はUSBのお話ですね。調べてわかったことの一部だけです。

What is USB


USBとは、Universal Serial Bus のことです。みんな知ってますね。
自分なんかだと、物心ついたころにはUSBが普及してたので、(それ以前のことは知ら)ないです。
で、USBにはホストとクライアントの概念があって、ホスト(PC)がクライアント(周辺機器)を統制してるっていうのが、USBのあれらしいです。プロトコル。

The Tale of USB Cable Types


USBにはいろいろ種類がありますよね。あれって調べてみると一つ一つ役割があったらしいんです。

Type-A : もっとも一般的な横長のPCの横とかについてるやつ。これがホストになるというか、ホスト側はType-Aって決まってるらしい。

Type-B: こっちがクライアント。Arduinoについてるほぼ正方形のやつですね。プリンターとかに使われてたらしいけど、Arduino以外で使われてるの、(見たこと)ないです。

Mini-A: みたことねぇ~ww欠陥品。なんか抜き差しできる回数少ないから使われなくなったとか。

Mini-B: Pickit 3 についてるやつ。Mini-Aの代替品らしいけど、MicroUSBの登場によりMiniUSBは死んだらしい。

Micro-A: こいつも死んだらしい。見たことないしね。

Micro-B: 携帯とかデジカメとか、小さいUSBは大概これだよね。一応Bだからクライアントなん”だけど”、OTGとかいうののおかげでホストにもなるんだなこれが。

だいたいこんな感じ。ようはAがホスト、Bがクライアント。
あ、PICで扱えるのはUSB 2.0までなので、これ以降はしらんな。(USB 3.0、Type-C、etc.)

USB On-The-Go & Embedded Host


ホストにはA、デバイスにはB。これがUSB規格の原則なわけですが、
例えばスマホとかタブレットなんかはPCとつないだらデバイスだけど、キーボードとか、USBメモリとかつないだ時はホストになります。
それじゃあどうすればいいの?どっちのコネクタつければいいのよ?
ってなった時に、組み込みホストとOTGが生まれたらしいです。

組み込みホストはAとB両方のコネクタを付けて、デバイスとしても、限定的なホストとしても動けるようにした規格らしいです。使う気がないので詳しくは知らないですけど、デジカメと専用プリンタ間の通信とかに使えるそうな。

OTGってのがデュアルロールデバイスとかいう何かで、スマホ同士を接続したときなんかにどうするかの規格です。(適当)
micro ABコネクタってのを使う(使ってた?)らしいんですが、最近はmicro-Bにホストケーブル(micro B - A)を付けてホストとして使うらしいです。
IDピンってのがあって、そいつがどこに繋がってるかで自分に刺さってるのがAなのかBなのかを判定してホストかデバイスになるようです。
ようはUSBホストケーブルを刺せばmicro-Bだけでもホストにもデバイスにもなれるいいやつですね。こいつに決めました。

というわけでmicro-B端子がつくことになりました。
PCにつなげばデバッグや通信、書き込みができて、かつ他のペリフェラルとUSBで通信できるっぽいので。

それでまあLow,Full,Highの転送速度があってかくかくしかじかです。
ソフト的な話はプログラム書くときにやります。ってか書くの疲れたんや。許してくれ。


。。。技術紹介ってなんだ(哲学)
ってか今回PIC32MX関係ないね。タイトル詐欺だよ、こんなの。

スポンサーサイト



top
どうも。留年しそうです。
さて、第一回ということで、今回は現状報告とこれから作っていく評価ボードの仕様(予定)についてgdgd書いていこうと思います。

進捗報告セクション


進捗はないです。っていっても始点を定めないと現状どこにいるかわからないのでまずは現状報告ですね。

現状は作ろうとしてる評価ボードの大体の仕様が定まって、一部の部品が届いたって感じです。
あとクレカゲットしましたよっと。そんな感じですね。
それで昨日PICと水晶発振器を発注しました。これから回路図と配線図を書いてプリント基板を発注する作業に入ります。

TADA、学業のほうがちょっとやばいです。留年しそう。
というわけで平日は勉強、週末に進捗ってかんじで生活していこうと思ってるので進捗が出るかどうか、非常に怪しいです。
ちょっと勉強さぼりすぎましたね。微積で赤点はまずいです。

技術紹介セクション


それでは評価ボードの仕様を発表しますね。

搭載機能

・wi-fi通信
・USB通信
・CAN通信
・シリアル通信
・マイクロSDカードスロット
・カメラ

ほぼ通信ですね。まあ、picの機能で遊ぶためのボードだからね。しょうがないね。
それでまあ、sdカードスロットがついてるのはそこからブートしたり、そこにデータ保管したりするためですね。
カメラは画像認識のためです。これを使う予定です。まあ、使うのは友人氏ですがね。
うん。これって仕様なんだろうか。まあいいや。

でまあ、エレクトリック方面についてですけど、

・電源はUSB給電 or GPIOからの給電
・クロック周波数は50MHz

ってかんじです。
最終的にこの評価ボードでロボコンの開発をしていこうと思ってるので、ポータブルにするつもりは今のところないんで電源は外部から調達します。
クロックは水晶発振器に頼ります。RSにあったMercuryさんの 3H32ET-50.000 を使おうかと思ってます。
恥ずかしながら今までずっと内部クロックを使ってたせいで、水晶を使ったことがなくて困ってたんですが、便利なものがありますねー。
電源つなぐだけで魔法のように50MHzが出てきてしかも 1pin をLにすればクロック停止することもできるという。いいっすねー。

ででで、PIC32MXシリーズの型番の読み方について。あらかじめ言っとくとこれは PIC32MX 1XX 2XX 5XX シリーズ共通のデータシートの日本語訳です。ほかのシリーズについては自分で調べてね。

PIC32MX型番

こんな構造になってます。詳細は以下の通り。

製品群: 1XX 汎用 マイコンファミリ /  2XX USB マイコンファミリ / 5XX USB & CAN マイコンファミリ

フラッシュメモリタイプ: F プログラムメモリはフラッシュメモリですよ。

プログラムメモリ容量:  064 64KB / 128 128KB / 256 256KB /  512 512KB

ピン数: H 64pin / L 100pin

クロック周波数: (空白) 40MHz / 50 50MHz

動作温度範囲: I  -40℃ ~ 80℃ / V -40℃ ~ 105℃

パッケージ: PT 64ピン (10x10x1 mm) TQFP / PT 100ピン (12x12x1 mm) TQFP / PF 100ピン (14x14x1 mm) TQFP / MR 64ピン (9x9x0.9 mm) QFN

パターン: ES エンジニアリングサンプル

例えば PIC32MX570F512L-50I/PF は USB & CAN付きのPIC32MX シリーズ、 512KBフラッシュメモリ搭載、100pin、動作温度範囲-40℃ ~ 80℃、100pin(14x14x1 mm) TQFP モデルとなります。

それではまた次回。

top
どうも。トマト大佐です。今日で当ブログは3周年ですね。忘れかけてました。
ついでに誕生日らしいです。昨日言われて気づきました。どうでもいいですね。

前回言った通り例年n周年記事的な何かをあげてるので見返してきました。
うん。やっぱりブログって黒歴史の寄せ集めなんだなって思いました(小並感)
まあ、だからと言って記事を消そうとはしませんけどね。いや消したいけど。
というのも、いまちょうど 英語力(笑い) の壁にぶち当たってるんですが、2年前の記事で
 「英語版のブログ作る!」
とか言っときながら何にもしてなかったりするんですよ。
結構過去の遺産って残しておけば役にたったりするかも?

さて、本題ですが予告通り、今回から強いPICについての記事になります。
まあ、今回は第0回ということで前置き記事的な何かになります。

まずは更新頻度について。
一応このシリーズのメインの目的は (自分の)進捗を生産すること なので※前回の記事参照。更新頻度は2週間に一回以上になるようにします。
進捗が2週間以上確認できなかったら青い小鳥であおって来ていただいて結構です。というか煽って来てくださいお願いします!なんでもしませんから。

そういえば今回のシリーズで扱うのはこちらの PIC32MX570F512L になります。
でもデータシートはPICMX1xxシリーズ、PICMX2xxシリーズ、PICMX5xxシリーズの64pin、100pin製品で共通なので、本シリーズで扱う情報は基本的にはPICMX1xxシリーズ、PICMX2xxシリーズ、PICMX5xxシリーズの64pin、100pin製品だと思っていただいて結構だと思います。あと出展元は基本的にはmicrochip社の提供する各種ドキュメントになります。データシートとかリファレンスマニュアルとかですかね。元の書類は英語なので正確な情報かどうかは各自で判断してください

あと今回のシリーズの記事は主に2つのこと、進捗報告 && 技術紹介(ドキュメントの不正確な弱体化版) で構成していこうと思っています。 進捗報告で登場するのはPIC32MX570F512L、技術紹介的な何かで登場するのは上記のシリーズたちになります。
基本的には進捗を生産する際に手に入れた情報を技術紹介で紹介する形になると思いますが、それだと方向性がぶれそうであれなので、一応技術紹介セクションにも目標、というよりはめあて的な何かを設定します。
そうだなぁ。。。PIC32MXシリーズの評価ボードでいろんなことして遊ぶとかどうだろうか。
ん?各記事の方向性を一致させる目的で目標を設定したはずなのに、これじゃあんまり意味ないね。まあいいや。
技術紹介セクションでは、PIC32MXシリーズの評価ボードでいろんなことして遊ぶこと
を仮の目標として構成していきます。

さて、じゃあなぜよりにもよってPICなのかというお話を。
そもそもなぜ強いマイコンが必要になったのかは、たぶん前回の記事に書いたと思うので割愛。
じゃあなぜpicなのか、素直にARMを使わないのはなぜなのか。というと、
実は先輩がARMをつかうとかいってARMで遊んでたというのが一番の理由です。
それが今年の夏ぐらいのことで、強いマイコンの選定を始めたのが10月ごろなので、
ARMは先輩に任せようということになり、ほかの候補をあたった結果ほぼPICしか残らなかったっていうはなしです。はい。
まあ自分もARMやってもよかったんですが、そもそも今まではGomiduinoとかいう雑魚い癖に無駄に高いマイコンボードを使ってて、それで自動操縦だ、だの優勝だ、だの、大和魂的な何かを感じる状態だったので(ロボコンの話)、部全体として幅広いマイコンの情報があったほうが選択の幅が広がっていいかなというかんじです。そもそも8bitの時点で自動制御する気ないよね?っていうね。

それじゃあ次は現状報告かな。

開発環境について



以上。結構てこずった。いい加減vim使えるようになりたいです。

で、現在8bitpic用にブートローダーを作ろうとして諦めて(めんどくさいし練習という意味でも意味なさそうだった)、データシート読んでるっていう状況です。

今後の流れですが、まずは評価ボード的な何かを作ってpicの機能を試し、カメラ載せて(友人が)画像認識プログラムを実装して、ロボコン用に最適化するって感じで行こうかなとおもってます。しばらくは進捗報告セクションと技術紹介セクションの方向性が同じになりそうですね。
というわけで現在評価ボードを設計してるんですが、現状まだ回路設計も終わってません。ただマルツがリニューアルキャンペーンをしてたので、取り急ぎ発注だけはまとめました。
で、当然ですがプリント基板も設計しないといけませんが、こっちもまだです。決まったのはKiCadで設計するということと、発注はFusion PCBでやるってことだけです。

あ、そうそう。発注に当たってクレジットカードでしか支払えないないところとかあるので、めんどくさくてやってなかったけどいつかは申請する予定だったVisaデビットカードを申請して、いまと届くの待ちです。どうでもいいね。

じゃあ最後に、バージョン管理とかについて。
バージョン管理はまあgitでやろうと思ってるんですが、githubの練習もかねて、評価ボードとかOSとかはオープンソースでgithub上で公開しながら開発していこうと思ってます。習うより慣れろだと思うので。

長くなりましたが、今回のまとめです。

・シリーズのメインの目的は (自分の)進捗を生産すること
・更新頻度は2週間に一回以上、未確認なら煽っていいよ。
・今回のシリーズの記事は主に2つのこと、進捗報告 && 技術紹介(ドキュメントの不正確な弱体化版) で構成
・ 進捗報告で登場するのはPIC32MX570F512L
・技術紹介で登場する情報はPICMX1xxシリーズ、PICMX2xxシリーズ、PICMX5xxシリーズの64pin、100pin製品で共通(だと思う。)
・出展元はmicrochip社の各種ドキュメント
・技術紹介セクションでは、PIC32MXシリーズの評価ボードでいろんなことして遊ぶことが目標
・自分の進捗のほうはオープンソースにしたい

そんなかんじで、第0回は終わりです。実は定期テストが3日後に控えてるので次の記事は早めに更新できるかもです
毎日午前中で終わるしね。席次とかもはや OUT OF 眼中。
テスト勉強なんかするよりゲームしてたほうがよっぽど(中学で言う)社会とか英語の勉強になるし、今回のシリーズに関する進捗出してブログにupするほうがよっぽど国語と電気回路、プログラミングの勉強になるしね。
そもそもテスト対策は勉強じゃないから。留年しそう。
では~

top

プロフィール

トマト大佐

Author:トマト大佐
電気飽きた。

最新記事

最新コメント

カテゴリ

月別アーカイブ

最新トラックバック

検索フォーム

<< 全タイトルを表示 >>

カウンター

現在閲覧者数

現在の閲覧者数:

リンク

ブロとも申請フォーム

Twitter

ad

QRコード

QR