読者です 読者をやめる 読者になる 読者になる

ガレスタさんのDIY日記

電子回路、Web、組み込み、自作エフェクターを語るblog

おうちリフローについて

今回は僕がやってるおうちリフローについて紹介しようと思います。

まず道具について

  • ホットプレート
  • ペースト半田
  • フラックス
  • ディスペンサ(シリンジ)2種類
  • ピンセット
  • ステンシル(今回は使わない)

このぐらいが必要だと思います。

ちなみに精密な温度制御とかはしてないのであくまで自己責任でお願いします。
あくまで試作。本格的にやりたい方はPCBAサービスつかうなりしてくれ

基板に半田を盛る

これについて一般的にはステンシルを用いるのが普通だけど簡単な基板のために2000円は痛い・・・・・

なので僕はディスペンサでペースト半田を塗布していく

使っているのは1mlタイプのやつ

f:id:gsmcustomeffects:20170518071949j:plain

Aliexpressではここで購入できる

https://ja.aliexpress.com/store/product/1cc-ml-Syringe-Industrial-Syringes-with-18G-x-1-1-2-Blunt-Tip-Fill-Needle-and/1503742_32649265047.html?spm=2114.12010612.0.0.iphSYW

先端は赤色のがいいと思います。

f:id:gsmcustomeffects:20170518072533p:plain

次に肝心なペーストハンダ

僕はこれ使ってます

ほかにもAliexpress探せばいろいろあります
量が多いのだとこれ

Buy Products Online from China Wholesalers at Aliexpress.com



んで道具がそろったら注射器に半田を詰めてゆっくり載せていきます。
この時強く押し過ぎると先端のチップが飛んでいって悲惨なことになるので慎重に・・・・・

