部品リワークについて
以前失敗した詰み基板の改版を作ることにした。
そこで部品を追加で買い直すか、取り外して使うか迷った結果、ヒートガンを買うことにした。部品代で十分買える。
WEP 858D ミニステーション はんだごて SMD、SOIC、CHIP、QFP、PLCC、BGA
- 出版社/メーカー: WEP
- メディア: その他
- この商品を含むブログ (1件) を見る
以前研究室の先生が興味本位で買ってきて使いやすかった。
動作確認に以前作った基板についているAVRマイコンを外した
ものすごく宣伝記事になってしまった。
余談だがモールド封止されたLSIに実装等の熱ストレスをかけた時に破壊に至るモードは
- パッケージ内で水蒸気爆発 -> ボンディングワイヤ断線、チップ割れ
- 急激な温度変化と熱膨張係数の差 -> チップ割れ、剥離、ボールクラック
等が上げられる。かける熱ストレスには十分注意されたい。
自作楽器用音源モジュール作成(5)
筐体加工を行った。電動ドライバで穴を開けてニブラーで四角くするかテーパリーマで拡張して全て作った。
現物合わせで全部やったのでやっつけ感がすごい。
裏面。UARTは3系等あって2系統は外部入力で1系統はWifi経由で受け取る。
短いネジやらナットを切らしていて途中からスペーサーでやる羽目に。
黒い箱に青いディスプレイだからか意外と見た目が綺麗なのでまぁ良しとする。多分こういう適当なところがダメなんだと思う。
次はケーブル作って動作確認をする。
TLP521経由でMIDIが正しく受信できない
コレクタに5V、エミッタにプルダウン抵抗を設けて抵抗に掛かる電圧が信号になっている。
フォトカプラの出力負荷が大きすぎてまともな信号になっていなかった。
http://akizukidenshi.com/download/TLP521-1.pdf
100kΩ
状態遷移が全く追いついていない。
150Ω
状態遷移時間は少しなまってるように見えるけどまぁ十分。
高速にしたければカレントミラーで引いてやったりするのが良さそうだが今回は31kHz程度なのでこれで十分。
Xilinx SDKでプロジェクトがビルド出来ない
コードを書いても.elfが生成されない、おそらくビルドできていない。調べてみるとパス中にカッコやスペースがあるとダメという話に行き着いた。
Make: Interrupt/Exception caught (code=0xc0000fd, addr=0x4227d3)
http://japan.xilinx.com/support/answers/43293.html
どうやら問題は配置パスではなく環境変数に同名のファイルを持つディレクトリがあることらしい。つまり全く別物のmakeが走っていたらしい。
Vivadoの起動時にpathを無効化してから起動することで対策できた。
//C:\Xilinx\Vivado\2015.4\bin\vivado_launch.bat path set path = "" vivado.bat
自作楽器用音源モジュール作成(4)
Androidアプリの開発環境周辺で滞ってしまったので、ESP-WROOM-02のファームと半田付けを進めた。
Wifi-Serial Bridge
クエリはどうでもいいので受けたデータをそのまま数値変換してシリアルに流すモジュールにした。
#include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ESP8266WebServer.h> /* Set these to your desired credentials. */ const char *ssid = "Wifi-Serial Bridge"; const char *password = "password"; ESP8266WebServer server(80); /* Just a little test message. Go to http://192.168.4.1 in a web browser * connected to this access point to see it. */ void handleRoot() { uint8_t argc = server.args(); for(uint8_t i = 0 ; i < argc ; ++i){ String data = server.arg(i); uint8_t num = 0x0; for(uint8_t i = 0 ; i < data.length() && i < 0xff ; ++i){ char c = data.charAt(i); if('0' <= c && c <= '9') num = (num << 4) | (c - '0'); else if('A' <= c && c <= 'F') num = (num << 4) | (c - 'A' + 0xa); else if('a' <= c && c <= 'f') num = (num << 4) | (c - 'a' + 0xa); else { server.send(200, "text/html", "NG"); return; } if(i & 0x1) { //Serial.print(num, HEX); Serial.write(num); num = 0x0; } } } server.send(200, "text/html", "OK"); } void setup() { delay(1000); Serial.begin(115200); Serial.println(); //Serial.print("Configuring access point..."); WiFi.softAP(ssid, password); IPAddress myIP = WiFi.softAPIP(); //Serial.print("AP IP address: "); //Serial.println(myIP); server.on("/", handleRoot); server.begin(); //Serial.println("HTTP server started"); } void loop() { server.handleClient(); }
前回のソースから大した変更はなし。ひとまずこれで動ける。
CY8CKIT-042-BLEを使う(CySmart導入)
先日注文していた
が届いたので試食。ちなみにCypressのワークショップに参加すると普通にもらえるみたい。
Find Me Target
ボード自体はArduinoピンコンパチとKitProgが乗っているだけなので、サンプルのFindMeを書き込み
CySmart
KitGuideの3.6項にあるが付属のドングルのファームを最新にしないと動作しない。
初期状態では使えない。
042BLEのホームページ下にもhexファイルが置いてある(2015年12月9日現在のもの)
PSoC Programmarで書き込み
無事に認識して詳細表示とAlertLevelの書き換えでLED表示の切り替えが確認できた。他のサンプルも試すことにする。