ラベル microchip の投稿を表示しています。 すべての投稿を表示
ラベル microchip の投稿を表示しています。 すべての投稿を表示

2019年2月17日日曜日

PICのPWMで音楽再生2

前回、古いPICマイコンで大惨事になったので、比較的新しいPICで挑戦することにした。
PIC16F1619というもの。


3.3Vで動くしPIC内蔵OSCが32MHzまでいけるので部品点数がかなり減った!!
あとは
  • 乾電池で動くようにする
  • ボタン操作などで再生を切り替える
  • LEDなどの装飾
  • いい感じに収納する
をすればオモチャとして使えると思う

ソフト

ソフトの書き方も今風のやり方?にした。
MCC(MPLAB® Code Configurator)というもの積極的に使用する。
チュートリアル
http://microchipdeveloper.com/mcu1101:start
https://www.microchip.co.jp/download/dl_download.php/ID=17399660df745a6b64cd99d30b56a30b809e6694/
が大変参考になった。
日本語の情報はうまいこと見つけられなかった。
みんなArduinoとかSTMに移行したのかな。寂しいね。

MCC

基本的には、前述のチュートリアルの通り。
MCCプラグイン使用時は以下の感じ


困ったこと

PIC16F818のときには使いたい機能とピンに制約があったのだけど、
こちらは、ある程度自由に割当ができる。その分、悩むことも多い。。。
ファイルが自動生成させるので、それに従ってコーディングする必要がある。
統一した書き方ができて良いのだけど、ちょこっとしたものを書くのに、複数ファイルを行ったり来たりするのは、頭が付いて行かない(笑

良いところ

ピン割当がビジュアライズされてわかりやすい。
また、UARTの通信速度やタイマーやPWM設定で計算がかなり不要になった。

移植

基本的には、MCCのおかげであまりマイコンの差異を意識しなくて済んだ。
クロックが32MHzになったけど、TMR0の周期は8KHzと指定すればレジスタの設定を計算してくれるし。
SPIのクロックがOSC/4なので8MHzになったので、読み込みに余裕が生まれたはず。
20MHzの時は、コマンド+アドレス 計4B データ8Bで合計12Bを読むのに約273usとなった。
データ1Byteあたり約34usなので、約29kHzだった。
一方、32MHzになったので、単純に5/8・・・約170usになると思いきや、約102usになった。なぜ??
データ1Byteあたり約13usなので、約78kHz。


なので、音源のサンプリングレートを16kHzにしてみた。
すごくクリアになった・・・。
PWMが31.25kHzなので、32kHzにはできないね。どんな感じになるかは試してみたいけど。
ちゃんと計算してなかったけど、記録可能時間は、
2MByteのフラッシュ(8bit210241024 = 16,777,216bit)なので16,777,216 / (8bit16kHz) = 131.072s 約131秒・・・2分11秒くらい。

2019年2月7日木曜日

古いPICのPWMで音楽再生

子供用の音楽が鳴るオモチャとか作れたら素敵やん。と思って
本当に軽い気持ちで手を出してしまった。


だって、他の方はシンプルに出来ているんだもん。。。
http://manpuku-koji.hatenablog.com/entry/2017/11/23/104741
http://www.asahi-net.or.jp/~rn8t-nkmr/family/pic/vc/index.html

動機

FONから剥ぎとった2MBのフラッシュメモリが何個か余っているので、
有効活用できないかと思った。だって2MBだよ2MB!音楽なら1曲くらい入るんじゃない。
というもったいない精神から始めてしまったので、軽いはずの試作が上の写真みたいに大惨事になった。
なぜかというと・・・
  • 使ったPICマイコンが3.3Vに対応してなかった。5Vと3.3Vが必要
  • 5V->3.3V変換回路が必要
  • 内蔵OSCは8MHzが上限で、PWM周波数が足りない。 外付けOSC追加
  • 音が小さかったので、増幅追加
    とほほ
3.3V対応のPICマイコンで、内蔵OSCが20M以上あれば、こんな苦労しなくてよかったのにー

使用部品と回路

  • フラッシュメモリ MX25L1605
  • PICマイコン PIC16F818
  • オシレータ20MHz
  • 3.3Vレギュレーター
  • 5->3.3V変換用 VHC244
回路図がこちら。もう大惨事。


はまったこと・メモ

ダイオードのレベル変換はMHzクラスには向いていない

これになかなか気付けなくて、フラッシュからの応答が無かったり、化けたりして
フラッシュ交換したり、電源変えたり大変だった。
ずっとロジアナで見ていたので、余計にドツボにハマった。
以下のようにオシロで見れば一発なのにね。
ダイオードのレベル変換

VHC224のレベル変換


よく調べてから実行しよう
http://kosakai.world.coocan.jp/change_3_3V_5V.html

Zeroplusのロジアナはlinuxで使える

Zeroplusだけじゃないと思うけど、PulseViewで自動認識してくれた。
しかもSPIプロトコルも解析できた。すごいね。
いままで、MBEWAREのロジアナを使用していて、そのためにwindows環境が必要だったのだけど、これからはlinux環境でいけそうだね。
ただ、パターンジェネレータ機能はどうしようもないか・・・。

ソフト

ブロック図

ブロック図というか動作イメージ

PWM 周波数とデューティの計算

データシートとにらめっこ、すぐに忘れそう・・・。
PWM Period = [(PR2) + 1] • 4 • TOSC • (TMR2 Prescale Value)
PWM Duty Cycle = (CCPR1L:CCP1CON<5:4>) • TOSC • (TMR2 Prescale Value)
今回は20MHzのオシレータで、分解能が8bit確保できて、可聴域以上のPWM周波数にしたいので
PR2は255が必要*で、PWM周波数はPWM Periodの計算式から
(*CCP1CON<5:4>を駆使すれば、PR2は63でも良いような気がするけど、簡略化のために、CCPR1Lに読み込んだデータを入れるだけで良いようにしたく、今回は255で計算した。次回は63で試してみよう。)
プリスケーラ 周期[us] 周波数[kHz]
1 51.2 19.53125
4 204.8 4.8828125
16 819.2 1.220703125
プリスケーラを1に設定して、19.5kHzの周波数とする。
次にデューティは簡略化のためにCCP1CON<5:4>を0b00とした。
すると計算は簡単でCCPR1Lのみで、26とした場合は、約10%になる。

SPI

Masterモード時のCS

てっきりSlave Select (SS) RB5が使えるのかと思ったけど、これはSlaveモード専用みたい。
そして、SPI使用時にRB5は出力設定できないのか、意図した動きにならなかった。
仕方がないので未使用だったRB0をSSとして使うことにした。

flashROMからの連続読み込み

SPIの読み込みは最速でOSC/4なので、今回は5Mbps程度となる。つまり1クロックあたり0.2usとなり8bitのデータ転送には1.6usという計算になる。
単純に考えるとflashROMからの読み出しは[READ 03h][AD1][AD2][AD3]と[DATA]の計5B必要になるため
1.6*5で8us/Byte・・・125kHzくらいと思いきや
実測すると5B転送するのに124usくらいかかっている。むーん。
これだと、8kHzぎりぎりなので再生速度揺らいでしまうかもしれない。
MX25Lのデータシートには、CSをLOWのままでクロック与え続けると、アドレスを増加させて読み込み続けると記載があったので、1度に8Bデータを読むようにしてみた。
すると、コマンド+アドレス 計4B データ8Bで合計12Bを読むのに約273usとなった。
データ1Byteあたり約34usなので、約29kHzとなり十分に余裕がある。

リングバッファ

flashROMからの読み込みが十分速いので、不要な気もするけど32Bのバッファ用意した。
125us * 32 = 4ms の余裕が生まれるハズ。効果は未確認。

音源の作り方

ようやく音源の準備。ブログとかyoutubeに出していいかわからないので、そういう使用がOKな音源を探す。
例えば、d-elf.comさんのところにある「蒼い月 初音ミク・アペンド Blue Moon/HATSUNE MIKU Append Ver.」の場合。
Blue_Moon_MIKU_Append.mp3で2.9MBある。これを8kbps 8bit モノラルとしてデータ部のみ保存する。

Audacityで

cuiなコマンド1発に憧れるけど、まずはguiでやってみる。そうAudacityで。

音源を8kbps 8bitモノラルに変更

  1. トラックを選択してから[トラック]→[ステレオからモノラルへ]を選択
  2. ウィンドウ下方の[プロジェクトのサンプリング]で8000Hzを選択

データ部のみ保存

  1. 「選択したオーディオを書き出し」
  2. 「その他の非圧縮ファイル」、ヘッダ:RAW(header-less)、エンコーディング:Unsigned 8-bit PCM
これでOK。約985kBのデータができた。
内容を確認するときは、[ファイル]→[取り込み]→[ロー(Raw)データの取り込み]

flashROMに書き込む

この前やったflashROMの書き換えが早速役に立つ。
dd if=/tmp/miku.raw of=/tmp/2m_base.img ibs=2M conv=sync
flashrom -p linux_spi:dev=/dev/spidev0.0 -c “MX25L1606E” -w /tmp/2m_base.img

動作確認


こんな感じ


2018年7月16日月曜日

キャラクタ液晶に天気予報を表示する

暑い・・・。暑すぎる。

キャラクタ液晶の使い道を考えていた。
暑くて、天気予報が知りたくなった。

早速結果からだけど、こんな感じ


1. 天気予報を取得する

livedoorの天気予報サービスを利用させてもらう。
http://weather.livedoor.com/weather_hacks/webservice

都市は「東京」なので「http://weather.livedoor.com/forecast/webservice/json/v1?city=130010

JSONで応答してくれるみたい。
[forecasts][0][telop]に[晴のち曇り]
[forecasts][0][temperature][max][celsius]に[最高気温]

linuxボードにpythonとか入っていないので、awkとsedで頑張る!



2. 天気アイコンをアニメーションしたい

外字(CGRAM)は8種類しかないけれど、書き込むと表示中のものも変更された!
ということは、動的に変更できて、なんちゃってアニメーションできそう。


3. 表示

上段に「サイコウ キオン:●●°C」
下段に「テンキ:■■■■■」
■部分は、例えば「晴のち曇」なら
「晴アイコン」「ハレ」「→」「曇アイコン」「クモリ」

JSON出力はUnicodeで「晴のち曇」は「"\u6674\u306e\u3061\u66c7"」となる。
「のち」なら「→」、「時々」なら「/」とした。
外字は

外字は1s毎に書き換えを行い、アニメーションしてるっぽくした。
また、1時間毎に天気予報を更新する。
(今回は実験なので、この間隔にしたけど、長期に使う場合には、
 利用規約確認したり、迷惑かからないように12時間とか24時間とかのほうがいいかも)

ソース

使いそびれたパラレルキャラクタ液晶のSPI化(2/2)

前回からのつづき
制御用のFON2405E(LEDE・Openwrt)向けドライバ作成

1. SPI仕様

[0x01][コントラスト] ※コントラストは0x00〜0x06
[0x02][コマンド]  ※ RS=0 でLCDに出力
[0x03][データ]   ※ RS=1 でLCDに出力

http://akizukidenshi.com/download/ds/sunlike/SD1602HULB-XA-G-G.PDF
http://219.117.208.26/~saka/ham/LCD2/

2. ドライバ仕様

基本的には、MCP23S09の時と同じ。
キャラクタデバイスとして[/dev/ PicClcdDriver0]が作成される。
これに表示したい内容を流しこめばOK
一方で、各種制御は[/sys/bus/spi/drivers/PicClcdDriver/spi0.1/]に
lcd_clear:Clear Display(全表示クリア)
lcd_set_cgram:Set CGRAM address
lcd_set_ddram:Set DDRAM address
が作成される

3. 動作

insmod pic_clcd.ko
echo > /sys/bus/spi/drivers/PicClcdDriver/spi0.1/lcd_clear
echo -n HelloWorld! >  /dev/ PicClcdDriver0

英数字以外 例えば 「イ」とか
echo -ne "\xB2" > /dev/ PicClcdDriver0

外字CGRAM
0番目に「晴?」アイコン
echo 00411040E04110400 > /sys/bus/spi/drivers/PicClcdDriver/spi0.1/lcd_set_cgram



ドライバソースコード

使いそびれたパラレルキャラクタ液晶のSPI化(1/2)

ずっと昔にまとめ買いした「LCDキャラクタディスプレイモジュール」(秋月電子のSC1602BSLB-XA-GB-KとかSD1602HULB-XA-G-G)が使いそびれていた。
5Vだしパラレル入力だし・・・。
最近では、3VとかI2C通信のものが安価に出ている。
困った。 FON2405E(Linuxボード)は 3Vだし、今のところSPIしか使えていない。
そこで、PICマイコン使って
  • インターフェース変換(SPI to パラレル)
  • 3V駆動
  • SW入力
  • バックライト
を目指す。

先に結論↓ こんな感じで、Linuxボードから制御してみた。



1. インターフェース変換

SPI搭載の手持ちPICマイコン=PIC16F818 / 819 にした。
まぁシフトレジスタでも実現できるような気がするけど。
http://www.aitendo.com/product/14623
だけど3V駆動化とかSW入力とかやりたいので、今回はPICにこだわった。


2. 3V駆動

いろいろな方が実現している。感謝!
PICにてPWM出力し、チャージポンプにて負電圧を生成する。
最初に思いついた方すごいね!
http://elm-chan.org/docs/lcd/lcd3v_j.html
http://jsdiy.web.fc2.com/lcd3v/


3. SW入力

入力ピンが足りないので、アナログ入力+抵抗分圧にて。
こちらもいろいろな方が実現している。感謝。
https://synapse.kyoto/hard/keypad/page001.html


4. バックライト

バックライト駆動するためには4V 40mA程度必要っぽい。
2のチャージポンプでは賄えないか・・・。
要検討・・・。

んでもって、現状の回路図はこんな感じ。


ソースコード

2017年2月27日月曜日

ラズベリー・パイでSST26VF032Bの読み書き(node.js)その4

前回1/前回2/前回3からの続き

アドレス範囲指定もJpGridにしてみた。
読み込み時の進捗表示も追加。

データをファイルに保存したり、ファイルから書き込めるように機能追加中
丁度今、ファイルダウンロード機能が作り終わったところ。
 ファイルから書き込みができれば、ようやく本題に戻れるわけだ・・・。

なかなかまとまった時間が取れないけど、コツコツ頑張ろう。

2016年12月25日日曜日

ラズベリー・パイでSST26VF032の読み書き

11月の末頃にFONのフラッシュ容量拡張のために
SST26VF032Bを入手した。 
microchipのオンラインストアから注文できるし、3日程度で到着した気がする。
しかし、そのまま交換してもフラッシュに書き込みができなかった。Orz

注意
 SST26VF032はSPIモードでの書き込みに対応していないので、「B」有りが必要。
http://www.microchip.co.jp/support/faq_sst-fm.html
このあたりをあまり気にせずに購入していた。危なかった。。。

基礎知識
をあまり持っていなかったので、他の型番の日本語のデータシートなどを読んで雰囲気を学習
http://www.onsemi.jp/pub_link/Collateral/ENA2097JP-D.PDF
http://japan.xilinx.com/xcell/xl55/jp55xcell_13.pdf


そしてSST26VF032Bについて
・データシート
http://ww1.microchip.com/downloads/jp/DeviceDoc/jp566514.pdf
 ・サンプルプログラム
http://www.microchip.com/wwwproducts/jp/SST26VF032B
 →末尾のソフトウェア

初期化
Quad I/Oとか特殊なものを使わないのであれば、初期化すべき項目は少ないと思う。
01H WRSRでIOCとWPENの設定くらい
JEDEC-IDを読んで対象のデバイスかどうかを確認しておく

読み込み方法
03H Readですんなりと読み出すことができる

書き込み方法
一番手こずった
PinのWriteProtectや06H WREN、そしてBlockProtectなんてものもあるOrz
最後のBlockProtectを失念していたために半月くらい悩んだ。
前述のサンプルプログラムを最初から見ておけばよかった。
こんな流れ
1.06H WREN WriteEnable
2.42H WBPR BlockProtection解除
3.02H PP PageProgram
4.05H RDSR BUSYチェック

こんな感じ。


2016年12月8日木曜日

FON2405E カスタムファーム用のドライバ開発

前回、準備としてなんちゃってドライバを作成して、insmodするところまでいけた。
次は自力シリアル通信ドライバを作成(ラズベリー・パイ用に作った奴の移植)をしてみる。



1.概要
ドライバ名はMy2nd(まだ名称が決まってないOrz)コードは末尾に記載。
Makefileは前回からドライバ名のみ変更した。


2.導入
nfsマウント
mount -o nolock 10.10.10.3:/var/lib/tftpboot /mnt
insmodしてみる

メッセージのメジャー番号が253 マイナー番号が0が重要で、コレがないと/dev/●●が作成できない。
カーネルのバージョンがアレなので、手動でスペシャルファイル?を作成する必要がある。
mknod /dev/My2nd0 c 253 0
とするとMy2nd0というデバイスファイルが作成できる。

3.テスト
 作成したMy2nd0に対してechoで文字列を送ってみる。
 echo -n HelloWorld!! > /dev/My2nd0

するとPIC側のコンソールに表示される。

やったーうまくいった!

4.コード
こんな感じ


2016年11月28日月曜日

FON2405Eのフラッシュメモリを交換→失敗

魔が差して、フラッシュメモリの交換をしてしまった。
MX25L8006EからSST26VF032へ。

しかし、書き込みで失敗してしまう。。。
Unlocking Kernel ...
Writing from /var/cgi9yh6g9 to Kernel ... [w]Post-Write check failed.

やっぱりよく調べてからじゃないといけないね。
せめて同じメーカーとかにしておけばよかった。
酩酊買いしたので、あと20個近くある!

不良在庫にしないためにも何とか解決したいものだ。
とりあえず、ロジアナ使って、SPIモードでJEDEC-ID は読めた。
さてこれからどうしようか・・。

2016年9月3日土曜日

MPLABXをLINUXで使ったら文字化け

バージョンアップの度にはまるので、備忘録として

日本語が表示できるいい感じのフォントをfonts/fallbackにぶち込んでおく

/opt/microchip/mplabx/v3.40/sys/java/jre1.8.0_91/lib/fonts/fallback/ipag.ttf
/opt/microchip/mplabx/v3.40/sys/java/jre1.8.0_91/lib/fonts/fallback/ipamp.ttf
/opt/microchip/mplabx/v3.40/sys/java/jre1.8.0_91/lib/fonts/fallback/ipam.ttf
/opt/microchip/mplabx/v3.40/sys/java/jre1.8.0_91/lib/fonts/fallback/ipagp.ttf

これだけ。毎回忘れる。Orz

2016年8月31日水曜日

ラズペリーパイで自力シリアル通信

ひょんなことから、過去にFONのGPIOを使ったなんちゃってシリアル通信を実装したのを思い出した。過去の投稿
 当時は、ラズベリーパイが注目されていて、いいな−と思いつつ、ちょっと高いなと感じており、中古で@500円程度で入手できるFONを何とか拡張できなかと思っていた。
結局受信エラーが抑えきれなくて、途中興味を失ってしまった。

最近になって、
1.2014年7月 トランジスタ技術
2.LINUXデバイスドライバ
3.RaspberryPiで学ぶARMデバイスドライバープログラミング
 を読む機会があって、FONでやりたかったことを再度挑戦してみようと思った。

そのまえに、情報が豊富なラズベリーパイで準備運動をしてみた記録。



 概要
ユーザーランドでGPIOをパタパタさせて、同期型シリアル通信を行い、
PICマイコンにて、UARTに変換する。

ラズピでuname -aを実行してPIC経由のURATで受信した結果。


ラズピ側
ユーザーランドでGPIOをパタパタさせるプログラム
ほとんど前述の 「3」のとおり
GPIO7 - CLK OUT
GPIO8 - DATA OUT
PIC側
RB0 - CLK IN (割り込み)
RB5 - DATA IN
RB2 - TX
なんとなく達成感があるね。
次はPICからラズピ側に送信する機能を作ってみよう。

2016年5月2日月曜日

さぁ大型連休の中間点だ(imodela+eagleで基板切削)

GWの前半を使って、Amisの基板を切削した。
今度は、elecrowとかに発注してみたいけど、複数作るものではないので、切削で十分。

部品をハンダ付けするだけなので、作業自体は相当短縮できる。
ただし、GNDベタパターンなので、サーマルランドにしたとしても、容量の大きいハンダゴテが必要になった。


ユニバーサル基板の試作とはまた違った趣があって、いいですな。
まだ、光センサーの接続が残っているけど、まずはこんな感じで。
あとは、適当なケースに入れて、外部入力を接続すれば、最初の目的は達成できそう。
http://continue-to-challenge.blogspot.jp/2016/02/amis.html
これの赤外線出力以外を実現。

まだまだやりたいことがたくさんあるけど、GW中に完成できるかな・・・。

2016年2月28日日曜日

見通しが立った(Amis)

今年に入ってから少しずつ試作進めてきたものが見通しが立ってきた。
他の人が手垢がつくほどやり尽くされているけど、
自分でやってみたかった。

概要
扉センサーや人感センサー、明るさ、温度・湿度センサーを監視して、
異常な場合にはメールで通知するというもの。それだけ。
汎用出力があるので、光や音で知らることもできる。
赤外線出力もつけるので、家に帰る前にエアコンつけたり、
長期不在時に在宅を装うこともできるはず。
一体に何に怯えているんだろうか・・・。
名付けてAmis(エイミス)フランス語で「ともだち」 。ぜんぜん関係ないね。

構成
ArduinoとかRaspberryPiとか使えば簡単なのはわかっている。
だがしかし、あえて、この構成にしたかったのだ。なんとなく。

[センサー類]-I2cなど-[PICマイコン]  -USB(CDC)-[linux(1)]-[linux(2)]

・センサー類
  ディジタル入力×5
  ディジタル出力×3
  明るさセンサー これはCdsの値をPICのADで読む
  温度・湿度センサー(HDC1000というやつ)秋月電子で売っていた I2C接続
http://www.tij.co.jp/product/jp/HDC1000
  赤外線出力

・PICマイコン
  PIC18F2455 余っていたので
  microchipのcdcサンプルを参考にした

・Linux(1)
  最寄りのルーター dd-wrtが入っている。リビングにある。
  これにUSB経由でPICマイコンを接続するもの。
  
・Linux(2)
  メール通知用 mageiaが入っている。
  ONUの近くにある。

進捗
 ・センサー類
   赤外線出力がまだ
   その他は、だいたいOK

 ・PICマイコン 
   ファームはだいたいOK
   基板起こす? 悩み中。

 ・Linux(1)
   PICとの通信プログラムは、開発環境ではOK
   あとはARMに移植できるか・・・!?

 ・Linux(2)
   メール通知するだけなので、ほぼOK
   ssmtpを使用

その他
  花粉がすごい。体がだるい。でも頑張るぞ!

2016年2月21日日曜日

地道に試作中(その4)

ようやく
I2Cでデータの読み書きができるようになった。
長かった・・・。ガッツリ時間がかけれないのがツライ。

これで、あとはマイコンとLinux側の制御プログラムをちゃんと作れば、
やりたいことができるようになる。ハズ。

教訓
・ちゃんと1次情報(Microchipのデータシートとか)を読む
・ネットの情報を鵜呑みにしない
・急がば回れ(Win10でもロジアナツール使えることが発見できたし)

もう1つの方は
まだ未着手



2016年2月14日日曜日

地道に試作中(その3)

久しぶりに
VirtualBox上のWindowsを起動したら、
ブルーバック画面が頻出するようになっていたOrz

思い切ってWindows10をインストールした。
アプリとかドライバの互換性が心配だったけど、意外とすんなり動いた。
10年くらい前のロジアナがちゃんと動く。




PL-350というもの

試作基板はI2C通信部分の作りこみ中。
英語のデータシートを避けずに読んでいれば、もう少し早く進むと思う。

その他
・今まで放置してしまったことを少し処理できた。ストレス減!
・今回はダメだったけど、また次回頑張る。めげずに!

2016年2月6日土曜日

地道に試作中(その2)


平日にLinux側のプログラムを地道に作成(まだ半分くらいか)
cとかc++とか久しぶりすぎて頭痛くなった。


環境構築(eclipse+CDT)でハマった
-lpthreadをどこに書けばいいか
http://stackoverflow.com/questions/4201129/compiling-in-eclipse-with-gccs-lpthread-and-lrt-set
C/C++ Build --> Settings.
Then "Tool Settings", select "Libraries" under "Linker".
You can add all your project libraries there (without the "-l"). Also in the lower part, you can add custom path to search libraries.
らしい。

Linuxで一般ユーザーがシリアルポートを使おうとしてハマった
1.付与したいユーザーをdialoutのグループに入れる
2. 50-udev-default.rulesの修正
vi /lib/udev/rules.d/50-udev-default.rules
KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout", MODE="0666"
「MODE="0666"」を追加

これで良いらしい。

試作基板の進捗
昨日と今日でPICマイコン試作基板に温湿度センサ(HDC1000)をつなげた。
まだ、I2Cのプログラムができていないので、ただつなげただけOrz


I2Cのデバックしたかったけど、今日は時間切れです。

その他に・・・
頑張って育ってくれ!

2016年1月31日日曜日

地道に試作中

昨日今日と少しづつPICマイコンを使ったグッズの試作中
USBフレームワークとの共存や慣れないxc8との格闘・・・。

出来上がるのは何時になることやら。


はんだ付けしている間は「無」になれる。楽しいね。

左上にあるのはcdsで明るさをAD変換して読みだそうというもの。
スイッチ5つとLED3つをつけた。
まだ、PORTBが丸ごと残っているので、他にも増やせられそう。
あとは、
・シリアル通信uart  サブマイコンと通信させる
・i2c 温湿度センサーとか
・圧電ブザー
くらいかな。

全貌はもう少し形になってきてから



2016年1月24日日曜日

なんとも・・・

数週間悩んでいたことが、ふとした瞬間に解決することがあるもんだ。

その1
PICマイコンのUSB(CDCサンプル)をdd-wrtで使いたいと思っていた
ddwrtの再ビルドも覚悟して、開発環境を構築するべく挑戦したが、なかなか思うようにならなかった。
でも、今日、何の気なしにPICマイコンのベンダーIDを試しにFTDIに変えてみたら
案の定動かなかったが、ようやく気付いた。PICマイコンのUSB(CDC)はftdi_sioじゃなくて、
cdc-acmだった。Orz
insmod cdc-acm
で一撃でした。 この2~3週間はなんだったんだ。。。
よく考えてから行動しようね。

その2
久しぶり同郷の親友にあった。現状や悩み事やなど話していたらあっという間に時間が過ぎていく。なんか解放されたような気分になった。良い刺激を受けた。まずは孫子を読んでみよう。

その3
ここ数年間ずっと悩んでいたこと。希望の光が見えてきた。
頑張ってくれ!!

おしまい。

2016年1月16日土曜日

ARMクロスコンパイル開発環境2

迷走の記録2

先週に引き続き開発環境の構築ためにあくせく、、、

この手順通りに、やってみたところ、それらしいことができた!
https://wiki.openwrt.org/jp/doc/howto/buildroot.exigence#downloading_sources

例えば、コンパイルは
./staging_dir/toolchain-arm_cortex-a9_gcc-5.2.0_musl-1.1.11_eabi/bin/arm-openwrt-linux-gcc test1.c -static -o test1_arm_static.exe
のような感じで。

メモし忘れていたけど、
仮想環境だと、失敗してもやり直せるので気楽でいいね
やりたい事はdd-wrtを導入したルーターでUSB-シリアル変換を使いたいのだけど、
それがPICだったりするので、ベンダーIDが登録されていなく、そのままでは使えない。
modprobeがあれば何とかなるのだろうけど、あいにくそれは無かった。
最悪は、PICに書き込むベンダーIDを登録されいるものに書き換えてしまう手段もあるけど、
なんかちょっと反則感があるので、ドライバを修正したい というもの。。

明日やってみようかな

2015年5月9日土曜日

FON2405EのGPIOでキャラクタ液晶を制御する(WEB制御)

目的

前回、送達確認を拡張して受信機能(PICマイコンからFONに対してコマンドを出せる)ようにした。
今回は、コマンドラインの操作をWEBから行えるように変更した。

概要

WEBからクリア、行移動、文字出力を行う。
PICからの受信は次回の課題。




結果