2017年01月01日

2016年,2017年にかけてのメモ

2016年,2017年にかけてのメモ
海外だとクリスマス前後に新しいバージョンを出してくるイメージがある。

* Mecrisp stellaris FORTH (ARM)
    今では、死言語と思われる :D、 FORTH言語が ARM Cortex-M系に移植された。
    FORTHコンパイラ。
    ソース付き。GPL。
    http://mecrisp.sourceforge.net/
    2016-12-16 に最新版リリース。 mecrisp-stellaris-2.3.2.tar.gz
    もともとはMSP430系用に書かれたものだったらしい。
    マルチタスクもできる様だ。
    ダウンロード
    https://sourceforge.net/projects/mecrisp/files/?source=navbar
    年明けにでもブログメモにしようかどうか考え中。
    辞書内はサブルーチンコールの集積ではなく、直接アセンブラ(インライン化)を吐く様で
    速度はその分速そう。ANS FORTHに結構準拠している感じだ。
    WORDの仕様
        http://128.199.141.78/words.html
    Window上だとincludeが使えないので結構めんどくさい。
    Linux上だとそれなりに使えるみたい(未確認)
    かなり限定仕様だけど、SDカード(FAT32)をリードだけできるライブラリがあった。
    結構進化中の感じがする。

    全体的なドキュメント
    http://128.199.141.78/index.html

    恐らく無料のARM Cortex-M系FORTH実行系としては、決定版と思われる。

    seeコマンドが無いみたいなので逆アセンブル結果はみれていない。

    ちなみに、2016/10 あたりまではSTMのCortex-M4ではさっぱり動かなかった。
    最近の版は試してない。
    LPC1114とかSTMのCortex-M3は動いた。

    NUCLEO-F411REで動作した: 2017/01 追記
        最新のv2.3.3でもダメだったので、試しにST-LINK-UtilityからFlash ROMの
        完全イレースを実行した後、HEXファイルを書いたら動いた。orz
        (^^)/
        方法:
            ST-LINK-Utilityのメニューから「Target」-「Erase Chip」、
            その後、HEXファイルを書き込む。

* C++Builder, Delphiの無料版が出た
   https://www.embarcadero.com/jp/free-tools
   経営が苦しくなってくると、無料版でシェアを確保しようとして
   失敗、言語部門を売り払う、買った先は無料版があっては儲からないので
   配布を中止する。
   というのをずっと繰り返えしている情景が「見えま〜〜す!」
   デジャブーなのか。
   せっかくなので、ありがたくダウンロードさせていただきました。:D

   でもホビーユーザは全員、 Visual なんとかの無料版に移行済みの気がしてならない。

* Great Cow BASIC (PIC/AVR)
    2016-12-16にv0.96がリリースされた。
    http://mpu.seesaa.net/article/399685697.html
    久々なのでお試し中。

* PMP (PIC Micro Pascal)
    2年ぶりで、 2016-12-15にv2.12がリリース。
    http://www.pmpcomp.fr/smf/index.php?action=downloads
    http://www.pmpcomp.fr/smf/index.php
    まだ、コンパイラにバグが多い感じだけど、なかなか立派なPascalの言語仕様なので
    このまま改良を続けてほしいと思うのだった。

* Jalv2 (PIC)
    2016年末に最新版 JALv2 2.4q6 がリリース。
    ぶっちぎりの超効率っぷりは健在だ。
    改良が続いている。
    http://mpu.seesaa.net/article/399685590.html

* LunaAVR (AVR)
   2016-12-31に最新リリース。
    http://avr.myluna.de/doku.php?id=de:download
    LunaAVR 2017.r1 (BETA) from 31.12.2016
    Windowsでコンパイルできないっぷりは今も健在だ。xD
    どうすんねん コレ。
    orz orz orz

* Pinguino (PIC)
    2016年に入って、ついにXC8コンパイラに対応してしまった様だ。
    http://www.pinguino.cc/
    開発者はMicrochipのコンパイラをかなり嫌っていたが、どう変遷したのかよくわからない。
    最新版のインストールに失敗したので放置中であはる。
    orz

