<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns="http://purl.org/rss/1.0/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:cc="http://web.resource.org/cc/"
    xml:lang="ja">

    <channel rdf:about="http://nemuisan.blog.bai.ne.jp/?mode=rss">
    <title>ねむいさんのぶろぐ</title>
    <link>http://nemuisan.blog.bai.ne.jp/</link>
    <description>いないさんっ…ッ(←溜めてる)&lt;br /&gt;
好きだぁああぁああああアアあ嗚呼あ！！！１&lt;br /&gt;
</description>
    <dc:language>ja</dc:language>
    <cc:license rdf:resource="http://creativecommons.org/licenses/by-nc-sa/3.0/" />    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://nemuisan.blog.bai.ne.jp/?eid=169281" />
        <rdf:li rdf:resource="http://nemuisan.blog.bai.ne.jp/?eid=168987" />
        <rdf:li rdf:resource="http://nemuisan.blog.bai.ne.jp/?eid=168437" />
        <rdf:li rdf:resource="http://nemuisan.blog.bai.ne.jp/?eid=167935" />
        <rdf:li rdf:resource="http://nemuisan.blog.bai.ne.jp/?eid=167205" />
        <rdf:li rdf:resource="http://nemuisan.blog.bai.ne.jp/?eid=166988" />
        <rdf:li rdf:resource="http://nemuisan.blog.bai.ne.jp/?eid=165819" />
        <rdf:li rdf:resource="http://nemuisan.blog.bai.ne.jp/?eid=165671" />
        <rdf:li rdf:resource="http://nemuisan.blog.bai.ne.jp/?eid=165479" />
        <rdf:li rdf:resource="http://nemuisan.blog.bai.ne.jp/?eid=165395" />
        <rdf:li rdf:resource="http://nemuisan.blog.bai.ne.jp/?eid=165224" />
        <rdf:li rdf:resource="http://nemuisan.blog.bai.ne.jp/?eid=165165" />
        <rdf:li rdf:resource="http://nemuisan.blog.bai.ne.jp/?eid=165114" />
        <rdf:li rdf:resource="http://nemuisan.blog.bai.ne.jp/?eid=165060" />
        <rdf:li rdf:resource="http://nemuisan.blog.bai.ne.jp/?eid=164365" />
      </rdf:Seq>
    </items>
    </channel>

  <item rdf:about="http://nemuisan.blog.bai.ne.jp/?eid=169281">
    <link>http://nemuisan.blog.bai.ne.jp/?eid=169281</link>
    <title>XMEGA使ってみる</title>
    <description>シリアルの動かしかたを数か月間分からなかったのを気に病むことはない！！ねむいさん