載せ終わるとこんな感じです(ステンシルなくても案外きれいに載る

f:id:gsmcustomeffects:20170518072619j:plain

チップは先につけちゃったw

んでピンセットで部品をのっける
今回はでかいのがないのでパーツピッカーはいらないと思う


フラックスの塗布

今回はチップ部品とかが跳ねたりマイコンの足がブリッジするといやなのでフラックスを使います。(部品はねにはあんまし効果ないかもだけどw

f:id:gsmcustomeffects:20170518072851p:plain

こんな感じで10mlシリンジに入れて使ってます

f:id:gsmcustomeffects:20170518073324j:plain

ホットプレートにのっける

ちなみに使ってるのはコレ

読んで字のごとくホットプレートにのっける。
このとき基板からパーツが落ちないように慎重に
のっけたら温度は200度前後(特に精密に管理してない


しばらくすると半田がとけてきてキラキラしてくるのでそうなったら20~30秒待ってホットプレートを切る。
あとは冷めたら取り出す。

f:id:gsmcustomeffects:20170518171817j:plain

f:id:gsmcustomeffects:20170518172048j:plain

f:id:gsmcustomeffects:20170518070345j:plain

案外きれいにできる。

ちなみに途中集中しすぎて写真撮り忘れたw

基板のフラックス汚れが気になるなら無水エタノールないしフラックス洗浄液で綺麗にしましょう
僕は歯ブラシでごしごししてます
f:id:gsmcustomeffects:20170518171839j:plain

f:id:gsmcustomeffects:20170518075304j:plain


まとめ

かなりお安くすませるならこういう感じ
お金に余裕があるならリフロー炉かうかPCBAしろ!

ちなみにAliexpressのサイト補足

ストア自体はここ
https://ja.aliexpress.com/store/1503742?spm=2114.12010612.0.0.XGCBPU


f:id:gsmcustomeffects:20170518074258p:plain

STM32F042K6T6の基板を作ったよって話

今回はFusionPCBのレビューも兼ねて基板作ったのでそれの話です。

とはいっても話すことは特になくてクーポンもらえたので基板ちゃちゃっとかいた感じです。

f:id:gsmcustomeffects:20170518070345j:plain

んで作ったのがコレ

地味にDFN6パッケージの電源が綺麗にリフローできてうれしい
フェライトビーズはなんかリフロー中に飛んで行ったので手で付け直したため汚い。

あとKiCadのデザインルールで結構攻めてみたけど6mil~7milであれば安定して作れるようになったぽい。
昔は断線とかよくあったみたいだけど


ちなみにFusionPCB 4.9ドルで基板作れるっぽいのでおすすめです
f:id:gsmcustomeffects:20170518070651p:plain

その他他社ではPremiumで扱われてる部分もその場で見積もりができるのでそこそこ楽だったりします。

要望を言うならばShippingにANA OCS追加してくれればいいと思います。

日記

最近FatFSはじめましたが結構楽しいです。
色々やって勉強頑張ります(まる
f:id:gsmcustomeffects:20170518071130p:plain

STM32でSPI通信をやってみる1(ポーリングでマイコン同士で通信編)

今回はCubeHALライブラリを用いてSPI通信をやってみる記事です。

STM32のSPIは全二重、半二重、単方向、マルチマスターモードなどいろいろ対応してますが今回は一般的な全二重でやってみようと思います。

f:id:gsmcustomeffects:20170510195127p:plain

Pin Name description
MOSI マウターアウトスレーブイン
MISO マスターインスレーブアウト
SCK シリアルクロック
NSS スレーブセレクトピン

NSSについて

SPIのスレーブセレクトピンなのでGPIOでHIGHとLOWを切り替えて使う簡単なものだがSTM32ではマルチマスターモードもあるので注意が必要
ここの設定をきちんとしないと動かないのでしっかりと理解しておくこと

SPIx_CR1レジスタのSSMビットを用いることでNSS動作の決定ができる。

f:id:gsmcustomeffects:20170510200342p:plain

説明がこれ

f:id:gsmcustomeffects:20170510200533p:plain

SSMを1にセットした場合SSIがNSSの値となりピンからの情報は無効となる。

次にNSSの方向の設定

f:id:gsmcustomeffects:20170510200836p:plain

ごちゃごちゃ書いてありますがマスターにしたい場合はSSM = 0、SSOE = 1とする。

上記の話は1対1の通信についてだ。

マルチスレーブの場合チップセレクトはGPIOで個別ケアすることになる。

f:id:gsmcustomeffects:20170513101917p:plain

実際こういう使い方のほうが多いので今回はGPIOでチップセレクトをする

マスター側:CubeMXでの設定

  1. 全二重に設定しNSSを無効
  2. PA4をGPIOに設定

f:id:gsmcustomeffects:20170513102617p:plain

SPIの詳細設定

f:id:gsmcustomeffects:20170513103116p:plain

今回はこのような設定にした。
クロック位相や方向は適宜設定してください。
特にSPIインターフェイスのセンサーデバイスなどを扱う場合ここの部分はスレーブに合わせます。
今回はマイコン同士の通信なのでおたがいあわせれば何でもいいということです

スレーブ側:CubeMXでの設定

  1. 全二重に設定しNSSをInputに設定

f:id:gsmcustomeffects:20170513171849p:plain

詳細設定
f:id:gsmcustomeffects:20170513171923p:plain

プログラム

ソースに関してはいたって簡単だ

uint8_t aTxBuffer[] = {0xA,0xB,0xC,0xD,0xE,0xF,0,0,0,0};
uint8_t aRxBuffer[10];

のようにバッファを定義して

マスター側

HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,0);
HAL_SPI_TransmitReceive(&hspi1,(uint8_t*)aTxBuffer,(uint8_t*)aRxBuffer,10,2000);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,1);
HAL_Delay(200);

スレーブ側

HAL_SPI_TransmitReceive(&hspi1,(uint8_t*)aTxBuffer,(uint8_t*)aRxBuffer,10,100);

動作例

こんな感じでできる
ポーリングなので適宜タイミング合わせる
STのsampleではスイッチをはなすまで無限ループして待ちを構成しています。

f:id:gsmcustomeffects:20170513220321p:plain

ロジアナではこうなっている(オカダに助けてもらった

f:id:gsmcustomeffects:20170513220715p:plain