* mbed OS 5 vs mbed2
    2016年にmbed OS 3 をポイっと捨てて
    mbed2とmbed OS 3 を統合するような形でmbed OS 5になったんだけど、
    mbed2のほうが統合のあおりを受けて当初バグにまみれた状態になったイメージ。
    現状、自分の場合Nucleoしか使ってないわけだけど、
    統合前に動いていたものが動かくなるわ、ツール類はコケて動かないわ、
    mbed cli(オフライン・コンパイル)は、バージョン切り替えるごとに
    200MByte(git版)もダウンロードしてくる馬鹿げた仕様(注1)になって、切り替えに膨大な時間がかかるわ、
    その挙句動かないし、元の版に戻すのもまた時間がかかるで、

    mbedはやる気がうせた。
    orz
    ちなみにmercurial版のイメージだと1GByte超えてた気がする。
    どんなくつりやねん。
    orz
    オンラインコンパイルは興味がないので書かない。
    で、
    mbed2は統合直前、または直後あたりの「rev.121」くらいが一番マシな感じだ。
    ということで、落ち着くまでにまだ半年から1年くらいはかかりそうな気がする。
    orz orz

    中の人が頑張っているのは知っているので、
    もっとガンバレ!

    (オイ


pip install -Ur requirements.txt

(注1) ダウンロード済みのファイルがあれば、2回目からはダウンロードしないんだけど、
      200MBもあるので切り替えに結構な時間がかかるのだった。 orz
posted by Copyright (C) avrin All Rights Reserved. at 00:00| Comment(2) | 雑多なメモ | このブログの読者になる | 更新情報をチェックする

2016年12月18日

WAVE/PCM再生: @70円のPIC16Fで8bit PWM player音楽再生 2017

WAVE/PCM再生: @70円のPIC16Fで8bit PWM player 音楽再生 2017
* はじまり
* Download (2017/02/18) up!
* ブレッドボード図
* 対応マイコン
    コードサイズ:
    最小サイズ:

[仕様]
* SDカード仕様
* Wave/PCMデータの形式
    曲間ノイズとWAVヘッダ/音楽情報(アルバム画像)チャンク等:
* Wave/PCMデータ一括変換ソフト
* 再生操作仕様
    (1) 動作:
    (2) Btn SW(ボタン・スイッチ)仕様
    (3) LED インジケータ(Indicator)
* 再生順序

[制作]
* 回路図
* Pin配列図
* プッシュ・スイッチ
* 制作上の注意点

* 処理速度についてのメモ
* SPI Clockについてのメモ
    PIC18F14K50:
    PIC18F26J50:
* 使用リソース

[コンパイル]
* コンパイルと書込み
    バッチファイル m.batでコンパイル:
    makeを使ったコマンドライン・コンパイルの方法:
    準備
    コマンドライン・コンパイル:
    PICへの書込み:

[その他]
* 雑多なメモ
* 使ったツールのメモ
    WinHex:
    Binary Edit Bz:
* その他の関連作例メモ
    データレコーダーのエミュレータを作ってみた (その6):

* はじまり
ひょんなことから、このページを発見したのだった。
WAVE PLAYER FOR PIC16F877A.!
microC用のサンプルコードでPIC16F877Aで動作するWAVE PWM Playerだ。
試しに、無料版のmicroCでコンパイルしてみると、
なんと、たったの
Flash: 1755word
SRAM : 150byte
で、fs=22.1KHz,stereoのWAVファイルがFAT16のSDカードで再生できるサンプルコードだった。
これは面白そう ということで、
microCのお試し版は2000wordまで使えるので、さっそく より高速で動作するPIC16F1827に移植して
みたのだった。これならfs=44.1KHz,stereoが再生できるはず。。。
ところが。。。。
これがさっぱり動かない。動かない、動かない。。。
よくよく調べていくと、
「これじゃ動かない !」 (オイ

決め打ち要素がいくつか障害になって、そのままでは動かないのだった。
orz
で、結局 ChaNさんのこのページを熟読することに。。。
FATファイル システムのしくみと操作法
それにしてもChaNさんの解説がすばらしく分かりやすい。(^^)/
感謝! m(__)m

その後、microCのお試し版のままだと、容量不足でprintf系デバッグができないし、
そもそも microCにはprintf関数がないのだ(簡易型の代替関数を使う)。orz
しかたがないので、
XC8に移植、MPLABXでデバッグしてなんとか音が出るようになったものの、
XC8の無料版はコードサイズが肥大化傾向で、実行速度もあまり速くないこともあり、
結局、
超効率コンパイラのjalv2に移植することにした。
jalv2の実力を確認する良い機会でもあるのだ。

で、最初はFAT16バージョンだったが、 今時FAT16対応のSDカードなんて入手が難しいので、(注7)
FAT32にも対応してみた。
さらに、
最近、ある程度充実(秋月電子)してきた最新のPIC16F Enhanced midrageで
お値打ち感のあるものを選んで対応してみた。

* Download
hexフォルダにHEXファイルがあるのでPickit3で書き込みます。
(2017/02)
16f-pwm-wave-player_v8.6-2017-02.zip

* ブレッドボード図
後述の回路図を参考に作ってみた。
部品番号は適当に割り振ってあります。
実際に作ったものに近い感じ。(全く同じではありません :-)
pic16f18313-sd-wave-player_breadborad-2017-2.png
上のSD Socketの端子名は、SDカード側の端子名。

* 対応マイコン
Enhanced midrageのPIC12F1系/16F1系と、PIC18Fのみで動く。
コードサイズ:
    ざっくり、
        Flash: 1600 word ~ 1800 word
        SRAM : 150 byte
    程度で、マイコンの種類や機能オプションによって変動します。
最小コードサイズ:
    16F18313/FAT16限定/SW(ボタン・スイッチ)なし、 という条件で、
        Flash: 1474 word
        SRAM : 143 byte
    を記録。
PICSD card:SDSC/SDHC, FAT16/32, Long filename対応
PIC名 価格(注1) MIPS値 PPS Flash/SRAM Pin数 動作の
可否
出力 Sampling
周波数
LED Dev.Rev
8pin
PIC12F1840 115円 8MIPS - 4KW/256B 8pin O mono 44.1KHz - 5
PIC16F18313 70円(税別) 8MIPS O 2KW/256B 8pin O mono 44.1KHz - 2004
14pin
PIC16F1455 160円 12MIPS - 8KW/1024B 14pin O stereo 44.1KHz O ?
PIC16F1705 100円 8MIPS O 8KW/1024B 14pin O stereo 44.1KHz O 2002
PIC16F1764 120円 8MIPS O 4KW/512B 14pin O stereo 44.1KHz O 2002
PIC16F1825 140円 8MIPS - 8KW/1024B 14pin O stereo 44.1KHz O 4
PIC16F18325 100円 8MIPS O 8KW/1024B 14pin O stereo 44.1KHz O 2045
PIC16F18326 130円 8MIPS O 16KW/2048B 14pin - stereo 44.1KHz O -
18pin
PIC16F1827 135円 8MIPS - 4KW/384B 18pin O stereo 44.1KHz O 4
20pin
PIC16F1459 180円 12MIPS - 8KW/1024B 20pin O stereo 44.1KHz O 1003
PIC16F1619 150円 8MIPS O 8KW/1024B 20pin O stereo 44.1KHz O 2004
PIC16F1709 150円 8MIPS O 8KW/1024B 20pin O stereo 44.1KHz O 2002
PIC16F1769 - 8MIPS O 8KW/1024B 20pin - stereo 44.1KHz O -
PIC16F1829 160円 8MIPS - 8KW/1024B 20pin O stereo 44.1KHz O 4
PIC16F18346 160円 8MIPS O 16KW/2048B 20pin - stereo 44.1KHz O -
PIC18F14K50
PIC18F13K50
210円
200円
8MIPS
(12MIPS)
(注4)
- 8KW/768B
4KW/512B
20pin O mono 44.1KHz O 6
28pin
PIC16F1938 190円 8MIPS - 16KW/1024B 28pin O stereo 44.1KHz O 2
PIC18F26J50 260円 12MIPS 32KW/3776B 28pin O stereo 44.1KHz O 4
* SDカード仕様 (1) SDカードはSDFomatterで「クイックフォーマット」をした直後に https://www.sdcard.org/jp/downloads/formatter_4/ wavファイルをSDカードのルートにコピーしてください。 言い換えると、SDカード上のクラスタ配列にフラグメントが発生していない状態が必要です。 コピー後に "削除、またコピー"等は音飛びの原因になります。 (2) SDカードは、SDSC/SDHC FAT16/FAT32に対応してありますが、 こちらで試したのは、 (a) 2GB/SDSC/FAT16 1種類 (b) 16GB/SDHC/FAT32 3種類 の4種類のSDカードです。 MMCは非対応です。 すべての SDSC/SDHC FAT16/FA32 カードで動作するかどうかなんて全く分かりません。xD といいつつ、ほとんど大丈夫じゃないかと踏んでたりします。(オイ (3) ファイル名はショートファイル名のみ、ロングファイル名のみ、二つの混在が可能です。 漢字ファイル名も問題なさそうでした。 (4) WAVファイルは「アーカイブ属性(A)」になっている必要がありますが、 通常はそうなっているずなので気にする必要はないと思われます。 * Wave/PCMデータの形式 再生可能な「*.WAV」ファイルは、 上記表から例えば「mono」、Sampling周波数(以下fs)=44.1KHzと読み取れた場合、 その通りのデータ形式である必要があります。 mono出力のものにstereoデータを与えても正しく再生できません。逆も同じです。 PCMデータは8bitです。 その辺にあるwavファイルを持ってきても恐らく16bitなので再生できません。 後述の変換ソフトを使って適切なデータを作る必要があります。 曲間ノイズとWAVヘッダ/音楽情報(アルバム画像)チャンク等: WAVヘッダ情報は見ていません。先頭の44バイトを読み飛ばしているだけです。 従って、44バイト直後に音楽情報チャンクがあるとそのまま再生してしまうので 「曲間ノイズ」が発生します。 また、数十キロバイト・オーダーでアルバム画像がWAVファイルの最後に付加されている場合も、 曲間で「比較的長く大きな ザザーッ!」というノイズが発生します。 "先頭のWAVヘッダ(44バイト)とPCMデータ"以外の情報が、 ツール等でカット可能ならカットしたほうが 良いです。 * Wave/PCMデータ一括変換ソフト いつもは「foobar2000やSoX」を使用していますが、 今回は「mono」データ化が必要になったこともあり、別のソフトを探してみました。 Switch Audio File Converter http://www.nch.com.au/switch/index.html 変換は「Output Format:」に「.wav」を選択、その右の「Options」で、 Settings: Customにすると「Format:」の部分で色々選択可能になります。 Encoding:は「PCM Uncompressed」でOK. 今回偶然見つけて使ってみただけなので詳細は不明、 金払えメッセージが毎回のように出てきて、:D orz なところもある。 * 再生操作仕様 (1) 動作: 電源投入後、ルートフォルダにある拡張子「.WAV」ファイルを順に再生していきます。 最後のファイルを再生した後、また最初のファイルから再生を開始します。 (2) Btn SW(ボタン・スイッチ)仕様 Next: 再生中に「一回クリック」すると次の曲に飛びます。(指を離したタイミングで動作します) Pause: 再生中に 「1.x秒以上」押し続けるとポーズします。ワンクリックで解除します。 (x=0...5 のどれか。今はx=2) Power Off: 4秒以上押し続けるとパワーオフしようかなと思いましたが、 現状ではあまり意味がないので何も起こりません。:D (3) LED インジケータ(Indicator) LEDが付けられる14Pin以上のマイコンでは、 再生中: LEDがゆっくりめに点滅します。 Pause中: LEDが比較的高速に点滅します。 LED疑似PWM(Pseudo PWM): LEDがチカチカすると「目もチカチカ」してしまうので、xD 目に優しいLED疑似PWM点滅に変更しました。 副作用として、 (1) コードサイズが増加した。 orz (2) LEDの電流と配線具合によってはPWMノイズが聞こえてしまいます。orz コンパイル・オプションの変更により、軽量で低ノイズなLEDチカチカ版に切替可能です。 * 再生順序 SDカード上に書かれた順で再生順が決定します。 再生順序が大切な場合はクイックフォーマット後、1個づつ手動でコピーするか スクリプト等で順序決めしてコピーさせるのが確実かも。 * 回路図 回路図は一部のみ存在します。(PIC12F1840/PIC16F18313,PIC16F1827) 回路図がないマイコンの場合、同梱されている「pin_map.txt」を参照して配線して下さい。 pic16f18313-sd-wave-player_schematic-2017.png PWM_OUTが音声出力端子。 FOSC=48MHz(12MIPS)で動作させているマイコン(PIC16F1455, PIC16F1459, PIC18F26J50)以外は 出力電圧が小さいので、アンプ類(PCのオーディオ入力、簡易オーディオアンプ等、ヘッドフォンアンプ、TRスイッチング回路等)をつないだほうが良い。 ということを念頭に置きながら、以下は一般的な話、 (1) パソコンのオーディオ入力につなぐなら、おそらく直結でOK。心配なら10uFを経由させる。 (2) 8オームの100円スピーカにつなぐなら100uFを経由させる。自分は試してない。 その後、2000円のスピーカで試したけど、音は小さかった。 (3) 一般的なオーディオアンプにつなぐなら、ローパスフィルタを入れたほうが無難かも。 * Pin配列図 SD cardのピン配列. ArduinoとかNucleoとか、今回は無意味。:D
-- /* SD card pin
-- Pin side
-- --------------\
--         9     = \    DAT2/NC
--             1 ===|   CS/DAT3    [CS]
--             2 ===|   CMD/DI     [DI]
--             3 ===|   VSS1
-- Bottom      4 ===|   VDD
-- View        5 ===|   CLK        [CLK]
--             6 ===|   VSS2
--             7 ===|   DO/DAT0    [DO]
--         8       =|   DAT1/IRQ
-- -----------------
--
--                                         Arduino      NUCLEO-F411       NUCLEO-F030R8
-- Logo side
-- -----------------
--         8       =|   DAT1/IRQ
--             7 ===|   DO/DAT0    [DO]     D12           D12/PA_6           D5/PB_4
--             6 ===|   VSS2
-- Top         5 ===|   CLK        [CLK]    D13           D13/PA_5           D3/PB_3
-- View        4 ===|   VDD
--             3 ===|   VSS1
--             2 ===|   CMD/DI     [DI]     D11           D11/PA_7           D4/PB_5
--             1 ===|   CS/DAT3    [CS]     D8            D10/PB_6           D10/PB_6
--         9     = /    DAT2/NC
-- --------------/
-- */
PIC16F18313とPIC16F1840のピン配列は全く同じ。
-- /*                   PIC12F1840   4KW/256B
--                      PIC16F18313  2KW/256B
--                       ---__----
--           3.3V--- VDD|1       8|VSS --- GND
--      PWM CCP1 --- RA5|2       7|RA0 --- [PGD] - SDO
--            CS --- RA4|3       6|RA1 --- [PGC] - SCK
--    SW --- [/MCLR]/RA3|4       5|RA2 --- SDI
--                       ---------
-- */
PIC16F1827等、UARTが同時に使用可能な多ピンPIC(18pin以上)では、UART出力を有効にしてコンパイルすると、 再生中のファイル名を115200bpsでUARTに出力します。(デバッグ用途) (ショートファイル名表示なので "元がロングファイル名" の場合、結構謎な表示になったりします。)
--  /*                  PIC16F1827  4KW/384B
--                       ----_----
--     TEST PORT --- RA2|1      18|RA1
--   PWM(L) CCP3 --- RA3|2      17|RA0
--   PWM(R) CCP4 --- RA4|3      16|RA7
--    SW --- [/MCLR]/RA5|4      15|RA6 --- SDO1
--           GND --- GND|5      14|VDD --- 3.3V
--           LED --- RB0|6      13|RB7 --- [CSPDAT]
--          SDI1 --- RB1|7      12|RB6 --- [CSPCLK]
--      UART_RX ---- RB2|8      11|RB5 --- UART_TX
--         SD CS --- RB3|9      10|RB4 --- SCK1
--                       ---------
--             Playing:  26.2mA   current consumption
--             Sleeping: 22.0mA
--  */
pic16f1827-wav-sd-player-schematic-2017.png * プッシュ・スイッチ (Btn sw) ボタン・スイッチと言ったり、 プッシュ・スイッチと言ったり、 自分の中では明確に区別してなかったりするので、適当に呼称してますが、 全部同じもの。実際には タクト・スイッチか。(オイ 使用した操作用のスイッチは、 http://akizukidenshi.com/catalog/g/gP-01282/ を使用している。これ以外のスイッチを使った場合、別途デバウンサが必要になる可能性を 否定できない。上記スイッチの場合デバウンサは不要です。 シュミット・トリガ入力の/MCLRにSWが繋がっているので... 参考: http://www.marutsu.co.jp/pc/static/large_order/1405_311_ph * 制作上の注意点 全体: /MCLR(リセット)端子をボタン・スイッチ入力に使っている関係上、 Flash書き込み後にリセットが正しくかかりません。 従って、一旦電源をOFFした後、ONする必要があります。 8pin PIC: 上記に加えFlash書き込み後に正常動作させるため、Pickit3の配線を すべて取り払う必要があります。 LEDとスイッチ: この2つは付けなくても動作します。 その場合、無限ループ再生動作のみとなります。 * 処理速度についてのメモ 割り込み内でセクタ切り替えをしている関係上、速度の遅いSDカードだと 処理時間が超過してセクタ切り替えのたび(5.8msec=22.3usec x 256(ステレオの場合))に前回と同じデータが出力 されてしまう。 そうなっても、実際音を聞いたときにわかるかといわれると、 比較するのが難しいのでなんとも言えない。 変わらない気がする。。。 気がす。。。 * SPI Clockについてのメモ SPI Clockは速ければ速いほど良い。 FOSC=32MHzの場合、FOSC/4=8MHzが最高クロックになるが、データシート上は 5MHz前後が限界値の様だ(PIC18F14K50しか確認していない) (要再確認) 最初にFOSC/4のSPI Clockで動かしてみて動作しないマイコンは、 6MHz or 4MHzに落としてある。 ブレッドボード配線なので、半田配線に変えればSPI clock=8MHzで動く可能性も否定できない。 あるいはSPI系の内部プルアップをやめて、外部に50Kオームから100Kオームの プルアップに変えてみる手もあるが、そういう問題かどうかは未確認。 PIC18F14K50: FOSC=48MHzの時,SPI clock=12MHzの波形は「なまった三角波」の様だったが、 音楽再生に支障はなかった。「よくこれで再生できてるよなぁ〜」って感じでした。 最終的に内部発振モードFOSC=32MHz,SPI clock=8MHzで使用した。 PIC18F26J50: FOSC=48MHzの時,SPI clock=12MHzの波形が「かなりきれい」で、 PIC18F14K50との差は歴然だった。 さすがは、USBやDMAが付いてるだけのことはある、という感じか。 内部発振モードFOSC=48MHz,SPI clock=12MHzで使用した。 * 使用リソース Timer1(16bit): 10msec tickのシステムタイマ Timer2(8bit) : PWM周期発生用 CCPx/PWMx : PWM出力ポート SPI系 : SD card 制御用 UART : デバッグ出力用 (optional = false(デフォルト値)) TEST PORT : デバッグ出力用 (optional = false) LED Port : 動作表示用 (optional = 8pin PICを除いて true) Btn sw Port : Play,Pause切換え(optional = true) (optional): コンパイル時に有効・無効を選択可能 * コンパイルと書込み HEXファイルがあるので、無理にコンパイルする必要はありません。 JalEditを使ってmain.jalを読み込めばコンパイル可能ですが、 JalEditはほとんど使わないのでここを参照してください。 Tools - Environment - Optionsの'Path of JAL Lib folder(multiple....)' の最後に「;lib」を追加する必要がある。 バッチファイル m.batでコンパイル: (1) m.bat内のcompiler_rootJalv2コンパイラ・ルートフォルダ(jallib-full-1.x.x)までのパスを設定します。 (2) set device=16F1827 のマイコン名の部分を適宜変更します。 MS-DOSコマンドプロンプト上でm.batを実行すればコンパイル可能です。 上記の場合、 sd-wav-player-16F1827.hex というファイルが生成されるので、Pickit3で書き込みます。 makeを使ったコマンドライン・コンパイルの方法: 準備 (1) msys2のコンソール上でコンパイルするのがデフォルトです。(msys/MinGWでも恐らく可(未確認)) 最低限"make"コマンドが必要です。 msys2のインストールや使い方は省略します。 (2) Makefile内のjal_root, jal_sysJalv2コンパイラまでの絶対パスなので 個々人の環境に合わせて変更します。 コマンドライン・コンパイル: 以下のどちらかでマイコンの品種を決めてmakeします (1) $ make device=16F1829 この場合、PIC16F1829マイコン用のコンパイルをします。 以下の(2)の設定に影響を受けません。 (2) $ make Makefile内の device=nnnnn 行を一つ有効にして makeします。(nnnnn=マイコン名) (注)マイコン名nnnnnに指定可能なのは、上記表に記載のマイコンみです。 (動作の可否が"-"となっているものを除く) PICへの書込み: 書込みはPickit3を使います。Pickit2は非推奨です。(注5) Makefile内のPickit3への実行パスは適切に変更しておく必要があります。 (1) $ make f とすると、Pickit3のコマンドライン版(MPLABX,ipecmd)を使って書き込みます。 (2) $ make f2 とすると、同様にPickit2(pk2cmd)で書き込みます。(非推奨) (3) $ make f3 はPickit3の別名コマンドの実験用です。 (例) $ make f device=16F1829 PIC16F1829用にコンパイル後、Pickit3を使って書き込みます。 * 雑多なメモ (1) mono/stereoの自動切り替えは、割り込み内の処理やコードサイズが増えるので 省略したが,付いてた方が便利かも。 (2) Power SW機能(sleep, wake up)は省略したが、MOS-FETのHigh sideスイッチで SDカード電源を制御可能にすれば付けても良いかも。今回は省略。 (3) 一部を除いて出力音量が小さいのは、PWMタイマの分周比が今ひとつ荒いのが原因。orz (4) コードサイズは、もう少し減らせる可能性はあるんだけど、 上の表から分かるように、100円で FLASH:8Kword,SRAM:1KbyteのPICがあるので、 もういいかなぁ〜 って感じ。:D (5) 8ピンマイコンでWAVプレイヤーをつくってみた【電子工作】 視聴にはログインが必要。orz こちらの方は、PIC12F1822(Flash=2Kword,SRAM=128byte)で制作している。 実際の使用量は1751word/95byteらしい。スゴ。 * 使ったツールのメモ WinHex: http://www.x-ways.net/winhex/index-m.html SDカード内の構造をパソコンから見るツール。 管理者権限で実行する必要があります。 ディレクトリ・エントリや相対アドレスで閲覧可能。 MBRは見れない気がする。 Binary Edit Bz: http://forest.watch.impress.co.jp/library/software/binaryeditbz/ バイナリエディタ、ビューア。便利 * その他の関連作例メモ ネット上で似たような作例がないか探索してみたのでメモしておく。(注6) データレコーダーのエミュレータを作ってみた (その6): ATtiny861AとSDカード http://kitahei88.dtiblog.com/?i&no=84 (注1) 2016/12月時点の秋月電子価格がベース。端数の表現はテキトーです。 特に表記がない場合、税込み表記。 (注2) 実際の値はコンパイラやソースのバージョンに依存して変動する。 (注4) マイコンは内蔵クロック使用で8MIPS(FOSC=32MHz)動作させている。 PIC18F13K50は所有していないが単に容量違いなので動くでしょう。 (注5) 仮に有志作成のアップデータを使ってPickit2で書込めたとしても動作しない可能性が高い。 Pickit2からの書込みでPIC16F1619は動作しないことを確認した。 (注6) ChaNさんの作例は有名すぎるので省略します。(^^; (注7) 入手できなくはないけど、FAT32のほうが圧倒的に値段が安い。
posted by Copyright (C) avrin All Rights Reserved. at 00:00| Comment(0) | PCM/WAVE | このブログの読者になる | 更新情報をチェックする

2016年04月09日

パナ文の波紋

*【ケント・ギルバート×青山繁晴】パナマ文書が生む血の粛清!?
https://www.youtube.com/watch?v=RKbfvVFQ-Ew

* 22 上村雄彦×共同通信・澤康臣×三木義一×荻上チキ 「パナマ文書の衝撃!タックス・ヘイブンの実態〜そしてグローバル・タックスの可能性とは」2016.04.05
https://www.youtube.com/watch?v=JX1utCugTa4&nohtml5=False
ちょっと長いけど専門家が出てくるので
興味がある人は時間がある時に見てもよいかも。

*「パナマ文書」にJALや電通が載っているという情報はデマ
はてな村定点観測所さんのページ
http://hatena.city/entry/2016/04/10/041802
メーカ名なんかの情報源が不明だったのでこれで,スッキリした感がある。
posted by Copyright (C) avrin All Rights Reserved. at 21:03| Comment(0) | パナ文 | このブログの読者になる | 更新情報をチェックする

2016年04月07日

パナ文について 2016/04

パナマ文書とは?日本人&日本企業リストの影響と報道しない理由
http://arcanaslayerland.com/2016/04/07/panama-papers/
マスコミも政府もやる気なさそうな現在,上のページは比較的分かり易い感じ。
どうなるかはアレなんだけど,
自分的なポイントは,
情報が漏れた
"法律事務所『モサック・フォンセカ』"
は,確か世界第3位くらいの規模の会社であること。
てことは,
まだ,世界1位と2位の会社に税金逃れしてる企業や個人が

もっと,もっと,もっと,もっと,もっと,も一つもっと,大量に存在するということ。
そっちも気になるのだった。
orz

今年は "パナ文Year" になるのか?

疑問:
上の解説によれば,一見全然関係ないペーパーカンパニーを設立してとか経由して
とかあるけど,リスト上にはダイレクトに企業名や個人名が出てきている。
そんなバレバレなやり方を本当にするのだろうか。
:D



「パナマ文書」問題がアメリカでは大騒ぎにならない理由
http://www.newsweekjapan.jp/reizei/2016/04/post-824.php

パナマ文書はどうやって世に出たのか
http://www.newsweekjapan.jp/stories/world/2016/04/post-4850.php
posted by Copyright (C) avrin All Rights Reserved. at 22:55| Comment(0) | パナ文 | このブログの読者になる | 更新情報をチェックする

2016年04月01日

ubundows xD 現る!? 2016/04

ubundows xD 現る!? 2016/04
Windows 10で動作するUbuntuのBashシェル--その実現方法
http://japan.cnet.com/news/service/35080406/


な,なんと Windows10上でubuntu 14.04 LTSのバイナリがそのままMS-DOS窓内のbash上で
動くようになる様でビックリした。(OoO)
Windows10にインストール可能になるのは2016/Summerらしい。
また,開発者向けということだ。
Insider Previewの人は試せるかもしれない。
このソフトが動いた,動かない,バグ見つけた等々の情報を希望している様だ。
(以下の動画の最後に出てくる)

デモ動画
http://video.ch9.ms/ch9/5db6/8ee786b7-9fc5-45bf-94d0-16ea91765db6/P488_mid.mp4
駅前でよく切れる包丁のデモやってるみたいだけど, :D
なんかスゴそう。

ネイティブのgccやruby,python,perl,ssh,git,apache....等が
Windows10のコマンドラインでそのまま動く。
というか,apt-getも動く。
でもさすがにubuntu用に作られた*.debファイルをdpkgでインストールは
できるんだろうか。 Windows専用でもdpkgコマンド使えると便利。
sambaは動くのか?
testdiskは動くのか? (勇気いるけど)
とか,この段階で考えはじめるときりがないとも言える。

topとMySQLが動かないとかいってるけど,X以外の他は全部動くのか? xD

Cygwin/MinGWとさよならか?!
MinGW+minttyの調子が良いのでCygwinはもうほとんど出番がないけど,
この両方とも不要になる可能性が大だ。
お世話になりました。
て,
使ってみないとアレだけど。:D

インストールサイズ
もしインストールするのに20GB必要とかいわれたら orzかも

アップデートはubuntuベースなのか?
こうなってくるとWindows10とubuntuのサポート期間が同期する可能性も否定できないぞ。
"ぞ"
か。 :D

tmux/screen/vt100
vt100周りはイマイチ問題があるけど,ANSIサポートまではされるそうだ。
tmux/screen等は全く動いてないというわけではなく,
そろそろ動きそうな感じらしい。

参考:
Ubuntu on Windows -- The Ubuntu Userspace for Windows Developers
http://blog.dustinkirkland.com/2016/03/ubuntu-on-windows.html

Ubuntu 14.04 LTS から16.04 LTS
Ubuntuのバージョンもまもなく16.04 LTSに置き換わる予定だ。



全体の(注)
リーナスは「ふざけんなっ!」っていうのかな?
謎。

posted by Copyright (C) avrin All Rights Reserved. at 00:00| Comment(6) | Windows10 | このブログの読者になる | 更新情報をチェックする