だっていないさんのブラのホックを外すことができるまでに9か月かかったのだから(ｷﾘｯ
むしろ初期化コードやツールチェインのバージョン間にわんさか埋まってるじらi…
…まぁいいやね...</description>
<content:encoded><![CDATA[
シリアルの動かしかたを数か月間分からなかったのを気に病むことはない！！ねむいさん<br />
だっていないさんのブラのホックを外すことができるまでに9か月かかったのだから(ｷﾘｯ<br />
むしろ初期化コードやツールチェインのバージョン間にわんさか埋まってるじらi…<br />
…まぁいいやねむいさんの学習目的だし…<br />
<br />
とは言いつつも私が公開してるプログラムが"コアダンプ吐いてビルド止まった!"り<br />
"パスが通ってるのにエラーになったりしてビルドができない！"ていうコメントされて<br />
るのを他の方のtwitterやブログ等で目の当たりにするとさすがに気が咎めてき(ても<br />
私自身打つ手がなにもなかっ)たのですが、数多に存在するうまくいかない原因のうちの<br />
一つをめっけました。makefile中のワイルドカードの指定がマズかったようです…。<br />
<br />
いままで公開してきたものほぼすべてに波及してたので何とか時間見つけて修正して<br />
きました…。LatticeのAVRコアだけはツールのライセンス期限切れで動作確認が出来<br />
てませんがこちらも追々と…WinAVR更新してなかったら気づきもしなかったのか私…<br />
<br />
<br />
<br />
長い前振りになってしまいましたがWinAVRを20100110に更新したついでに今まで死蔵<br />
してたXMEGAを使ってみました。なんと今回がねむいさんのぶろぐ初のAVRカテゴリ！<br />
使用にあたって<a href="http://suz-avr.sblo.jp/category/834262-1.html" target="_blank">すｚ氏</a>と<a href="http://www.ne.jp/asahi/shared/o-family/ElecRoom/AVRMCOM/XmegaTest/XmegaTest.html" target="_blank">O-Famiry氏</a>、そしてSTM32のdfu作成プログラムでお世話になって<br />
いる<a href="http://www.geocities.jp/altshibabou/log2009a.html" target="_blank">シバ某氏</a>との使用記を参考にさせてもらっています。<br />
最初に言っておくとすでに<strong>ARM使いな人はわざわざXMEGA使う意味無い</strong>のとAVRから<br />
ステップアップして規模のおっきいマイコン使うこと考えてる人はプログラムの組みや<br />
すさ考えると"<strong>やっぱARMっしょ</strong>"になってしまいますがそれは端に置いておきます！<br />
<br />
日本で比較的容易に手に入るのはATXMEGA128A1ですね、今回私もこれを使いました。<br />
取り合えずいつもの<a href="http://www.aitendo.co.jp/product/1770" target="_blank">SPIのTFT液晶</a>でMCUの情報を読み出し表示させるところまで…。<br />
<a href="http://public.bay.livefilestore.com/y1p5zvodBAQWazv9Mcrq6z82eYMHF_e4d5G6HKp3jglAdWDWUBd7HfvLhtzz8sWma8uq_eZcE63Qdaejfne7HN8Ww/20100126_001.JPG" target="_blank"><img src="http://public.bay.livefilestore.com/y1p5zvodBAQWazv9Mcrq6z82eYMHF_e4d5G6HKp3jglAdWDWUBd7HfvLhtzz8sWma8uq_eZcE63Qdaejfne7HN8Ww/20100126_001.JPG" width="320" height="240" alt="un" class="pict" /></a><br />
今回購入したXMEGAのチップリビジョンは"H"でした。リビジョンHでもerrataがまだわん<br />
さかあります。このXMEGAが世代交代するころにはきっとerrataも無くなるでしょう(ｦｲ<br />
<br />
ホントはでかいフラッシュ領域を頼りに絵とか日本語フォントとかもフラッシュに焼き<br />
こんで表示したかったのですが、フラッシュ領域がRAM&I/O空間と分離されているのと<br />
WinAVR固有の配列確保の時のサイズの制約のおかげでトリッキーにする必要があり、<br />
うまく表示できるまでかなり時間喰われそうなので今回はパス。<br />
せっかく買ったのがもったいないのですけど他の方が優れた作例を出されるまで再び<br />
塩漬にしておきます…。<br />
<br />
<br />
<br />
あと忘れるとこだったけど、冒頭のビルドエラー修正の"ついで"で<a href="http://cid-36f4d1230f8a673c.skydrive.live.com/browse.aspx/.Public/src/Cortex/STM32F107VCT6/FatFs" target="_blank">STM32F107VCT6用の液晶<br />
表示プログラム</a>に<a href="http://nemuisan.blog.bai.ne.jp/?eid=168987" target="_blank">前回使用した2.4"と3.2"用</a>ドライバ(16bitアクセス)を追加しているので<br />
現物を所持していて興味がある人は試してみてくださいね。<br />

]]></content:encoded>
    <dc:subject></dc:subject>
    <dc:date>2010-01-26T00:06:38+09:00</dc:date>
    <dc:creator>ネムイ・トリノミアス</dc:creator>
    <dc:publisher>B-Blog</dc:publisher>
    <dc:rights>ネムイ・トリノミアス</dc:rights>
  </item>

  <item rdf:about="http://nemuisan.blog.bai.ne.jp/?eid=168987">
    <link>http://nemuisan.blog.bai.ne.jp/?eid=168987</link>
    <title>aitendoさんのTFT液晶モジュールを使う2</title>
    <description>aitendoさんから抵抗膜式タッチスクリーン付きの2.4inchTFTモジュール、YHY024006A
が販売されました。そろそろコントローラIC付きのおっきい液晶をと考えていてので
ねむいさんはすぐに飛びつきました！(変換基板込みのやつを買いました)
この液晶モジュール単体は某...</description>
<content:encoded><![CDATA[
aitendoさんから抵抗膜式タッチスクリーン付きの2.4inchTFTモジュール、<a href="http://www.aitendo.co.jp/product/1973" target="_blank">YHY024006A</a><br />
が販売されました。そろそろコントローラIC付きのおっきい液晶をと考えていてので<br />
ねむいさんはすぐに飛びつきました！(変換基板込みのやつを買いました)<br />
この液晶モジュール単体は某中華製エミュレータ端末(コントローラICが同じだけかも）<br />
やDSO nanoにも使用されているそうです。<br />
<br />
データバスは8,16bitが選択できると書かれています。<a href="http://nemuisan.blog.bai.ne.jp/?eid=167935" target="_blank">以前のSPI接続TFTモジュール</a>で<br />
中華クオリティはよく知っていたはずですが最初安易に8bitバスで挑戦して<strong>敢え無く撃沈</strong>。<br />
ちゃんと16bit接続でやり直しました。使用したMCUはもちろんSTM32F107VCT6です。<br />
他のマイコン使うときは8bit分しか接続できなくてもラッチかましてあげれば16bitに<br />
仕立て上げられるんで速度の低下に目をつぶれば何の問題もないでしょう。<br />
変換基板にはIMOとかIM3とかバス幅切り替えられるようなシルク表記がありますが<br />
どこにもつながっていないです！。<br />
<strong>20100121追：</strong><a href="http://yyh8.blog41.fc2.com/blog-entry-394.html" target="_blank">vvtune氏</a>が8bitバス接続でアクセスする方法を見つけられています。<br />
これは…ありがたい…！<br />
<br />
<br />
TFTの動かし方はSTM32に繋いでサンプルプログラムをSTM32用に移植(コピペ)して<br />
そのまま"いっせーの ポン"で終了です(はしょるはしょる)。この辺は一度TFT/OLED<br />
モジュールを制御する枠組み作ってしまえば容易なものです。<br />
<br />
んでお約束の<strong>いつもの</strong>…<br />
<a href="20100120_002.xxx" target="_blank"><img src="http://public.bay.livefilestore.com/y1pMMyiIysKbAObBb0cmuG8cETM-z63k26oBLaR68uvRhEOzbY_X4av1yIAF0JYNaEe5TuhwCFux4jGdqag51B2hw/20100120_001.jpg" width="160" height="120" alt="un" class="pict" /></a><br />
↑私は新しい液晶モジュール手に入れたら必ずこれやらないと体の調子が…<br />
　例の如くびぃぶろ君に怒られるので鮮明な画像は乗せることはできません(棒<br />
<br />
<br />
…失礼しました…お口直しに小動物を…<br />
<a href="http://public.bay.livefilestore.com/y1p2WhojjOTdp3Fyl7B0i4Et00IdgYEK49XInYyvZW153bBc-0BPJNCWIjqD_qbJKxu0y7R5ZytqwvX8D8jsaIJkg/20100120_003.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1p2WhojjOTdp3Fyl7B0i4Et00IdgYEK49XInYyvZW153bBc-0BPJNCWIjqD_qbJKxu0y7R5ZytqwvX8D8jsaIJkg/20100120_003.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
↑ううむ、やっぱ画面が大きいってのは良いもんだ！？<br />
　このモジュールもとても安いので複数個購入するつもりです…<br />
<br />
このモジュール使ってDSO nanoでっち上げられるので、107系使うためにCQ-STARM基板<br />
から外したSTM32F103VBT6を使用して試してみる価値はありそうですね。<br />
<br />
<br />
<br />
<br />
<br />
てわけで今回はこれにて！…と言いたいところですが実はかなり前に別経路で<br />
中華製TFTモジュールを購入していたりする…<strong>しかも5980円も払って！！！</strong><br />
<a href="http://public.bay.livefilestore.com/y1pcN-_DUNu_CNY34kMnkO29wS0DOOXCxaJSgMBVOcMC6dXAEtKljRIojO1dUS8TJguqV_Vec8pBOxsAO1-zKqZBQ/20100120_004.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1pcN-_DUNu_CNY34kMnkO29wS0DOOXCxaJSgMBVOcMC6dXAEtKljRIojO1dUS8TJguqV_Vec8pBOxsAO1-zKqZBQ/20100120_004.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
<br />
…悔しいので涙目になりつつもこっちも表示テストしてみます…<br />
コントローラICは先のモジュールのものと同じメーカーのILI9320。ILI9325と酷似したレジ<br />
スタ構成でしたがデバイスの叩き方は微妙に違っていました。コントローラICが同じでも<br />
モジュール内の結線の違いで制御方法がだいぶ変わってきたりもするので吟味は必要です。<br />
しかし提供されているサンプル片手に"ゲタ合わせ"しておけば後にやることは同じです。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1p2WhojjOTdp0Cg-sa3jxOxupP63P-4OGslBMsiYebbkZI83KBFlT35-zurKX3MvS4SDFv7veSP65BTm97oyYtlw/20100120_0051.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1p2WhojjOTdp0Cg-sa3jxOxupP63P-4OGslBMsiYebbkZI83KBFlT35-zurKX3MvS4SDFv7veSP65BTm97oyYtlw/20100120_0051.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
あらよっと。<br />

]]></content:encoded>
    <dc:subject></dc:subject>
    <dc:date>2010-01-20T01:33:24+09:00</dc:date>
    <dc:creator>ネムイ・トリノミアス</dc:creator>
    <dc:publisher>B-Blog</dc:publisher>
    <dc:rights>ネムイ・トリノミアス</dc:rights>
  </item>

  <item rdf:about="http://nemuisan.blog.bai.ne.jp/?eid=168437">
    <link>http://nemuisan.blog.bai.ne.jp/?eid=168437</link>
    <title>STM32 Primer2にFreeRTOSを乗せる２ -液晶表示のタスクを追加する-</title>
    <description>あけましておめでとうございます(した)。
自分の誕生日(1/6)の準備してたりなんやかんやであっという間に10日になっちゃい
ましたね。忙しくてなかなか手が割けなくなってしまいましたが、今年もお気楽に、
たとえば&quot;砕けた表現やアニメ調のイラストが目に障るので授業...</description>
<content:encoded><![CDATA[
あけましておめでとうございます(した)。<br />
自分の誕生日(1/6)の準備してたりなんやかんやであっという間に10日になっちゃい<br />
ましたね。忙しくてなかなか手が割けなくなってしまいましたが、今年もお気楽に、<br />
たとえば"砕けた表現やアニメ調のイラストが目に障るので授業で資料として使いやす<br />
いようにブログの記事を修正してほしい"って教育関係者とみられる方から<strong>また</strong>クレーム<br />
もらうくらいの感じでやっていこうと思います。これがゆと(ry<br />
<br />
<br />
<br />
それはさておきSTM32 Primer2にFreeRTOSを載せる試みを進めていっていますが、<br />
今回はLCDのタスクも追加しました。さらに、ProjectC3氏のフォントドライバも使いや<br />
すく汎用性を上げて実装しています。フォントは8~16ptまで対応で<a href="http://cid-36f4d1230f8a673c.skydrive.live.com/browse.aspx/.Public/src/Cortex/STM32F103VET6%5E_Primer2/06%5E_FreeRTOS/LCD" target="_blank">今回のデモ</a>には<br />
フリーのM+フォント(10pt)と美咲フォント(8pt)をCヘッダファイル化した状態で使用<br />
させていただきました(デフォルトはM+フォント)。<br />
<br />
<br />
簡単に文字が扱えるようになると、出来ることの範囲もぐっと広がりますね〜。引き<br />
続きFreeRTOSの動作を勉強しつつSTM32 Primer2で未使用の機能に手を出して見よう<br />
と思います。また、STM32 Primer2とは別にもう少し大きい液晶を使用したデジタル<br />
フォトフレームの構想なんかも練っている最中です。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1pwTcfi6BUiRiJTXCYYFz9yeHhQv5N98kcqmh6ir9qZGYhO2zu9A9m4rMksc_qI1tRjyFumcLg5hrNM5m3acL5Kg/20100110_004.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1pwTcfi6BUiRiJTXCYYFz9yeHhQv5N98kcqmh6ir9qZGYhO2zu9A9m4rMksc_qI1tRjyFumcLg5hrNM5m3acL5Kg/20100110_004.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
↑だんだんサマになってきた!?<br />

]]></content:encoded>
    <dc:subject></dc:subject>
    <dc:date>2010-01-10T16:56:02+09:00</dc:date>
    <dc:creator>ネムイ・トリノミアス</dc:creator>
    <dc:publisher>B-Blog</dc:publisher>
    <dc:rights>ネムイ・トリノミアス</dc:rights>
  </item>

  <item rdf:about="http://nemuisan.blog.bai.ne.jp/?eid=167935">
    <link>http://nemuisan.blog.bai.ne.jp/?eid=167935</link>
    <title>仕事納め</title>
    <description>何とか時間取れました…なんか忙しくってホントに年末って感じがしませんね…

それはさておきaitendoさんのSPI液晶、時間を見て少しづついじってきましたが、ようやく
使えるようになってきました。使用の上での分かったことをいくつか…

●この液晶モジュールはSPI接...</description>
<content:encoded><![CDATA[
何とか時間取れました…なんか忙しくってホントに年末って感じがしませんね…<br />
<br />
それはさておき<a href="http://www.aitendo.co.jp/product/1770" target="_blank">aitendoさんのSPI液晶</a>、時間を見て少しづついじってきましたが、ようやく<br />
使えるようになってきました。使用の上での分かったことをいくつか…<br />
<br />
●この液晶モジュールはSPI接続でしか使えない。<br />
●SPI接続だと書き込み専用でしか使えない。よってシリアルINは要らない。<br />
●バックライトLEDは3つ。一つ当たりの電流値typが15mAなので<br />
　全部で45mA流す必要がある。<br />
●3.3V系でも使用可能だがやっぱ単一だとやっぱ暗い。バラつきを考えて定電流<br />
　制御ができるDCDCコンバータICを使用するのが良いでしょう。<br />
●45mA流してもまだ暗いんで55mA流すとそこそこかしら。<br />
●<a href="http://www.aitendo.co.jp/product/1621" target="_blank">ZY-FGD1442701V1</a>と比べると青みがなく自然に近い色です。<br />
●少ピンでのマイコンシステムには最適でしょう。しかし変換基板が…<br />
<br />
といったところでしょうか。変な癖も無く、使いやすい液晶だと思います。<br />
<br />
<br />
んでもってこのSPI液晶を使用した応用編…<br />
<br />
<a href="http://public.bay.livefilestore.com/y1p7iS5Q--ujKqZfFyoAvAdioQ1dMvwn8TiCPwC05KuUpLHKLnpIodNp9dO1yuLJtEnmKhZE43ZZBf2yOuxPoW8AA/20091231_001.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1p7iS5Q--ujKqZfFyoAvAdioQ1dMvwn8TiCPwC05KuUpLHKLnpIodNp9dO1yuLJtEnmKhZE43ZZBf2yOuxPoW8AA/20091231_001.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
↑以前紹介したEtherPodにFreeRTOSを乗っけたときは外部表示機能がなかったのですが<br />
今回SPI液晶を表示機として使用してみました。文字の表示法も<a href="http://hamayan.ddo.jp/~hamayan/so-net/font.html" target="_blank">セクスィ部長氏</a>と<a href="http://hp.vector.co.jp/authors/VA007110/technicalworkshop/fontxstudy/index.html" target="_blank">ProjectC3氏</a><br />
のページから勉強させてもらいました。<br />
フォントはフリーの美咲フォントを使用しています。他のサイズのフォントもいろいろ試<br />
してみようと思います。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1p7iS5Q--ujKoH5KV0R1MwoNmtM0ZWfDwxm1Qj1gEY3dWlADibpoPzgDqxKqwopOlQhXAyByv938FEIHiFDfnFig/20091231_002.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1p7iS5Q--ujKoH5KV0R1MwoNmtM0ZWfDwxm1Qj1gEY3dWlADibpoPzgDqxKqwopOlQhXAyByv938FEIHiFDfnFig/20091231_002.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
↑実は日本語フォントは上手くいかなくでず〜っと詰まってたのですがやっと一つの壁を<br />
超えた感じです。さぁつぎは避けまくってるUSBデバイスだ！…はまだ無理なので追々と。<br />
<br />
<br />
<br />
と、今年はこんなところで…。仕事の中でマイコンや回路設計を覚えていってその折にこの<br />
ブログも始めて、さらに他の方とも共同で作業をするようになって来ると一人で制作<br />
している時は見えてなかった部分がいろいろ見えてきたりもしました。<br />
この業界に身を置く限り、常に新しいことの勉強勉強の連続の日々なわけですが、これからも<br />
気力の続く限りずっと続けていきたいものです。
]]></content:encoded>
    <dc:subject></dc:subject>
    <dc:date>2009-12-31T22:56:42+09:00</dc:date>
    <dc:creator>ネムイ・トリノミアス</dc:creator>
    <dc:publisher>B-Blog</dc:publisher>
    <dc:rights>ネムイ・トリノミアス</dc:rights>
  </item>

  <item rdf:about="http://nemuisan.blog.bai.ne.jp/?eid=167205">
    <link>http://nemuisan.blog.bai.ne.jp/?eid=167205</link>
    <title>女主人超多忙に付き</title>
    <description>現在死ぬほど忙しいです。
駆け込みの案件が何個かあって、まぁ年末は去年もこんな感じでしたけど…。

年末までの短い期間にSTマイクロ以外のCortex-M3のマイコン攻勢が勢いを増してきました
ね〜。STマイクロがこのまま逃げ切るのか、はたまた他のメーカーがシェアを...</description>
<content:encoded><![CDATA[
現在死ぬほど忙しいです。<br />
駆け込みの案件が何個かあって、まぁ年末は去年もこんな感じでしたけど…。<br />
<br />
年末までの短い期間にSTマイクロ以外のCortex-M3のマイコン攻勢が勢いを増してきました<br />
ね〜。STマイクロがこのまま逃げ切るのか、はたまた他のメーカーがシェアを奪うのか気<br />
になるところです。どこも新しいのだすのはいいんですけど必ず付きもののerrata何とかし<br />
てほしいなと思ふ。<br />
<br />
<br />
話は変わりますがaitendoさんで<a href="http://www.aitendo.co.jp/product/1770" target="_blank">SPI接続のTFT液晶モジュール、H161T01</a>が販売されていま<br />
す。詳細は不明な点が多いのですが購入して試してみました。変換コネクタも必ずいるので<br />
実質1400円しますね…。<a href="http://www.aitendo.co.jp/product/1621" target="_blank">この前の</a>が安価で高性能すぎるのかしら。<br />
<br />
データシート見る限りではパラレルとシリアルでつなげられるように見えます。しかしパラ<br />
レル制御に必要なRD,WR,(68k系ならEもかな)がどこにも見当たりません。したがってシリアル<br />
でしか制御できないようです。"ウソつくんじゃねーパラレルでもできるぞ"っていう方は<br />
やり方教えてください…。<br />
<br />
今回"も"電源電圧+3.3V単一でも可能ですが、バックライトLEDのVfが+3.7Vです。まともに<br />
使うためには5V供給するなり昇圧するなりの工夫が必要でしょう。今回は制御だけが目的<br />
なので3.3Vのままで…。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1pgBvblqZZRiPdyqNTN1ftKWdVzcBZ1uZqMAuB5SG2QHEFy3Gs92Z6oFxT_vXVbLSjFwzIqBc9Y68HUvuehxTH-w/20091220_000.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1pgBvblqZZRiPdyqNTN1ftKWdVzcBZ1uZqMAuB5SG2QHEFy3Gs92Z6oFxT_vXVbLSjFwzIqBc9Y68HUvuehxTH-w/20091220_000.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
というわけで動かしてみました。<br />
データシートの額面通りだと50nSec(=20MHz)のクロックサイクルがtyp値となっています。<br />
STM32のIOは18MHz以上のトグルスピード出せるのでいつもの如く組むのが簡単なソフトSPI<br />
で。表示速度は<a href="http://www.aitendo.co.jp/product/1621" target="_blank">以前の</a>と比べると少し劣りますがストレスは全く感じません。さかさまに<br />
なってるけど表示方向としてはデータシート通りになっていて正しいのでしょうか???<br />
まぁいいや…。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1pRRW5mBQfyY2boN9A7Xra0fyxSCpFsz_3kRhwOqCvDIbIH3Z8xRxnQacNL1IgslpknL32b-gR13bNWfmmiVoREA/20091220_002.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1pRRW5mBQfyY2boN9A7Xra0fyxSCpFsz_3kRhwOqCvDIbIH3Z8xRxnQacNL1IgslpknL32b-gR13bNWfmmiVoREA/20091220_002.jpg" width=72" height="64" alt="un" class="pict" /></a><br />
ハイお約束。めくるめくいなちゃんの肌色世界。ここは未成年の学生さんでも楽しめる<br />
超健全なぶろぐなのでちゃんとピンぼｋ…やめて石投げないで<br />
<br />
<a href="http://public.bay.livefilestore.com/y1pgBvblqZZRiNCv0JVKnSIB8PfrCwqDLVaBEyIrzb2ydtc20AG4Jd5YGCpr9WmjT0VP8kM8p2hahhA1ZQ1mTkG3Q/20091220_003.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1pgBvblqZZRiNCv0JVKnSIB8PfrCwqDLVaBEyIrzb2ydtc20AG4Jd5YGCpr9WmjT0VP8kM8p2hahhA1ZQ1mTkG3Q/20091220_003.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
…大変失礼しました。こちらはカナメ・ワタツミ氏からのいただき物の私(ねむいさん)の<br />
イラストです。使わせてもらいます！<br />
<br />
<br />
<br />
ということでリセット線すら省けば最低CS,D/C,SCLK,SDATAのたった４本で動くので小ピン<br />
のマイコンとかでもきれいな画像が扱えるようになるでしょう。aitendoさんが専用のキャ<br />
リーボード出してくれたらもう一寸売れると思います(ｵｲ<br />
<br />
<br />
<br />
<br />
さらに話は変わりますが多分今日ので今年最後の日記になると思います。来年も安泰に<br />
続けたいものです…もう少し時間に余裕が欲しいですな…。<br />
んでもってCodeSourcery G++の新しい奴(4.4.1系)で少し前のソースコードをビルドすると<br />
ビルドできなかったりビルド通ってもまともに動かなかったりすることが分かったので<br />
(特にFreeRTOS絡み)そちらの保守の対応と説明にも時間がとられそうです…じかんｇ(ry
]]></content:encoded>
    <dc:subject></dc:subject>
    <dc:date>2009-12-20T11:13:19+09:00</dc:date>
    <dc:creator>ネムイ・トリノミアス</dc:creator>
    <dc:publisher>B-Blog</dc:publisher>
    <dc:rights>ネムイ・トリノミアス</dc:rights>
  </item>

  <item rdf:about="http://nemuisan.blog.bai.ne.jp/?eid=166988">
    <link>http://nemuisan.blog.bai.ne.jp/?eid=166988</link>
    <title>STM32 Primer2にFreeRTOSを乗せる1</title>
    <description>年末に差し掛かって糞ほど忙しくなっています。そんな中でも合間を縫って更新ッ…！


前回はSTM32 Primer2上にRIDEやCiecleOSなぞガン無視のBARE-METALな自分環境で
USBマスストレージクラス対応のミニフォトフレームなんか作ってたわけですが、今度は
すっかりおな...</description>
<content:encoded><![CDATA[
年末に差し掛かって糞ほど忙しくなっています。そんな中でも合間を縫って更新ッ…！<br />
<br />
<br />
前回はSTM32 Primer2上にRIDEやCiecleOSなぞガン無視のBARE-METALな自分環境で<br />
USBマスストレージクラス対応のミニフォトフレームなんか作ってたわけですが、今度は<br />
すっかりおなじみのFreeRTOSを乗せてちゃんとしたシステムを作ることにします。<br />
こちらもフォトフレームの制作時と学習を兼ねて段階的に進めていくつもりです。<br />
<br />
えーと先にもいいましたが<a href="http://www.stm32circle.com/projects/project.php?id=103" target="_blank">STM32Primer2のコミュニティサイトに既に移植されたのが<br />
ありますが</a>それはあえて一切視界に入れない方向でやっていきます！！！！<br />
<br />
<a href="http://public.bay.livefilestore.com/y1pss2LN-i1NxR-IaTs58lrzxfBr2ET2gCIT8P7IkXrvHHQ7gm_8-CsuDsIdAMxMGn6Eu2rYvRszLr7sOGiw5Z2FA/20091216_002.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1pss2LN-i1NxR-IaTs58lrzxfBr2ET2gCIT8P7IkXrvHHQ7gm_8-CsuDsIdAMxMGn6Eu2rYvRszLr7sOGiw5Z2FA/20091216_002.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
↑後発だから一味違う！！１！<br />
まずは第一歩、以前<a href="http://cid-36f4d1230f8a673c.skydrive.live.com/browse.aspx/.Public/src/Cortex/STM32F103VBT6/FreeRTOS" target="_blank">CQ-STARM向けに一番簡単なのをこさえていた</a>のでこれを2Primer2<br />
(STM32F103VET6)向けに移植を…。<a href="http://cid-36f4d1230f8a673c.skydrive.live.com/browse.aspx/.Public/src/Cortex/STM32F103VET6%5E_Primer2/06%5E_FreeRTOS/Simple" target="_blank">プログラム</a>の内容はLEDのタスクだけを動かすとい<br />
ったごくごく単純なものです。しかーし！！コミュニティにあるのと違う点はFreeRTOS<br />
が最新なのと<strong>真中のボタン長押しで電源が切れる</strong>という革新的ｎ<br />
…や　やめて石投げないで<br />
<br />
このプログラムがこれから先のFreeRTOS+STM32Primer2のたたき台になります。今度<br />
こそ横着しないでRTOSをまともに使いこなしていこうとおもいます。ついでにUSBもち<br />
ゃんと学習していきたいとおもいます。今度は本気出す！<br />
<br />
<br />
<br />
また、↑のと並行して<a href="http://nuttx.sourceforge.net/" target="_blank">NuttX</a>という別なフリーのRTOSの勉強も初めています。これはGenie<br />
氏が手掛けている<a href="http://etherpod.org/" target="_blank">EtherPod</a>というSTM32F107が乗ったマイコンモジュール(まだ試作段階<br />
ですが)に標準で搭載され、またそれに合わせた様々な機能がサポートされる予定に<br />
なっているのでEtherPodと併せて非常に注目すべきOSとなるでしょう。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1pR6Qx-i7cn3m4is5fokHtk7lXD6BK2ZH5MQl_6mTjUPfY5szE_WpldAxsDyD74PscQsxQR0Qwk-Q63_gAGmBBSw/20091216_003.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1pR6Qx-i7cn3m4is5fokHtk7lXD6BK2ZH5MQl_6mTjUPfY5szE_WpldAxsDyD74PscQsxQR0Qwk-Q63_gAGmBBSw/20091216_003.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
↑…実はすでにFreeRTOS+webserverのデモまで私が動かしててさらに<a href="http://www.aitendo.co.jp/product/1770" target="_blank">これ</a>のロー<br />
　レベルドライバもこしらえてる最中だったりしたり<br />

]]></content:encoded>
    <dc:subject></dc:subject>
    <dc:date>2009-12-16T02:31:35+09:00</dc:date>
    <dc:creator>ネムイ・トリノミアス</dc:creator>
    <dc:publisher>B-Blog</dc:publisher>
    <dc:rights>ネムイ・トリノミアス</dc:rights>
  </item>

  <item rdf:about="http://nemuisan.blog.bai.ne.jp/?eid=165819">
    <link>http://nemuisan.blog.bai.ne.jp/?eid=165819</link>
    <title>STM32 Primer2をBARE-METALで使ってみる(終) -フォトフレームを作る-</title>
    <description>大きなバグ出しも終わってやっとこ使用に耐えるものが完成です。上位層の作り込みは
Chan氏のFatFsやターミナルプログラムの凡例のおかげで開発期間の大幅な短縮が
できました。そしてCircleOSに頼らないBARE-METALな試みも今回でいったん終了です。

昨今の電子工作...</description>
<content:encoded><![CDATA[
大きなバグ出しも終わってやっとこ使用に耐えるものが完成です。上位層の作り込みは<br />
Chan氏のFatFsやターミナルプログラムの凡例のおかげで開発期間の大幅な短縮が<br />
できました。そしてCircleOSに頼らないBARE-METALな試みも今回でいったん終了です。<br />
<br />
昨今の電子工作は回路検証はもちろんケーシングも非常に重要なファクターになって<br />
いますが、もとからケースに入っているSTM32Primer2はとてもありがたいですなぁ。<br />
…ってことで、<br />
<br />
<br />
以下今回製作したフォトフレームの使用例を…<br />
<strong>※20091226:電源監視機能を強化しました。</strong><br />
<br />
<strong>※20091126:USB-MSC(マスストレージクラス)機能を追加しました</strong>。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1pmruCNHtizH3BNOACDkpNl4kCxcbheoiN44k_NGz1BWV8MKH11UNw-36bxvkvzIDYOtoUshI_S2FW8iKh9mEoyw/20091121_001.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1pmruCNHtizH3BNOACDkpNl4kCxcbheoiN44k_NGz1BWV8MKH11UNw-36bxvkvzIDYOtoUshI_S2FW8iKh9mEoyw/20091121_001.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
↑4+1入力キーの"真ん中"を押して電源投入。これはハード的に処理されています。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1pmruCNHtizH1e7CWfK4SWZaGX41Fw5iNsjsTh4J3LF13s-_xnwmZHdbyaKWkr5IFljbgttGy8KzLnSkFIiKjhGg/20091121_002.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1pmruCNHtizH1e7CWfK4SWZaGX41Fw5iNsjsTh4J3LF13s-_xnwmZHdbyaKWkr5IFljbgttGy8KzLnSkFIiKjhGg/20091121_002.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
↑電源投入->タイトル表示後はSTM32Primer2に挿入されているSDカードを読み込み、ファ<br />
　イラを起動します。ファイルシステムはFatFsを使用しFAT12,FAT16,FAT32のフォーマット・<br />
　およびロングファイルネームが使用可能です(画面上の表示は8.3形式ですが）。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1pmruCNHtizH1AQkCbdqfS1SKf_ANnhH-MP6nTu5T7BfnuYVQNVJZQ3lf8EW75RFbk7iOFwaskofdfIihTBwYqSA/20091121_003.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1pmruCNHtizH1AQkCbdqfS1SKf_ANnhH-MP6nTu5T7BfnuYVQNVJZQ3lf8EW75RFbk7iOFwaskofdfIihTBwYqSA/20091121_003.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
↑ファイラ画面の基本操作は↑↓がファイルポインタの移動、→がEnter,←がCancel<br />
　に相当します。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1pEu6NML5YSRwzJoRs7kC3I70iJHX0FHEqIbLGlJP9rnbDcULeqbo_T5dupivi268BtopuoUcX8g3thw9ikWk5TA/20091121_004.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1pEu6NML5YSRwzJoRs7kC3I70iJHX0FHEqIbLGlJP9rnbDcULeqbo_T5dupivi268BtopuoUcX8g3thw9ikWk5TA/20091121_004.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
↑画像はbmp形式が表示可能で128x160pixelまでの物が使用できます。それより小さいサ<br />
　イズは、真ん中合わせで表示されます。画像はひねもすのたり氏画の私(ねむいさん)。<br />
　…びいぶろ君が欲情すると困るからピンボケ！<br />
<br />
<a href="http://public.bay.livefilestore.com/y1pmruCNHtizH0-08vJ1QrwkSd2P8nz_u5gpwH2W-SCwnZZ00MS5yBDBidyc5gVfp-Ul3nokldXVku7zA0Q7gaN8w/20091121_005.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1pmruCNHtizH0-08vJ1QrwkSd2P8nz_u5gpwH2W-SCwnZZ00MS5yBDBidyc5gVfp-Ul3nokldXVku7zA0Q7gaN8w/20091121_005.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
↑…すみません…お口直しに癒し系小動物を。otter-beerは結構有名らしいです。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1pjoWuGIZkL9G8HnCG7KcG3__MGUnK2_9RQghM19DKISstc4oDSJ6l2qz7W7H6MlTDX0ztp_uAEkTjckomNI2sXQ/20091121_006.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1pjoWuGIZkL9G8HnCG7KcG3__MGUnK2_9RQghM19DKISstc4oDSJ6l2qz7W7H6MlTDX0ztp_uAEkTjckomNI2sXQ/20091121_006.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
↑動画はimg形式。img形式のファイルは同梱のChan氏謹製の付属ツールでaviから生成<br />
　できます。再生中→キーで一時停止、その後↑↓キーでコマ送り、戻しができます。<br />
　上の画像のは虹裏で活動している名無しの絵師さんの動画をお借りしました。<br />
<br />
<strong>20091126追加</strong><br />
<a href="http://public.bay.livefilestore.com/y1pfBxcEfaU8FKKGAQ2okuFBB0bescBYG6ika9hZVnNelwDqyq0F00x9v54u-tq6y3Jxji6rlG03uVsnnurTy1SUg/20091126_001.png" target="_blank"><img src="http://public.bay.livefilestore.com/y1pfBxcEfaU8FKKGAQ2okuFBB0bescBYG6ika9hZVnNelwDqyq0F00x9v54u-tq6y3Jxji6rlG03uVsnnurTy1SUg/20091126_001.png" width="320" height="240" alt="un" class="pict" /></a><br />
↑USBマスストレージモードに入るためにはUSBケーブルをSTM32Primer2の<br />
　"STM32"側のコネクタに挿し、ファイラのルートディレクトリでLeftキーを押します。<br />
　LCDの画面が暗転し、PCにディスクドライブがマウントされたら成功です。<br />
<br />
<strong>20091126追加</strong><br />
<a href="http://public.bay.livefilestore.com/y1pfBxcEfaU8FJw8xx-2ZIRmTSv5oPAd5FWMUrrhiQr5JucndRah7OtOUlSPOQUq5dM7rziCnsJltXo55SMSePRFQ/20091126_002.png" target="_blank"><img src="http://public.bay.livefilestore.com/y1pfBxcEfaU8FJw8xx-2ZIRmTSv5oPAd5FWMUrrhiQr5JucndRah7OtOUlSPOQUq5dM7rziCnsJltXo55SMSePRFQ/20091126_002.png" width="320" height="240" alt="un" class="pict" /></a><br />
↑MSCモードからファイラに戻るためにはLeftキーをもう一度押します。ディスクドライブが<br />
　　アンマウントされ、ファイラの画面に戻ります。、<br />
<br />
<br />
<a href="http://public.bay.livefilestore.com/y1pjoWuGIZkL9HDUP7y9fT7pqxYE7lTaOHkgsNW6i3euoAdApBuxhpjwha0PSyORQd1SuKNCSMxYAfP9ES03YxvPw/20091121_007.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1pjoWuGIZkL9HDUP7y9fT7pqxYE7lTaOHkgsNW6i3euoAdApBuxhpjwha0PSyORQd1SuKNCSMxYAfP9ES03YxvPw/20091121_007.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
<a href="http://public.bay.livefilestore.com/y1pSGrXHVj_7vyBJM7K2OMOURtUyMkMS2k78-yE0jne4PhMgUTPhq5sZm89vy_FPCzGBWwEB3gOxHg80OpR02wgYA/20091121_008.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1pSGrXHVj_7vyBJM7K2OMOURtUyMkMS2k78-yE0jne4PhMgUTPhq5sZm89vy_FPCzGBWwEB3gOxHg80OpR02wgYA/20091121_008.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
↑UART2からの通信にも対応。上記結線(TTLレベルな)でホストPCと接続。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1pEvZX4XRC9z1xUhHabqu1vvTXI_ONpcYW5beqNe65aKThKCxPlP3ik5GdTHyeIxayEgHM4vgrLgrTs2qnCooPzA/20091121_010.PNG" target="_blank"><img src="http://public.bay.livefilestore.com/y1pEvZX4XRC9z1xUhHabqu1vvTXI_ONpcYW5beqNe65aKThKCxPlP3ik5GdTHyeIxayEgHM4vgrLgrTs2qnCooPzA/20091121_010.PNG" width="320" height="240" alt="un" class="pict" /></a><br />
↑ホストPCのターミナル(230400bps,8,N,1)上からESCキーを押すことで、ファイラは<br />
   終了し、FatFsのUART上のモニタプログラムが走ります。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1pQU92O4A0X-Za3jxZvqot1PQ3NePC8QitQ1OpnPgekeDC354HOvXFNv1zgsPz9rdpMzW9DKQnepmmDljch2oKng/20091121_009.PNG" target="_blank"><img src="http://public.bay.livefilestore.com/y1pQU92O4A0X-Za3jxZvqot1PQ3NePC8QitQ1OpnPgekeDC354HOvXFNv1zgsPz9rdpMzW9DKQnepmmDljch2oKng/20091121_009.PNG" width="320" height="240" alt="un" class="pict" /></a><br />
↑現状では時刻設定はUART上のモニタプログラムからのみ可能です。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1pSGrXHVj_7vw66tvuGcJ3F9l9R59gHETA2QohWtNd-JxbW0wpINtGbAraM8aj9nGff0jr8l69EJ1j-u6xdLOUAA/20091121_011.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1pSGrXHVj_7vw66tvuGcJ3F9l9R59gHETA2QohWtNd-JxbW0wpINtGbAraM8aj9nGff0jr8l69EJ1j-u6xdLOUAA/20091121_011.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
↑電源OFFは"真ん中"のキ―長押しで行います。この画面が出てからキーを放すと<br />
　FETスイッチが切れ電源OFFでとなります。<br />
<br />
と、こんな感じです。ミニフォトフレームに機能を絞っているので以下に挙げる機<br />
能は基板上には存在しますが使用していません。後は各人がソース変えてお好みで<br />
付け足してくださいね(ひでぇ)。<br />
*Not Used Devices<br />
 -Touch Sensor<br />
 -3D MEMS Sensor<br />
 -I2S Peripheral<br />
 -IrDA<br />
<br />
また将来搭載予定の機能は以下に。<br />
*Future Features<br />
 <S>-USB-MSC</S> <strong>実装済</strong><br />
 -LCD-Backlight Adjustment<br />
 -Adjustment Configuration which does not rely on host PC.<br />
 -Improve Backup Register Function.<br />
 <S>-Improve Power Management</S> <strong>実装済</strong><br />
<S>最優先はUSB-MSC。SDカードの抜き差しは面倒ですもんね。</S><br />
<strong>USB-MSC実装しました。</strong><br />
<br />
んでもって修正すべき項目は以下に。<br />
*Known Issues<br />
 <S>-Cannot execute program if there's no Li-Ion Battery jumper.</S>  <strong>Fixed.</strong><br />
 -Cannot execute backup function.<br />
 <S>現状Li-Ion電池のジャンパしてないとNo Batteryと判断されてしまいすぐに強制shutdown<br />
されてしまいます。電源電圧の上手い監視方法見つけたらこちらはすぐに修正します。</S> <strong>修正済</strong><br />
<br />
<br />
ということでまだまだ手を加えるべき点はありますが、興味を持たれた人は試して<br />
みてくださいね。<a href="http://cid-36f4d1230f8a673c.skydrive.live.com/browse.aspx/.Public/src/Cortex/STM32F103VET6%5E_Primer2/05%5E_PhotoFrame" target="_blank">ご利用は自己責任で〜</a><br />
<br />
<a href="http://public.bay.livefilestore.com/y1ped5Wb24ykr_jv8gAHjxGwYoJbg0iT2wtrBl3IsMLCJVmi6RSEOA6Nuf7PRa-s9EiamioUAGuwXjSpUyoXTeE5Q/20091121_012.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1ped5Wb24ykr_jv8gAHjxGwYoJbg0iT2wtrBl3IsMLCJVmi6RSEOA6Nuf7PRa-s9EiamioUAGuwXjSpUyoXTeE5Q/20091121_012.jpg" width="320" height="240" alt="un" class="pict" /></a>
]]></content:encoded>
    <dc:subject></dc:subject>
    <dc:date>2009-11-21T15:37:41+09:00</dc:date>
    <dc:creator>ネムイ・トリノミアス</dc:creator>
    <dc:publisher>B-Blog</dc:publisher>
    <dc:rights>ネムイ・トリノミアス</dc:rights>
  </item>

  <item rdf:about="http://nemuisan.blog.bai.ne.jp/?eid=165671">
    <link>http://nemuisan.blog.bai.ne.jp/?eid=165671</link>
    <title>STM32 Primer2をBARE-METALで使ってみる5 -FatFsの実装-</title>
    <description>もともとBARE-METALで取り組むのを決めたいきさつは、Chan氏のLPC2388向けのOLED
表示プログラムを&quot;STM32で再現できたら素敵じゃないか&quot;って構想から始まって少しずつ
実現して来たわけですが,STM32Primer2でも再現してみたい！という思惑からはじまっ
てます…。

今...</description>
<content:encoded><![CDATA[
もともとBARE-METALで取り組むのを決めたいきさつは、Chan氏のLPC2388向けのOLED<br />
表示プログラムを"STM32で再現できたら素敵じゃないか"って構想から始まって少しずつ<br />
実現して来たわけですが,STM32Primer2でも再現してみたい！という思惑からはじまっ<br />
てます…。<br />
<br />
今回その要であるFatFsの実装にとり掛りました。STM32F107VCT6ではSDカードのアクセス<br />
にSPIを使用していましたが、STM32Primer2(STM32F103VET6)ではSDIOインターフェース<br />
が搭載されているのでこちらを使います。またSDIOのドライバはSTマイクロさん本家から<br />
MassStorageClassのデモの形で提供されているので<a href="http://www.rowley.co.uk/" target="_blank">Rowley</a>のサイトにある移植例を手本<br />
に"ゲタ"合わせを行いました。(ベースは<a href="http://cid-36f4d1230f8a673c.skydrive.live.com/browse.aspx/.Public/src/Cortex/STM32F107VCT6/FatFs" target="_blank">STM32F107VCT6のFatFs</a>)<br />
<br />
LCDの時よりかは手こずらずに移植は完了しました。が、いくつか引っかかる点が…<br />
<br />
?割り込み版のUART-Txを使うとxprintf関数を実行したときうまく表示できない<br />
　いろいろやってみましたが文字の送信がうまくいかなかったので折角割り込み版をこさ<br />
　えたのにポーリング版に戻したorz(Rxは割り込みでも問題なし) <br />
  私の経験と知識の無さはこういう形で表れてくるorz<br />
<br />
?RTCの初期化がうまくいかない<br />
　STM32Primer2は電力消費を抑えるためにVbat周辺の回路も同じく低消費電力化されて<br />
　います。<a href="http://nemuisan.blog.bai.ne.jp/?eid=155845" target="_blank">以前</a>の回路ではうまくいってたバックアップ方法は今回は動きませんでした。<br />
　具体的に言うとバックアップレジスタにマジックナンバを書いておいてその有無でバッ<br />
　クアップされているか判定していたのですが、STM32Primer2の回路だとそこが正しく<br />
　読めない…仕方ないのでマジックナンバが書かれているかの判定部分は削除しておく<br />
　と時刻情報はかろうじて保持されているのでひとまずこれで進めることに…<br />
<br />
開発が落ち着いたらバグ出しついでに上記2点の問題おっかけます。特に大きな支障は<br />
ないので今は対策を保留…。<br />
<br />
<br />
<br />
とりあえずFatFsが動いたので読み込み転送速度の比較を行ってみました。使用したSDカー<br />
ドはATP製の4GBSDHCカード。Class6のものです。比較検証用のファイルはL氏のwebラジオ、<br />
"Lの虹裏ピアノラジオ"を録音したmp3ファイル(132MByte)を使用しました。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1p8wPeC8kBf8OhhNGcnpaqsKYDpM0hGCUwV2_8ZLjfLehN9QRfRofM4kIwMeBt0u4CV0bEPt4FCoVJ3rKlIhymHw/20091117_002.png" target="_blank"><img src="http://public.bay.livefilestore.com/y1p8wPeC8kBf8OhhNGcnpaqsKYDpM0hGCUwV2_8ZLjfLehN9QRfRofM4kIwMeBt0u4CV0bEPt4FCoVJ3rKlIhymHw/20091117_002.png" width="320" height="240" alt="un" class="pict" /></a><br />
↑まず<a href="http://cid-36f4d1230f8a673c.skydrive.live.com/browse.aspx/.Public/src/Cortex/STM32F107VCT6/FatFs" target="_blank">STM32F107VCT6の</a>(SPI,18MHz,DMA使用)で…まずまずです。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1p8wPeC8kBf8P385kYtZU4ytXb57vlq4nlIuma3Em3Exe8rm_nq9jrVJpSVVEx5ReNSj7946NCvnldKSwhZzcF_A/20091117_001.png" target="_blank"><img src="http://public.bay.livefilestore.com/y1p8wPeC8kBf8P385kYtZU4ytXb57vlq4nlIuma3Em3Exe8rm_nq9jrVJpSVVEx5ReNSj7946NCvnldKSwhZzcF_A/20091117_001.png" width="320" height="240" alt="un" class="pict" /></a><br />
↑次に今回STM32 Primer2に実装したの(SDIO,4bitmode,24MHz,DMA使用)…あれれ、思った<br />
ほど伸びませんでしたね…。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1pBFtFCRxz-0Bj-tLGANs0QRkFqCoXTsMgHEfl7EtfeGXQD4pHNxsJxK8ihECyJIHbjGmw5AqXhgsvmLsOKnoS2Q/20091117_003.png" target="_blank"><img src="http://public.bay.livefilestore.com/y1pBFtFCRxz-0Bj-tLGANs0QRkFqCoXTsMgHEfl7EtfeGXQD4pHNxsJxK8ihECyJIHbjGmw5AqXhgsvmLsOKnoS2Q/20091117_003.png" width="320" height="240" alt="un" class="pict" /></a><br />
↑最後にChan氏の<a href="http://cid-36f4d1230f8a673c.skydrive.live.com/browse.aspx/.Public/src/LPC2388/MCI%5E_OLED" target="_blank">LPC2388用MCIアクセスプログラム</a>(MCI,4bitmode,18MHz,DMA使用)。<br />
ううむ…ぶっちぎりですなぁ…。<br />
<br />
STM32のSDIOはもっと伸びるとおもうんですけどどっかでフン詰まりになっているようで<br />
すね･･･まぁ現状でも十分すぎるのでこちらの件は以後の改善課題としておきます。<br />
<br />
次回は今まで検証してきた成果をすべて組み合わせ、BARE-METALなプロジェクトの到達<br />
目標としていたPrimer2用フォトフレームの制作に挑みます。<br />

]]></content:encoded>
    <dc:subject></dc:subject>
    <dc:date>2009-11-17T22:20:46+09:00</dc:date>
    <dc:creator>ネムイ・トリノミアス</dc:creator>
    <dc:publisher>B-Blog</dc:publisher>
    <dc:rights>ネムイ・トリノミアス</dc:rights>
  </item>

  <item rdf:about="http://nemuisan.blog.bai.ne.jp/?eid=165479">
    <link>http://nemuisan.blog.bai.ne.jp/?eid=165479</link>
    <title>よりみち</title>
    <description>開発上でいくつか大きな変更があったので、ちょっと寄り道させてもらいます。

先日、STマイクロより待望のUSBライブラリの新版がリリースされました。しかし…
残念ながらUSB-HOST/OTGのサンプルはないっぽいorz。しばらく海外のForumを旅して
きますか…。

既存の...</description>
<content:encoded><![CDATA[
開発上でいくつか大きな変更があったので、ちょっと寄り道させてもらいます。<br />
<br />
先日、STマイクロより待望の<a href="http://" target="_blank">USBライブラリ</a>の新版がリリースされました。しかし…<br />
残念ながらUSB-HOST/OTGのサンプルはないっぽいorz。しばらく海外のForumを旅して<br />
きますか…。<br />
<br />
既存のプログラムの動作の確認は、先にリリースされていたRC版で予習済なので今回<br />
のライブラリをフォルダごとごっそり差し替えるだけで終わっています。もちろん動作も確認済。<br />
<br />
そして先に告知していましたがSTM32F103のMiddleDensity系は今回の更新でクローズ、<br />
あとSTM32F107VBTの方はSTM32F107VCT6と統合するので削除とします。これから先は<br />
STM32F107VCT6とSTM32Primer2(STM32F103VET6)を中心に開発を進めていくつもりです。<br />
また、おきばの方も近々リニューアルする予定です。<br />
<br />
それともう一点、いつもARMマイコンのビルドに使っている<a href="http://www.codesourcery.com/sgpp/lite/arm" target="_blank">CodeSourcery G++</a>がバージ<br />
ョンアップしてGCCが4.4.1に変わっていました。以前3系->4系に変わったときに最適化の<br />
され過ぎでビルドが通っても思ったよう動かない等の問題があったので試しにいくつか<br />
のプログラムをビルドして動かしてみると案の定変な動作するものが出てきました。<br />
<br />
具合的に言うとLPC2388のプログラムでswitch文を含むコードを最適化して実行すると<br />
暴走する箇所があり、原因を調べるとリンカスクリプト内のアラインメントの設定でした。<br />
これは元々AT91R40708でRAMスタートするときに行っていた処置で,.text内の記述で<br />
	. = ALIGN(4);であるところを<br />
	. = ALIGN(8);としていました。<br />
それを他にもツブシがきくようにと別のARMマイコンのリンカスクリプトにも移植してその<br />
時の環境では動作に問題なかったため放置していましたがこれがあだになってしま<br />
っていたようです。そして". = ALIGN(4);"に直して無事正常動作を確認しました。<br />
<br />
ビルド環境がバージョンアップしたり変わったりするとよくこういうことになりが<br />
ちですが,こまめに直していかないといけないですね…。<br />

]]></content:encoded>
    <dc:subject></dc:subject>
    <dc:date>2009-11-14T14:28:11+09:00</dc:date>
    <dc:creator>ネムイ・トリノミアス</dc:creator>
    <dc:publisher>B-Blog</dc:publisher>
    <dc:rights>ネムイ・トリノミアス</dc:rights>
  </item>

  <item rdf:about="http://nemuisan.blog.bai.ne.jp/?eid=165395">
    <link>http://nemuisan.blog.bai.ne.jp/?eid=165395</link>
    <title>STM32 Primer2をBARE-METALで使ってみる4 -FSMCとLCD-</title>
    <description>もうすっかり使いこなせて当然…なはずのカラーグラフィックLCDのつもりでしたが結構
苦戦しました…。STM32Primer2ではLCDの結線はSTM32のFSMCを使用したバス接続
となっていて、CircleOSもこれを利用してLCDの操作を行っています。LCDモジュールの
コントローラICはST7...</description>
<content:encoded><![CDATA[
もうすっかり使いこなせて当然…なはずのカラーグラフィックLCDのつもりでしたが結構<br />
苦戦しました…。STM32Primer2ではLCDの結線はSTM32のFSMCを使用したバス接続<br />
となっていて、CircleOSもこれを利用してLCDの操作を行っています。LCDモジュールの<br />
コントローラICはST7732。以前のTFTモジュールやi2c液晶なんかとおなじメーカの奴です。<br />
<br />
ST7735の時と同じ風にやったら楽勝だろうと考えていたらモジュール内部で完結して<br />
いるICのモード設定ピンの関係に気づくまでどうしても表示がうまくいかなくてうｎうｎ唸って<br />
いました。コントローラICが同じもしくは同等品であってもモジュール全体でみると初期化・<br />
制御の仕方とか微妙に違うってことを思い知りました(いまさらか)。<br />
<br />
上記のことさえ注意しておけば後は特に気にすることなくすんなりと一枚絵の表示まで<br />
こぎつけました。128x160フルに使って表示できます。<br />
<br />
<span style="font-size:x-small;">※性的描写があるので小さく表示</span><br />
<a href="http://public.bay.livefilestore.com/y1pZMpkL5gQg31fBu3zeHgcePCVzavs0Kbm5H_9KqfLjf6mdHn-T4DrXkexA8ZZZqnBq0xp3UZJ2HevxP0yybBTOQ/20091112_001.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1pZMpkL5gQg31fBu3zeHgcePCVzavs0Kbm5H_9KqfLjf6mdHn-T4DrXkexA8ZZZqnBq0xp3UZJ2HevxP0yybBTOQ/20091112_001.jpg" width="90" height="60" alt="un" class="pict" /></a><br />
↑ごめん…またいなちゃんなんだ…もう許してもらおうとも思ってはいない<br />
　…でもやめられない&hearts;<br />
<br />
今回はWindowsで普通に作成できる24bitのビットマップをそのままC言語ヘッダファイル<br />
に変換して直接読み込んでいます(内部で16bitに変換してます)。FatFsが次に控えて<br />
いるのでそれを意識しています。<br />
<br />
後気づいたことを一つ…<br />
<a href="http://www.stm32circle.com/forum/viewtopic.php?id=621" target="_blank">CircleOSのフォーラム</a>見ていると拡張コネクタから出ているi2cやcanがFSMCからの干渉<br />
でうまく動かないなどのことが議論されています。回路図見た感じではFSMCのバスは外<br />
には手軽に出せないし現状LCD専用状態だしで、あんましFSMC使うメリットが見当たら<br />
ないように気がしますが私の検証用のプログラムはCircleOSのを真似てFSMC使っています。<br />
<br />
今回のコードは<a href="http://cid-36f4d1230f8a673c.skydrive.live.com/browse.aspx/.Public/src/Cortex/STM32F103VET6%5E_Primer2/04%5E_FSMC%5E_LCD-BASIS" target="_blank">こちらに</a>…ご利用は自己責任で…。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1pZMpkL5gQg31vUVDH-EmjtCECcz-_qtElXdRuhVgV2GyWaSjGhSktIQxGUXJd6GXZD3NECwU7-r3TFJ5VHU796w/20091112_002.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1pZMpkL5gQg31vUVDH-EmjtCECcz-_qtElXdRuhVgV2GyWaSjGhSktIQxGUXJd6GXZD3NECwU7-r3TFJ5VHU796w/20091112_002.jpg" width="320" height="240" alt="un" class="pict" /></a>
]]></content:encoded>
    <dc:subject></dc:subject>
    <dc:date>2009-11-12T01:20:18+09:00</dc:date>
    <dc:creator>ネムイ・トリノミアス</dc:creator>
    <dc:publisher>B-Blog</dc:publisher>
    <dc:rights>ネムイ・トリノミアス</dc:rights>
  </item>

  <item rdf:about="http://nemuisan.blog.bai.ne.jp/?eid=165224">
    <link>http://nemuisan.blog.bai.ne.jp/?eid=165224</link>
    <title>STM32Primer2をBARE-METALで使ってみる3 -ADCによる電源監視とUART2-</title>
    <description>前回はSystickタイマを利用したスイッチ入力で電源の制御を行いました。しかし
電源を付けっぱなしにしているとどんどん電力が消費され、ついには3.5Vを切って
しまいます。（リチウムイオン電池の詳細な特性については他の専門に解説されて
いる方たちにうっちゃる(う...</description>
<content:encoded><![CDATA[
<a href="http://nemuisan.blog.bai.ne.jp/?day=20091107" target="_blank">前回</a>はSystickタイマを利用したスイッチ入力で電源の制御を行いました。しかし<br />
電源を付けっぱなしにしているとどんどん電力が消費され、ついには3.5Vを切って<br />
しまいます。（<a href="http://www.google.co.jp/search?q=%E3%83%AA%E3%83%81%E3%82%A6%E3%83%A0%E3%82%A4%E3%82%AA%E3%83%B3%E9%9B%BB%E6%B1%A0%E3%80%80%E7%89%B9%E6%80%A7&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a" target="_blank">リチウムイオン電池の詳細な特性</a>については他の専門に解説されて<br />
いる方たちにうっちゃる(うｎ？)として、）実際3.5V以下になると急速に電圧が低<br />
下していってしまうという特性があるので3.5Vできっちり止めなければなりません。<br />
<br />
STM32Primer2はリチウムイオン電池の電圧低下をハードウエアで監視する機構がな<br />
いのでSTM32に内蔵されたADCを利用してソフト的に監視し、3.5V以下になったら強<br />
制的にシャットダウンする必要があります。今回はCircleOSのDMAを利用したADCと<br />
過去の自分のコードを利用して電源監視ルーチンを作りました。<br />
<br />
電源監視ルーチンはCircleOSで行っている方法とほぼ一緒で、1Secごとに移動平均<br />
化されたVbatの値が3500(3500mV)になりさらにそれが15秒間連続した時にSHUTDOUN<br />
信号を出してFETスイッチをOFFにするというものです。<br />
<br />
そしてこの機構が実際に機能しているかどうかを確認するためにモニタリングする<br />
必要がありますが、この検証には背面の拡張コネクタから出ているUART2を利用し<br />
ました。このUART2のルーチンも自分の過去の(ry)でprintfにリダイレクトさせるよ<br />
うにしています。<br />
<br />
以前107系等で組んでいた時はUART-Txだけは割り込みを使用せず、ポーリングで回し<br />
ていました。今回UART-Txも割り込み方式に変えています。それで初めて気づいた<br />
のですがprintf等使用時に高速にバッファに転写すると早すぎて割り込み処理が<br />
間に合わず、文字列が反転した状態で出てきてしまいましたので少し細工を行い安<br />
定して文字列を送信できるようにしました。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1pB5C7ItTOhgGssgXFsmnb83iaADsUzH6vqeid77EWAWmGF2YiKDxTWnuLvzq0n0tSXuGj8kTimMnZKnYn15z5NQ/20091108_002.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1pB5C7ItTOhgGssgXFsmnb83iaADsUzH6vqeid77EWAWmGF2YiKDxTWnuLvzq0n0tSXuGj8kTimMnZKnYn15z5NQ/20091108_002.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
↑大活躍の極小USB-Serial変換(画像右上)。<br />
<br />
以上の条件下(72MHz駆動,LCDバックライトは未制御のため全点灯)でUART2から文字<br />
列を排出した状態で電源電圧低下を感知して自動で切れるまでモニタリングを行い<br />
ました<br />
<br />
<a href="http://public.bay.livefilestore.com/y1pB5C7ItTOhgEd9YTOyr1_N7xzYpjvrwLF4_F_1qZahgkzKdIo_H9kfD78KSI5WU9_rnzZSLKQnE-wmvgcd_PDMA/20091108_001.png" target="_blank"><img src="http://public.bay.livefilestore.com/y1pB5C7ItTOhgEd9YTOyr1_N7xzYpjvrwLF4_F_1qZahgkzKdIo_H9kfD78KSI5WU9_rnzZSLKQnE-wmvgcd_PDMA/20091108_001.png" width="320" height="240" alt="un" class="pict" /></a><br />
上図の結果のとおり、満充電4.1Vから徐々に電圧が落ちて行って3.5Vに差し掛かっ<br />
たところでFETスイッチが切れています。また3.6V付近から電圧の落ち込みが急速に<br />
早くなっているのが分かりますね。自働強制シャットダウンまで約4時間まるまる<br />
かかりましたがCPUは最高速度,LCDのバックライトも未制御の最大輝度ですのかな<br />
り電流喰っている状態です。この二つを制御できたらさらに持つでしょうね。<br />
<br />
今回のソースは<a href="http://cid-36f4d1230f8a673c.skydrive.live.com/browse.aspx/.Public/src/Cortex/STM32F103VET6%5E_Primer2/03%5E_UART2%5E_adcdma" target="_blank">こちらに</a>…ご利用は自己責任で…。次回はFSMCを使ったLCDの制御に<br />
入ります。FSMCは全く使用したことがないので少々手こずりそうです。
]]></content:encoded>
    <dc:subject></dc:subject>
    <dc:date>2009-11-08T13:00:22+09:00</dc:date>
    <dc:creator>ネムイ・トリノミアス</dc:creator>
    <dc:publisher>B-Blog</dc:publisher>
    <dc:rights>ネムイ・トリノミアス</dc:rights>
  </item>

  <item rdf:about="http://nemuisan.blog.bai.ne.jp/?eid=165165">
    <link>http://nemuisan.blog.bai.ne.jp/?eid=165165</link>
    <title>STM32Primer2をBARE-METALで使ってみる2 -Systickタイマと電源制御-</title>
    <description>前回は一番基本的なLEDの点滅を行いました。点滅だけなので、STM32 Primer2のバッ
テリーの制御(電源OFF)ができません。これから先いちいちUSBケーブルを抜き差し
するのは不便なので今回は電源制御を行います。


電源の制御にあたって、STM32(というかCortex-M3)に...</description>
<content:encoded><![CDATA[
前回は一番基本的なLEDの点滅を行いました。点滅だけなので、STM32 Primer2のバッ<br />
テリーの制御(電源OFF)ができません。これから先いちいちUSBケーブルを抜き差し<br />
するのは不便なので今回は電源制御を行います。<br />
<br />
<br />
電源の制御にあたって、STM32(というかCortex-M3)に搭載されているSystickタイマ<br />
を利用し、定期的にSWポートをスキャンしてある条件を満たしていれば電源をOFFに<br />
することにします。これはCircleOSと同じ仕様ですね。<br />
<br />
具体的には1mSecごとにCenterキー(PA8)を走査して5000mSecの間連続してHiレベルに<br />
あったときにSHUTDOWN(PC13)をHiレベルにしてFETスイッチをOFFにします。4入力キ<br />
ーの定義も行っていますが、今回は使うのはまだCENTERキーだけです。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1p023bM8x_vRk1zwbSvs5bPduM2PRoS6OtxxdoFvPB2Hbpul4XDg1MzgklfAcKrJbrW7wzC3yIGHiEwk-fkgA_Vw/20091107_001.png" target="_blank"><img src="http://public.bay.livefilestore.com/y1p023bM8x_vRk1zwbSvs5bPduM2PRoS6OtxxdoFvPB2Hbpul4XDg1MzgklfAcKrJbrW7wzC3yIGHiEwk-fkgA_Vw/20091107_001.png" width="240" height="320" alt="un" class="pict" /></a><br />
↑4+1キー入力と電源制御(SHUTDOWN)周辺<br />
<br />
またRLINKのフラッシュの方法も少し工夫しました。RFlasher7でちんたらやってた<br />
ら非常に煩わしいので、OpenOCDを使ってた時よろしくmake programでコマンドラ<br />
インのフラッシュライタを呼び出し、バッチ処理しています。これでOpenOCD使って<br />
た頃とまったく変わらない操作性になりました。やっぱこっちのスタイルの方がい<br />
いですね〜&#9829;<strong>もちろんRLINKのデバイスドライバはWinUSBの方で！</strong><br />
<br />
<a href="http://public.bay.livefilestore.com/y1p023bM8x_vRkz62NN3DgztICT-5IpKkrbL8Wq8PfxUbIC7sxVYKuDg7H-nfXv7UHysn9FLKfgjY4wF1YjiKLlUA/20091107_002.PNG" target="_blank"><img src="http://public.bay.livefilestore.com/y1p023bM8x_vRkz62NN3DgztICT-5IpKkrbL8Wq8PfxUbIC7sxVYKuDg7H-nfXv7UHysn9FLKfgjY4wF1YjiKLlUA/20091107_002.PNG" width="320" height="240" alt="un" class="pict" /></a><br />
↑OpenOCDのフラッシュプログラムの処理をRLINKに置き換える<br />
<br />
<br />
土台が整ったので、ここから先は駆け足になると思います。同じ事やってても何も<br />
身につかないのは自覚してるので浅く広く早くでやっていくつもりです。<br />
一応ねむいさんの基本スタンスは…<br />
●無償で公開されてるライブラリ・プログラムは極力有り難く利用させてもらう。<br />
●↑のことした場合は"ネットで見つけた"とか書かずに公開元のルールのもと引<br />
　用先をブログやソース内で明示させてもらう。<br />
●使わせてもらう前にざっとでいいからコードを眺めて流れを把握する。<br />
●ここは自分でやらないとだめだ！って部分は自分で調べてフルスクラッチで書く。<br />
●真似てやって壊れても潰れても燃えても泣かない<strong>(これ重要)</strong>。一度壊したけど。<br />
●他の方がされていることに過度に干渉しない<strong>(これ重要)</strong>。<br />
この辺虹裏内での立ち回りと全く同じなわけですが、気をつけます。<br />
<br />
<br />
というわけで長くなりましたが<a href="http://cid-36f4d1230f8a673c.skydrive.live.com/browse.aspx/.Public/src/Cortex/STM32F103VET6%5E_Primer2/02%5E_Systick%5E_power" target="_blank">今回のソースを</a>。ご利用は自己責任で！
]]></content:encoded>
    <dc:subject></dc:subject>
    <dc:date>2009-11-07T10:54:13+09:00</dc:date>
    <dc:creator>ネムイ・トリノミアス</dc:creator>
    <dc:publisher>B-Blog</dc:publisher>
    <dc:rights>ネムイ・トリノミアス</dc:rights>
  </item>

  <item rdf:about="http://nemuisan.blog.bai.ne.jp/?eid=165114">
    <link>http://nemuisan.blog.bai.ne.jp/?eid=165114</link>
    <title>STM32Primer2をBARE-METALで使ってみる1</title>
    <description>BARE-METALとか横文字でかっこつけてみたけれどつまりCircleOS(とそのAPI)使わないで
やってみるというわけです。STM32F103VET6(を使ったSTM32Primer2のハードウエア)
に合わせたフレームワーク作りをやって行きます。

今までSTM32F103VBT6(CQ-STARM),STM32F107VCT6...</description>
<content:encoded><![CDATA[
BARE-METALとか横文字でかっこつけてみたけれどつまりCircleOS(とそのAPI)使わないで<br />
やってみるというわけです。STM32F103VET6(を使ったSTM32Primer2のハードウエア)<br />
に合わせたフレームワーク作りをやって行きます。<br />
<br />
今までSTM32F103VBT6(CQ-STARM),STM32F107VCT6とやって来てリンカスクリプトや<br />
スタートアップの組み方は熟知してますので定義だけ変えてあげれば終わりです。<br />
STM32F107VCT6をベースにしてPrimer2上の2つのLEDを交互に点滅するプログラムを<br />
こしらえるのが今回の最初の目標です。(FWライブラリは勿論V3.1.2の最新で）<br />
<br />
STマイクロさんが用意してくれているCソースのシステムクロック用の設定は、デフォルトが<br />
103,101系は8MHz,107系は25MHzの外部クロックを想定しています。STM32Primer2は<br />
12MHzのクリスタルを使用するため、system_stm32f10x.cにあるクロックPLLを設定する<br />
関数内で一部定義を書き換える必要があります。提供されたライブラリにはなる<br />
べく触りたくなかったので、コピーしたファイルをリネームしてmain.cと同じ場所に置きました。<br />
<a href="http://public.bay.livefilestore.com/y1pODMecTUggVOZFEQ7HyoM8_5cX-F9aaIuWpXArCn7fVW5M8qPaEWtkuDWey-IlZjNdIh2wTGPu2GtGZwB1tICwQ/20091106_001.PNG" target="_blank"><img src="http://public.bay.livefilestore.com/y1pODMecTUggVOZFEQ7HyoM8_5cX-F9aaIuWpXArCn7fVW5M8qPaEWtkuDWey-IlZjNdIh2wTGPu2GtGZwB1tICwQ/20091106_001.PNG" width="320" height="240" alt="un" class="pict" /></a><br />
↑赤で囲った部分がPLLの定義を書き換えたところ<br />
<br />
さらに、使用している外部クロックを決める定義(HSE_Value)はmakefile内で行っています。<br />
<br />
プログラムの書き込みは先日<strong>無理やり適用した</strong>WinUSBのドライバで安定して動くよ<br />
うになったRlink(ビルドイン)を使い、RFlasher7で書き込みます。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1pODMecTUggVMN93ZbagCBjlyhnY3zhJG2DNrQ0NSi1inFzBSVoqqEGB0FxeYkQsiMEn-s4zpxVYo_mwm6dQ5Dew/20091106_002.jpg" target="_blank"><img src="http://public.bay.livefilestore.com/y1pODMecTUggVMN93ZbagCBjlyhnY3zhJG2DNrQ0NSi1inFzBSVoqqEGB0FxeYkQsiMEn-s4zpxVYo_mwm6dQ5Dew/20091106_002.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
まだ電源制御は乗っけていませんので<a href="http://todotani.cocolog-nifty.com/blog/2009/09/stm32-primer2-0.html" target="_blank">「PS3とLinux、電子工作も」氏の記述</a>にある<br />
とおり電源のONは出来てもOFFはできません。電源切る時はリチウムイオン電池の<br />
ジャンパとPCにつなげてるUSBケーブル引っこ抜いて切る必要があります。<br />
<br />
次回はこの電源制御を中心としてsystickタイマ・キー入力の実装を行うつもりです。<br />
本日のおソースは<a href="http://cid-36f4d1230f8a673c.skydrive.live.com/browse.aspx/.Public/src/Cortex/STM32F103VET6%5E_Primer2/Simplest" target="_blank">こちらに</a>。ご利用は自己責任でお願いします。
]]></content:encoded>
    <dc:subject></dc:subject>
    <dc:date>2009-11-06T07:55:42+09:00</dc:date>
    <dc:creator>ネムイ・トリノミアス</dc:creator>
    <dc:publisher>B-Blog</dc:publisher>
    <dc:rights>ネムイ・トリノミアス</dc:rights>
  </item>

  <item rdf:about="http://nemuisan.blog.bai.ne.jp/?eid=165060">
    <link>http://nemuisan.blog.bai.ne.jp/?eid=165060</link>
    <title>ペ プ シ あ ず き</title>
    <description>
…うおえっぷ。子供向けのシロップ状の薬思い出してしまった…。

そしてそんなことやってる間にも私の周りの世界はどんどん回っていく。LPC2388のコ
ンテスト受賞者が発表されていますね〜。私がFreeRTOSを知り、使うきっかけとなっ
た今井健太郎氏やUSBデバイスの開...</description>
<content:encoded><![CDATA[
<a href="http://maagpw.bay.livefilestore.com/y1pVu94uec32SQmJ3efiN7wspGuH2IqGrmiDSTYH5zS-e2koufJpvaRmmwik4gVB4hB_u-MqXj-JSnQRxPdClLP4Q/20091105_001.jpg" target="_blank"><img src="http://maagpw.bay.livefilestore.com/y1pVu94uec32SQmJ3efiN7wspGuH2IqGrmiDSTYH5zS-e2koufJpvaRmmwik4gVB4hB_u-MqXj-JSnQRxPdClLP4Q/20091105_001.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
…うおえっぷ。子供向けのシロップ状の薬思い出してしまった…。<br />
<br />
そしてそんなことやってる間にも私の周りの世界はどんどん回っていく。LPC2388のコ<br />
ンテスト受賞者が発表されていますね〜。私がFreeRTOSを知り、使うきっかけとなっ<br />
た今井健太郎氏やUSBデバイスの開発で詰まったときに参考にさせてもらっているマイ<br />
コン工作実験日記氏の作品が入賞されています。<br />
<br />
私はチェンジニアリング(=他人の成果物使って切った張った)しかできないから一つの<br />
プロジェクトを決められた時間でフルスクラッチでバシッと組めるってのは尊敬して<br />
しまいます。この業界に転職して早一年と少し、なんとかしがみ付いてきたけどこの先<br />
数年もしないうちにまた違う職種に移ってるんだろうけども何かひとつくらいはでっか<br />
いの残していきたいな〜なんて妄想してます(<strong>げんぢつから目をそらしながら</strong>)。<br />
<br />
<br />
久しぶりの日記がここで終わってしまうと歯切れが悪いのでもうちょっと書いてみます。<br />
<br />
●STM32 Primer2<br />
以前から少しずつSTM32F107系の記事書いてきましたが、そちらと並行してSTM32Primer2<br />
をCircleOS無しで動かす構想を考えています。目標は…FreeRTOSを乗せて動かす！<br />
<br />
…と書いてしまいましたが実際ことに移すとコレ結構厄介です。まずは開発環境が…。<br />
STM32Primer2にはビルドインされたRLINKがあるのですがこれがSWD接続の為にOpen<br />
OCDから直接操作ができません(20091104現在)。<br />
そしてRLINKのデバイスドライバ(Windriver)が未だにバージョンが低いものを要求し<br />
ているため、AVRJTAGICEmk2等で使用されている最新のVerのものを使用することがで<br />
きません！無理やり使うと確実にB.S.O.D.になってしまいますorz(XP環境の話です)<br />
<br />
実はねむいさんがSTM32Primerを使用することに消極的だったのはこのドライバの問題<br />
なわけで、よくよく調べてみるとWindowsVISTA以降のOSはマイクロソフト純正の汎用<br />
USBドライバであるWinUSBなる物が提供されていてVISTA以降のOSではRLINKのドライバ<br />
としてこちらが適用されているようです。<strong>ねむいさんはこのWinUSBってやつを無理やり<br />
XPにも適用して難を逃れました！！</strong>(セコいな)<br />
FreeRTOSを乗せる過程は一気にはできないので次回以降でぼちぼちとやっていきます。<br />
<br />
●aitendoさんのTFTモジュール<br />
たくさん売れたおかげで専用の拡張ボードまで起こしてもらって再販になっています<br />
(20091104現在)。一枚絵の表示くらいならAVRでも十分にできるのでひとつくらいは持<br />
ってても良いかと思います。私もLPC2388,STM32F107で表示させてきましたがそら氏と<br />
同じく青みがかかった画面を何とかしようといろいろあがいてみました。しかし結局<br />
大きな改善はできませんでしたがVMCTR1(VCOM control1）というレジスタの値を変え<br />
るとコントラストは変えることができたので少しいじって濃いめに出すようにしました。<br />
<br />
<a href="http://public.bay.livefilestore.com/y1puCc0M_AAGU68P_-zZXGTFUNzqUyGGzR3W0CGL54rIqjRC37w_vmxPVtlHOta4OG6v62Me_4jPPu_P6pVl0RviQ/20091105_000.jpg" target="_blank"><img src="http://maagpw.bay.livefilestore.com/y1pBplXlIqQQhVyMxLj826urtu87J-u6FnX6Vqg0rbyZ3L0N4usqWTgBd693PvbFL3t9IT2ISvof8FhsSar-5FWag/20091105_002.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
↑こんな感じで。少しは見栄えが良くなった！？<br />
<br />
STM32F107VCT6のプログラムはUSBライブラリのリリース待ちの関係で公開を保留して<br />
ましたけど一項に出る気配がないのでW.I.P.ですが<a href="http://cid-36f4d1230f8a673c.skydrive.live.com/browse.aspx/.Public/src/Cortex/STM32F107VCT6/FatFs" target="_blank">置いておきます。</a><br />
FatFsは先日R0.07eがリリースされていましたのでこちらも適用してあります。<br />
<br />
LPC2388の方もSTM32と<a href="http://cid-36f4d1230f8a673c.skydrive.live.com/browse.aspx/.Public/src/LPC2388/MCI%5E_OLED" target="_blank">おなじ修正を施しておきました</a>。以前はUART版とVCOM版は<br />
分けていましたが今回からmakefile内で切り替えられるようにして一本化を行いました。<br />
こうしておくと管理楽ですからね〜。ついでにchan氏のmp3プレーヤーで使用している<br />
mp3モジュールを使用したスイッチ入力にも対応しています。詳細は同梱のdocフォルダを。<br />
<br />
●OLIMEXのAT91SAM7S256プロトタイプボード<br />
ず〜〜〜っと前からやるやる詐欺してましたがこちらも腐らせるにはもったいなさす<br />
ぎるので手をかけることに決めました。こちらの目標はいくつか買い込んであった<br />
TFTモジュールを使用したUSB接続のミニフォトフレームの製作をしてみようと思います。<br />
<a href="http://maagpw.bay.livefilestore.com/y1pFd3nQe44_JTIdbdOz4zmd5JSkeeHuZERkW54GM0Dr2IUmtYWTqr37jexofb2-Oos0yJUxsbTF6G4FpJziEauRA/20091105_003.jpg" target="_blank"><img src="http://maagpw.bay.livefilestore.com/y1pFd3nQe44_JTIdbdOz4zmd5JSkeeHuZERkW54GM0Dr2IUmtYWTqr37jexofb2-Oos0yJUxsbTF6G4FpJziEauRA/20091105_003.jpg" width="320" height="240" alt="un" class="pict" /></a><br />
↑やるやる詐欺<br />

]]></content:encoded>
    <dc:subject></dc:subject>
    <dc:date>2009-11-05T00:59:49+09:00</dc:date>
    <dc:creator>ネムイ・トリノミアス</dc:creator>
    <dc:publisher>B-Blog</dc:publisher>
    <dc:rights>ネムイ・トリノミアス</dc:rights>
  </item>

  <item rdf:about="http://nemuisan.blog.bai.ne.jp/?eid=164365">
    <link>http://nemuisan.blog.bai.ne.jp/?eid=164365</link>
    <title>いろいろ試す3</title>
    <description>ハロウィンネタ&amp;他のキャラの誕生日お祝いネタの仕込みで本業(二次裏)が糞ほど忙しく
なってます。しばらくこっちは更新できそうもないので今のうちに書けることを…。


●この前のTFT液晶の在庫数が一気に減ってた
aitendoさんの900円液晶、私がこのブログに使用記を...</description>
<content:encoded><![CDATA[
ハロウィンネタ&他のキャラの誕生日お祝いネタの仕込みで本業(二次裏)が糞ほど忙しく<br />
なってます。しばらくこっちは更新できそうもないので今のうちに書けることを…。<br />
<br />
<br />
●<a href="http://nemuisan.blog.bai.ne.jp/?eid=164141" target="_blank">この前</a>のTFT液晶の在庫数が一気に減ってた<br />
<a href="http://www.aitendo.co.jp/product/1621" target="_blank">aitendoさんの900円液晶</a>、私がこのブログに使用記を公開したあたりから在庫数が一気に<br />
減ってました。皆様子見だったのですね〜…。もうじき在庫ゼロになりそうな勢いです。<br />
私はLPC2388向けにサンプルコードを公開してましたが、STM32はUSBライブラリが(ryの<br />
おかげでまだ二の足踏んでます。まぁRCは出てるから時間の問題とは思いますが…。<br />
<br />
あとSTマイクロ側がUSB-OTGのデュアルロール機能のサンプルとか公開してくれたら神な<br />
んですけお…USBホスト関連のスタックは今でもそれ作るだけでお金になるようだから<br />
無対価で手に入るの(=枯れる)はずっと先になりそうです。<br />
<br />
<br />
●STM32F107でUSB_DFU_Bootloader使う件<br />
んでもって前回行った<a href="http://nemuisan.blog.bai.ne.jp/?eid=164249" target="_blank">STM32F107/5系のブートローダーが機能しない件の回避策</a>ですが、<br />
ねむいさんはブートローダーをDFU一本に絞ることにしました。したがって以後は下図の<br />
ような構成でマイコン遊びを続けていきたいと思います。<br />
<a href="http://mpe4sa.bay.livefilestore.com/y1pWzxM_6YrXO827NFykT2W2LXT8WBFvOX5T-0ZS95GXIz2s4yK7h6shRHEUsY3n9zJ9p3IH8iAoa9dtj9FQuOCYQ/20091022_001.PNG" target="_blank"><img src="http://mpe4sa.bay.livefilestore.com/y1pWzxM_6YrXO827NFykT2W2LXT8WBFvOX5T-0ZS95GXIz2s4yK7h6shRHEUsY3n9zJ9p3IH8iAoa9dtj9FQuOCYQ/20091022_001.PNG" width="350" height="315" alt="un" class="pict" /></a><br />
<strong>20091102変更:<br />
BOOT0とBOOT1を取り違えるという最悪なミスに気づいたので修正orz</strong><br />
<strong>20091216変更:<br />
PB5は10kohmでも問題ないことが分かり修正orz</strong><br />
STM32F103系と違ってdfu使うための領域とかスタートアップの設定とかを気にしなくて<br />
よくなったのは良い点だと思いますね。<span style="font-size:large;"><strong>errataさえなければ！</strong></span><br />
<br />
<br />
●シンプルi2cマスタライブラリ<br />
夏前から<a href="http://strawberry-linux.com/catalog/items?code=27001" target="_blank">ST7032i(苺Linuxさんのi2c液晶：SB1602B)</a>,<a href="http://strawberry-linux.com/catalog/items?code=18081" target="_blank">AR1010(FMラジオモジュール)</a>,<a href="http://www.national.com/pf/LM/LM73.html" target="_blank">LM73</a><br />
等のi2cデバイスの制御を勉強兼ねてやってきましたが、他のMCUやi2cデバイスにも移植し<br />
やすいようにまとめました。ST7032iは苺Linuxさんの、AR1010はゆきの研究室のyuki氏<br />
の作例を参考に作らせてもらいました。あと、一部のデバイスは後述するFreeRTOS上で<br />
の使用も想定して#defineで切ってたりします。<br />
<br />
<a href="http://cid-36f4d1230f8a673c.skydrive.live.com/browse.aspx/.Public/Src/misc/i2c%5E_lib" target="_blank">ライブラリ固め</a><br />
<a href="http://cid-36f4d1230f8a673c.skydrive.live.com/browse.aspx/.Public/Src/AVR/atmega32%5E_test" target="_blank">AVRでの使用例とか</a><br />
<a href="http://cid-36f4d1230f8a673c.skydrive.live.com/browse.aspx/.Public/src/LPC2388/i2c" target="_blank">LPC2388での使用例とか</a><br />
<br />
●OpenOCDのビルド方法が少し変わった<br />
現在、zus氏のOpenOCDのビルド方法をそのままやるとビルドエラーになって失敗します。<br />
<a href="http://www.mail-archive.com/openocd-development@lists.berlios.de/msg08549.html" target="_blank">svnからgitリポジトリに変わったのでsvnではなくてgitで最新のソースを落とせとのこと。</a><br />
gitでの取得のコマンドはsvnと微妙に違って<br />
git clone git://openocd.git.sourceforge.net/gitroot/openocd/openocd<br />
だそうです。けっこう時間かかります。<br />
<br />
んでもっていつものフラッシュ書き込みやってみました。<br />
STM32F107VCT6の例です↓<br />
> "C:/Devz/AVR/WinAVR/utils/bin/make.exe" program<br />
openocd -f C:/Devz/ARM/OCD/daemon.cfg -f C:/Devz/ARM/OCD/tcl/interface/jtagkey.cfg -f C:/Devz/ARM/OCD/tcl/target/stm32_flash.cfg -c "mt_flash main.elf"<br />
Open On-Chip Debugger 0.3.0-dev-00405-g1e5daf5-dirty (2009-10-22-11:15)<br />
&#36;URL&#36;<br />
For bug reports, read<br />
	http://openocd.berlios.de/doc/doxygen/bugs.html<br />
1000 kHz<br />
jtag_nsrst_delay: 100<br />
jtag_ntrst_delay: 100<br />
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain<br />
Warn : stm32.bs: nonstandard IR mask<br />
Warn : use 'stm32.cpu' as target identifier, not '0'<br />
Info : device: 4 "2232C"<br />
Info : deviceID: 67358712<br />
Info : SerialNumber: 11111111A<br />
Info : Description: Amontec JTAGkey A<br />
Info : clock speed 1000 kHz<br />
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)<br />
Info : JTAG tap: stm32.bs tap/device found: 0x06418041 (mfg: 0x020, part: 0x6418, ver: 0x0)<br />
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)<br />
Info : JTAG tap: stm32.bs tap/device found: 0x06418041 (mfg: 0x020, part: 0x6418, ver: 0x0)<br />
target state: halted<br />
target halted due to debug-request, current mode: Thread <br />
xPSR: 0x01000000 pc: 0x080061a4 msp: 0x20010000<br />
Info : device id = 0x10016418<br />
Info : flash size = 256kbytes<br />
stm32x mass erase complete<br />
Info : Padding image section 0 with 0 bytes<br />
Warn : not enough working area available(requested 16384, free 16336)<br />
wrote 95952 byte from file main.elf in 5.906250s (15.865079 kb/s)<br />
verified 95952 bytes in 1.921875s<br />
Info : JTAG tap: stm32.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)<br />
Info : JTAG tap: stm32.bs tap/device found: 0x06418041 (mfg: 0x020, part: 0x6418, ver: 0x0)<br />
<br />
> Process Exit Code: 0<br />
> Time Taken: 00:10<br />
<br />
…OpenOCD+Jtagkeyをほとんどフラッシュ書き込み機としか使っていない私。<br />
<br />
<br />
●FreeRTOSがV6.0.0になってた<br />
なってました。私が使用しているMCUには特に大した変更の影響はないみたいですが…。<br />
いまはSTM32F107VCT6に重点的になっててLPC2388の更新したのずいぶん前になっちゃ<br />
ってましたので動作確認がてらにソースの見直しをしました。<br />
LPCUSBを使用したUSB-CDCのソースコードも一本化して可搬性あげるよう努めてます。<br />
他のMCUにも言えることですがBare-MetalとFreeRTOSで分けていたソースは#define切って<br />
同じファイル使いまわせるように直していくつもりです。今見返すとつぎはぎだらけ<br />
でひどかったorz<br />
<a href="http://cid-36f4d1230f8a673c.skydrive.live.com/browse.aspx/.Public/src/LPC2388/FreeRTOS" target="_blank">LPC2388用FreeRTOSのサンプル</a><br />
<br />
LPC2388もある程度遊んだらクローズしてSTM32に集中したいです。今後はSTM32にFreeRTOSの組み合わせが日記のネタの要になるでしょう。<br />
<br />
<br />
●STM32 Primer2の電源ICがすぐぶっこわれて云々の件<br />
私が<a href="http://nemuisan.blog.bai.ne.jp/?eid=163637" target="_blank">検証記事</a>を載せた数日後に<a href="http://www.stm32circle.com/resources/known.php#reg_fail" target="_blank">公式も同様な見解を述べています。</a><br />
ううむ、私の読みが完全に当たってしまった…ってわけですか…。<br />
電源IC壊れちゃった人はこの際私みたく<a href="http://nemuisan.blog.bai.ne.jp/?eid=163838" target="_blank">別のLDOに変えちゃう</a>のもいいかもしれま<br />
せんね…。(もちろん自己責任で)
]]></content:encoded>
    <dc:subject></dc:subject>
    <dc:date>2009-10-22T22:13:09+09:00</dc:date>
    <dc:creator>ネムイ・トリノミアス</dc:creator>
    <dc:publisher>B-Blog</dc:publisher>
    <dc:rights>ネムイ・トリノミアス</dc:rights>
  </item>

</rdf:RDF>