« 2014年5月 | トップページ | 2014年7月 »

2014.06.22

特電Webサイトを全面的にリニューアルしました

ついに念願のWebサイトリニューアルを果たしました sign03

数年来の計画が、ついに実現できました。happy02

これが、その新しい特電Webサイトです。happy01

http://www.tokudenkairo.co.jp/

New_tokuden_3

トップページは3段構成になっていて、真ん中は「カルーセル」というしくみを使って、新着情報やおすすめの製品情報を限られたスペースで配信できるようになっています。

左側の「製品情報」「技術情報」「会社情報」と書かれたツリーは350ページ近くある特電の全ページの構成をわかりやすくまとめています。

例えば、技術情報→ JTAG技術情報JTAGの詳細(解説編) の中に TAPコントローラというページがあります。

New_tokuden_tap

こういう情報が、全体の中のどの部分に位置付けられているのかが一目でわかるようになって、隣にどういう情報があるのかがすぐにわかるようになりました。

いままで特電のサイトはわかりにくいと評判だったのですが、これならわかりやすいと思います。

それからサイト内検索ができます。Googleなどの外部サービスを使うのではなく、サイトのコンテンツが入っているデータベースから直接探してくるので、更新が速い!どんなテキストでも確実にみつけます。

New_tokuden_search

このWebサイトは完全自作のCMSでできています。何でも好きなことができます。PHPやMySQL、BootStrapといったことを勉強してきた成果です。

sun

特徴は、何と言っても、オンラインで更新ができること。

何か記述が間違っているところを見つけたり、新しいページを作成したいと思ったとき、特電Webサイトを管理者モードで入ると、サイトを見ながらエディットできます。

New_tokuden_edit

だから、更新が超ラクです。

いままでみたいに、FTPで最新のサイト内容をダウンロードして→NamoWebEditorで編集して→FTPでアップロード・・みたいな手順は不要です。サイトを見ながらすぐに変更できます。

それに、このブログ「なひたふJTAG日記」の情報をコピペしてページを作ることもできます。開発中の18bit A/D変換ボードに関する情報を当ブログから拾ってきて、「18bit AD変換ボード 開発日記」を20分くらいで作ることができました。

http://www.tokudenkairo.co.jp/ad18/diary201406.html

New_tokuden_ad18

サイトの更新が面倒ではなくなったので、これからは、億劫がらずに特電Webサイトでいろいろな情報を発信していけるようになったと思います。

Artix-7のAXIのこととか、これまで書けなかった情報やダウンロードのリンクを貼るのさえ面倒だった記事についてもどんどん書いていきたいと思います。

まだまだこれからもこのサイトのシステムは更新していきます。パンくずリストというのも使ってみたいし、新着情報をトップページに自動的に出すようにしたり、やってみたいことはたくさんあります。

より使いやすく、情報が見つけやすいサイトを目指していきます。

| | コメント (0)

2014.06.20

月刊特電Vol4を発送しました!

ようやく月刊特電Vol4を発送できました。先週末に700冊を印刷したのですが、紙の質を間違えてしまったので、作り直していました。

今日お送りしたのは、「月刊特電送付希望」のボタンを押してくれた133名の方です。

Gettoku5_135

今日は133通作ったはずなのに、郵便局で数えたら135通あったので、ちょっと謎です。

まぁ、細かいことは気にしないでいきます。

今回のメインテーマは、

  • 18bit AD変換器を作るためのアナログ回路の話
  • XILINX Platform USB Cableを使うための解析の話

などです。

Gettoku_4

神田郵便局から出したので、早ければ、明日には関東近辺の方々のところに届くと思います。postoffice

お楽しみに!

お読みいただいたら、ぜひとも感想などを書いていただけると嬉しいです。happy01

| | コメント (0)

2014.06.19

ついに動き出した特電CMS

そして、ようやく実用的なCMSが出来てきました。トップページはこんな感じです。

Tkdn_cms_2


BootStrap3を使ったおしゃれなデザインで、トップページの画像はカルーセルで動きます。左には商品や技術情報が一望できるツリーを配置しました。

これなら、特電がどんな製品を扱っているのか、どんな情報があるのかが一望できます。

左側のツリーをつっつくと、望みの情報にすぐに辿り着くことができます。

Tkdn_cms_3

ここで、「管理者モード」に入ると、ページを閲覧しながら編集ができるようになっています。

Tkdn_cms_4

編集した履歴は一覧で表示され、いつでも前の状態に戻すことができます。

Tkdn_cms_5

サイトのツリー構造は、CSVで書いたのを読み込んでいますので、どんな複雑な構造でも対応できます。

また、従来のWebサイトから全部のページをコピペするのは大変なので、自動的にフェッチしたデータからタグを外して取り込むようにしました。

人間の作業としては自動で取り込んだページの整形作業があるのですが、300ページ以上あるので数日はかかりそうです。

これで特電スタッフの誰でもページを書き換えられるようになった。今までのように、「ローカルのPCにFTPして、専用のソフトで編集して、またFTPでアップして」・・って作業は不要になりました。

| | コメント (0)

特電CMSの前身

そこで

  1. 静的なHTMLソースを吐き出すCMSであって、移行前のサイトと同じURLでアクセスできること。
  2. どんな複雑なサイトツリー構造にも耐えられ、500ページ以上管理できること。
  3. 複数の人が編集できて、誰がどう変更したかの履歴が見えること。

の3つの仕様を満たすCMSを自分で作ることにしたのでした。

まず、HTML5とかCSSを勉強しているときにBootStrapというものの存在を知りました。これを使えばデザインのセンスがなくても、そこそこ綺麗なサイトがつくれます。PHPとSmartyを勉強しなおしながら、まずは簡単なCMSを作ってみました。

それが、このページ。

Tkdn_cms_1

試験的な作ったCMSで作ったページ http://rx.tokudenkairo.co.jp/cmsisdap/

データベースにコンテンツを入れて、それを元にHTMLを生成しています。オンラインで書き換えもできるようになっています。CMSとしてちゃんと機能しました。

ですが、フラットな構造のWebサイトしか作れません。まだ階層構造が作れないのです。また、PHPのプログラムが汚くなってしまって、これ以上機能を追加するのが困難になってきました。

それから次に作ったのがお客様サイト。

Tkdn_customer_site

データベースを使いまくっています。データベースとSmarty、BootStrapの使い方にも慣れてきました。延べ0.5人月くらいかけました。

このお客様サイトはまだまだ拡張可能なので、これからも充実させていきます。

| | コメント (0)

2014.06.18

特電CMSを作ってホームページをリニューアルします

特電ではCMSを開発しています。

CMSというのは、コンテンツ・マネージメント・システムの略で、要するにホームページを作るツールのことです。

今の特電のホームページは、とても見にくく、わかりにくいという悩みがあります。どこにどんな情報があるのかわからないし、ページごとに(厳密にいえば、書いたときの年代で)使っているフォーマットが異なります。古いページはCSSすら使っていません。

今はNamo WebEditorという超マイナーなソフトでホームページを作成しています。2002年ごろ、特電がまだ個人事業者ナヒテックだったころからバージョンアップしながら使っているソフトなのですが、問題点としては、

  • (日本では)既に販売していない。
  • 複雑な表を書くと、落ちる
  • CSSへの対応が中途半端
  • 結局、デザインのセンスがないと綺麗なページは作れない

ということが挙げられます。

WebEditorというのは、こんな画面です。

Tkdn_current_webeditor
(Namo WebEditorで編集している画面)

ブログと違って、ホームページを更新するのがとても大変なのです。その理由を考えてみると、

  • PCにインストールするタイプのWeb作成ツールは、起動するのが億劫になるし、FTPの間違いでデータを壊す危険性がある
  • セキュリティ的に、FTPを開けたくない
  • 複数の人が編集するときに、どれが最新版のファイルがわからなくなる

ということだと思うわけです。

rain

実は、これまで何度かリニューアルしようとして、そのたびに失敗してきました。

2011年ごろ、DrupalというCMSを入れてくれて移行しようとしたけど、デフォルトのデザイン的が嫌なのと、スタイルシートをどういじっても綺麗にならないのと、レイアウトが自由にならないのと、生成されたページのURLが変わってしまうため断念しました。

2012年にはNamo WebEdirorの最新版を人数分買ってしのいでいたのですが、どんどんデザイン的に汚くなっていきました。それにNamoを起動するのも億劫になってきて、だんだん更新をしなくなりました。

2013年末、「もう限界!」と思って、最新のWebデザインソフトを買いにいきました。そもそもNamoを選んだからいけないんだ。有名なホームページビルダーならきっと良いだろう!と思って、ヨドバシに行ったのですが、ホームページビルダーの広告にWordPressが連携とか書いてあって、「WordPressって何だ?」と、そのときはじめて知ったのです。

結局、ホームページビルダーは買わずに帰ってきました。

WordPressの本を何冊か読んで、年末年始のタイミングで移行しようとしたけど、現在のWebサイトとURLが変わってしまうため、結局断念しました。WordPressはすべてのページを動的に生成しているので仕方がありません。

私が求めていた仕様は、

  1. 静的なHTMLソースを吐き出すCMSであって、移行前のサイトと同じURLでアクセスできること。
  2. どんな複雑なサイトツリー構造にも耐えられ、500ページ以上管理できること。
  3. 複数の人が編集できて、誰がどう変更したかの履歴が見えること。

調べたところ、世の中にある既存のフリーのCMSのシステムはこのような仕様は満たせませんでした。

そこで、自分で作ることにしたのでした。

| | コメント (0)

2014.06.14

MITOUJTAGでXILINX USB CableやDigilentケーブルを使うためのパッチを公開

お待たせいたしました。

MITOUJTAGでXILINXのPlatform Cable USBや、Digilent HS2ケーブルを使うためのパッチを、下記のURLで公開しました。

https://www.tokudenkairo.co.jp/login2/download.php?searchtext=xilcable

Mjxil_patch_1

MITOUJTAG Pro用、BASIC用、Light用とあります。このパッチの中のEXEファイルを起動すると、更新が行われます。

Mjxil_patch_2

MITOUJTAGを起動した後、「オプション→XILINX Cable Serverの設定」をやります。

Mjxil_patch_3

次のようなダイアログが開きます。

Mjxil_patch_4

「ケーブル自動認識でこのケーブルを自動検出する」をチェックすると、その文章のとおりなのですが、MITOUJTAGのケーブル検出のときにXILINX Cableを探すようになります。XILINX Cableを探すときには、CSE_SERVERを起動したりネットワーク接続の場合はタイムアウトしたりするまで待ったりするので、少し遅くなります。そこで、XILINXケーブルを使用しない場合は、このチェックを外すことで待ち時間を減らせます。

「EXEファイルを自動的に検索する」をチェックすると、XILINXのISE (WebPACK)をインストールしたディレクトリを自動的に探します。ただし、C:\XILINXやD:\XILINXなど、ドライブ直下にインストールした場合のみうまく見つけられます。標準設定ではなくC:\User\Xilinxなどにインストールした場合にはこのチェックを外して、インストールしたディレクトリを直接してください。

「ケーブルタイプ」は、auto、xilinx_platformusb、digilent_pluginの3種類が選べます。autoにしておけば、XILINXもDigilentも両方含まれますので、autoが一番おすすめです。ただし、検出までに少し時間が余分にかかります。

「リモートサーバ名」は、実際のUSB-JTAGケーブルが接続されたPCと、MITOUJTAGを使用しているマシンが別である場合に指定します。リモートサーバでXILNIXのCable Serverを動かしておけば、MITOUJTAGから遠隔接続もできてしまいます。

このような感じで設定します。

そして、MITOUJTAGでケーブルの自動検出の操作をすると、

Connecting to cable (Usb Port - USB21).
Checking cable driver.
Driver file xusbdfwu.sys found.
Driver version: src=1027, dest=1027.
Driver windrvr6.sys version = 10.2.1.0.
WinDriver v10.21 Jungo (c) 1997 - 2010 Build Date: Aug 31 2010 X86 32bit SYS 14:35:41, version = 1021.
Cable PID = 0008.
Max current requested during enumeration is 280 mA.
Type = 0x0605.
Cable Type = 3, Revision = 0.
Setting cable speed to 6 MHz.
Cable connection established.
Firmware version = 1100.
File version of C:/xilinx/14.5/ISE_DS/ISE/data/xusbdfwu.hex = 1100.
Firmware hex file version = 1100.
PLD file version = 0012h.
PLD version = 0012h.
Type = 0x0605.
ESN not available for this cable.
JTAGケーブル xilcable と接続しました

というメッセージが表示されて、

Mjxil_patch_5

このように表示されます。デバイスの自動認識をすれば、たとえばZED Boardなら・・

Mjxil_patch_6

こう表示されます。

XILINXケーブルを使うためのパッチは

https://www.tokudenkairo.co.jp/login2/download.php?searchtext=xilcable

で公開中です。

ぜひとも、MITOUJTAGの新しい進化をお試しください。

| | コメント (1)

2014.06.13

月刊特電Vol4を作成失敗!

特電では「月刊特電」という技術情報冊子を作っています。

フルカラー12pのこんな感じの紙面です。

Gettoku_4

今回のメインテーマは、

  • 18bit AD変換器を作るためのアナログ回路の話
  • XILINX Platform USB Cableを使うための解析の話

などでした。

今週末に発送しようとしてお急ぎ便で作っていたのですが、見事に失敗しました。

届いたのは700冊。同じ部数なのに、いつもより少なめに見えます。

Gettoku4_1

それは、印刷屋さんのWebサイトで入稿するときに、紙の厚さを間違えたからです。

普段はコート135kgにしているところを、コート70kgで作ってしまいました。

気を付けていたんだけど、戻るか何かを押してしまったときにデフォルトの70kgに戻ってしまったのだと思います。

どのくらい違うかというと・・

Gettoku4_2

月刊特電Vol3と月刊特電Vol4を手で持ってみたとき、Vol3はピンとしているのに、Vol4はへなへなとしています。70kgと135kgの紙はそのくらい違います。

ということで、135kgで改めて作り直そうと思います。

今週末に発送しようと考えていたのですが、申し訳ございませんが、発送は来週の半ばになりそうです。

ただ、作ってしまった700冊を捨てるのは勿体ないので、希望される方には差し上げるかもしれませんが、まだ思案のしどころです。

| | コメント (2)

2014.06.12

MITOUJTAGのデバイスデータベースを更新しました

MITOUJTAGの次のバージョンの方針も定まってきたので、更新をはじめます。

まずはデバイスデータベースの更新から行いました。

2013年10月の時点ではMITOUJTAGがデフォルトで持っていた対応デバイス数は7073種類でした。これらのデバイスに対しては、あらかじめBSDLファイルのデータを持っていました。

ですが、XILINXのZYNQ 7015とかUltraScaleとか、ALTERAのArria 10とか、その後に発表されたデバイスもたくさんあります。

そこで、今月いろいろ集めて全部で7654種類になりました。約1割の増強です。前回に比べると増え幅が少ないのですが、うちの優秀なスタッフがすでに前回の段階でほとんど調べ尽くしてくれていたからのようです。

今回、どんなデバイスが増えたかというと、

XILINX,ザイリンクス
    CoolRunner XPLA3 CPLD
    CoolRunnerII CPLD
    Spartan/Spartan-XL FPGA
    Spartan2/2E FPGA
    Spartan-3/3L/3E FPGA
    Spartan-3A/-3AN FPGA
    Spartan-3A DSP FPGA
    コンフィギュレーション PROM (XC18V)
    コンフィギュレーション PROM (XCF)
    Virtex FPGA
    Virtex 2/2 Pro FPGA
    Virtex-4 FPGA
    Virtex-5 FPGA
    XC9500 CPLD
    XC9500XL CPLD
    XC9500XV CPLD
    XC4000XL,XC4000XLA,XC4000XV FPGA
    XC5200 FPGA
    SystemACE
    QPro Virtex FPGA
    QPro Virtex 2/2 Pro FPGA
    QPro Virtex-4 FPGA
    Automobile CoolRunner2
    Automobile Spartan2E
    Automobile Spartan-3/3E
    Automobile Spartan-3A/3ADSP
    Spartan-6 FPGA
    Virtex-6 FPGA
    Automotive Spartan6
    Defence Spartan-6Q
    Artix-7 FPGA
    Kintex-7 FPGA
    Virtex-7 FPGA
    Zynq-7000 EPP
    Artix-7 FPGA QPro
    Kintex-7 FPGA QPro
    Virtex-7 FPGA QPro
    Zynq-7000 EPP QPro
    UltraScale
ALTERA,アルテラ
    MAX II CPLD
    MAX3000 CPLD
    MAX7000 CPLD
    Cyclone
    Cyclone II
    Cyclone III
    Statix/Startix GX
    Statix II/Startix II GX
    Stratix III
    Stratix IV
    Arria GX
    HardCopy Stratix/HardCopy Stratix II/HardCopy APEX 20K
    EPC configuration ROM
    APEX II
    APEX 20K
    Mercury
    FLEX 10K
    ACEX
    FLEX6000
    FLEX8000
    MAX9000
    FlashLogic
    Excalibur
    Cyclone IV
    Cyclone V
    MAX V
    Arria II GX/GZ
    Arria V
    Arria X
    Arria 2GX
    Stratix V
LATTICE,ラティス
    Lattice ECP3 (FPGA)
    Lattice ECP2/M (FPGA)
    Lattice ECP & EC (FPGA)
    Lattice SC (FPGA)
    Lattice XP2 (FPGA)
    Lattice XP (FPGA)
    MachXO (FPGA)
    ispXPGA (FPGA)
    FPSC (FPGA)
    ispMACH 4000 ZE (CPLD)
    ispMACH 4000 Z (CPLD)
    ispMACH 4000 V/B/C/Z (CPLD)
    ispGAL (CPLD)
    ispClock
    ispPAC (Power Manager II)
ACTEL,アクテル
    IGLOO (Flash FPGA)
    IGLOO2 (Flash FPGA)
    IGLOO nano (Flash FPGA)
    IGLOO PLUS (Flash FPGA)
    ProASIC 3 (Flash FPGA)
    ProASIC 3 nano (Flash FPGA)
    ProASIC 3E (Flash FPGA)
    ProASIC 3L (Flash FPGA)
    Fusion (Mixed-Signal FPGA)
    RTAX-SSL (RadTolerant antifuse FPGA)
    RTSX-S (RadTolerant antifuse FPGA)
    Axcelerator (Antifuse FPGA)
    SX-A (Antifuse FPGA)
    eX (Antifuse FPGA)
    MX (Antifuse FPGA)
    ProASIC PLUS (Legacy & Discontinued Devices)
    ProASIC (Legacy & Discontinued Devices)
    SX (Legacy & Discontinued Devices)
    RTSX (Legacy & Discontinued Devices)
    RTSX-S (RadTolerant antifuse FPGA)
    RTAX-DSP (RadTolerant antifuse FPGA)
    RTAX-SSL (RadTolerant antifuse FPGA)
    3200DX (Legacy & Discontinued Devices)
    SmartFusion (System On Chip FPGA)
    SmartFusion2 (System On Chip FPGA)
Renesas Technology,ルネサステクノロジ
    H8SX ファミリ
    M32R ファミリ
    SH (SuperH RISC engine)
    SH 3 (SuperH RISC engine)
    SH 4 (SuperH RISC engine)
    RXマイコンシリーズ
ATMEL,アトメル
    AVR (90シリーズ)
    AVR (MEGAシリーズ)
    AT91 (Legacy ARM-based Microcontroller,)
    SAM3Aシリーズ (ARM Cortex-M3 Flash microcontroller)
    SAM3Nシリーズ (ARM Cortex-M3 Flash microcontroller)
    SAM3Sシリーズ (ARM Cortex-M3 Flash microcontroller)
    SAM3Uシリーズ (ARM Cortex-M3 Flash microcontroller)
    SAM3Xシリーズ (ARM Cortex-M3 Flash microcontroller)
    SAM7Lシリーズ (ARM7TDMI-based microcontroller)
    SAM7S_7SEシリーズ (ARM7TDMI-based microcontroller)
    SAM7Xシリーズ (ARM7TDMI-based microcontroller)
    SAM9Gシリーズ (ARM926-based embedded MPU)
    SAM9Mシリーズ (ARM926-based embedded MPU)
    SAM9Nシリーズ (ARM926EJ-S based embedded MPU)
    SAM9Rシリーズ (ARM926-based embedded MPU)
    SAM9Xシリーズ (ARM926-based embedded MPU)
    SAM9XEシリーズ (ARM926EJ-S based embedded MPU)
    SAM9263 (Legacy ARM926-based microprocessor)
    SAMA5D3シリーズ (Cortex-A5 based embedded MPU)
    AVR UC3A0/A1シリーズ (32-bit AVR Microcontroller)
    AVR UC3A3/A4シリーズ (32-bit AVR Microcontroller)
    AVR UC3B0/B1シリーズ (32-bit AVR Microcontroller)
    AVR UC3C0/C1/C2シリーズ (32-bit AVR Microcontroller)
    AVR UC3Lシリーズ (32-bit AVR Microcontroller)
    AVR XMEGAシリーズ (8/16-bit AVR XMEGA Microcontroller)
    SAM4Eシリーズ (ARM Cortex-M3 Flash microcontroller)
AMD,エーエムディー
    AMD-K6
    AM486DX
    Elan
    Alchemy
    MACE
    PCnet-FAST3
    PCnet-FAST+
    PCnet-FAST
    PCnet-32
    PCnet-ISA_II
    PCnet-PCI_II
National Semiconductor,ナショナルセミコンダクタ
    SCAN シリーズ
Micron Technology Inc.,マイクロン・テクノロジー
    Memory
    RLDRAM
INTEL,インテル
    Pentium/2/3/4/5/6
    XScale processor
    Itanium
    IXP
    Other CPU/Bridge/Chipset etc.
Analog Devices,アナログデバイセス
    ADSP-21xx (DSP)
    Blackfin (DSP)
    SHARC (DSP)
    TigerSHARC (DSP)
    OtherDevices
TexasInstruments,テキサスインスツルメンツ
    DaVinci (DSP)
    OMAP (DSP)
    C5000 (DPS)
    C6000 (High Performance DSP)
    C6000 (Performance Value DSP)
    C6000 (Floating-point DSP)
    C2000 (MPU)
    TCIxxx (DSP)
    SN74ABT/BCT/LVTH8xxx,18xxxx
    LM3Sシリーズ (Cortex-M3S based Microcontroller)
    TM4C123xシリーズ (Cortex-M4 based Microcontroller)
    TMS570LSシリーズ (Cortex-R4F based flash Microcontroller)
FreeScale,フリースケール
    MPCxxx シリーズ
    56F シリーズ
    DSP563xx シリーズ
    DSP566xx シリーズ
    DSP568xx シリーズ
    MCxxx シリーズ
    MCFxxx シリーズ
    MCMxxx シリーズ
    MMC21xx シリーズ
    MSCxxx シリーズ
    iMXxx シリーズ
    Kinetis_K シリーズ
    Vybrid シリーズ
MAXIM,マキシム
    トランシーバ
Cypress,サイプレス
    PSoC3 シリーズ
    PSoC5LP シリーズ
    DDR SRAM
    DDR2 SRAM
    DDR2+ SRAM
    DualPort SRAM (FullFlex Series)
    NoBL Pipelined SRAM
    QDR SRAM
    QDR2 SRAM
    QDR2+ SRAM
    Synchronous Pipelined SRAM
    Other devices
Microchip Technology,マイクロチップ・テクノロジー
    dsPIC33 シリーズ
    PIC24EP/FJ/HJ シリーズ
    PIC32MX シリーズ
NXP Semiconductors,NXPセミコンダクターズ
    LPC1xxx シリーズ
    LPC2xxx シリーズ
    LPC3xxx シリーズ
    LPC4xxx シリーズ
    LPC11 シリーズ
    LPC81x シリーズ
IBM,IBM
    PowerPC Processor シリーズ
    Other devices
Integrated Device Technology, Inc.,IDT
    IDT89 シリーズ(PCI Bridge)
    Tsi3xx シリーズ(PCI Bridge)
    Other devices
GSI Technology,GSI Technology
    LLDRAM2 シリーズ(Low Latency DRAM II)
    SigmaDDR2 シリーズ(SRAM)
    SigmaDDR2Plus シリーズ(SRAM)
    SigmaQuad1_2 シリーズ(SRAM)
    SigmaQuad2Plus シリーズ(SRAM)
    Synchronous SRAMs
STMicroelectronics,STマイクロエレクトロニクス
    STM32F1xx シリーズ
    STM32F2xx シリーズ
    STM32L1xx シリーズ
    STM32F4 シリーズ
Silicon Labs,シリコン・ラボラトリーズ社
    C8051Fxxx シリーズ
CIRRUS LOGIC,シーラス・ロジック
    シーラス・ロジック社のデバイス
Aeroflex Corporation,エアロフレックス社
    FPGA
Micron Technology Inc.,マイクロン・テクノロジー
    Memory
    RLDRAM
ARM.,アーム
    ARM
intersil,intersil
    アップコンバーター
Fujitsu,富士通
    MB86297A
    MB86R10
    MB86R11
    MB86R12
Samsung,Samsung
    SRAM
Mindspeed,Mindspeed
    Other devices
PMC,PMC
    Other devices
Zilog,Zilog

です。

具体的にどんなものが増えたかというと、XILINXでは、Artix-7の様々なパッケージのもの、ZYNQの015、QproやAutomotiveシリーズ、UltraScaleなどです。

ZYNQを認識させたときに出てくるDAPも登録されました。DAPというのは、ARM Cortexのデバッグポートです(下の図の左上にある緑が4個のもの)。ZYNQをJTAGで認識させるとDAPとFPGAと2つの直列につながったチェーンが見えます。

Devdb_xil


ALTERAでは、ArriaVやArria10、Cyclone5などが拡充されています。

Devdb_alt


Renesasは、SH7786やR8A77343、RX630などが追加されました。

Devdb_rene

ARMは、DAPやETMなど、CortexやARM9の中に入っている「部品」が追加されました。

Devdb_arm
Intersil、Fujitsu、Samsung、Mindspeed、PMC、Zilogなどは、具体的に何のICかはよくわかりませんが、とりあえず追加しておきました。

Devdb_others

今回の更新パッチはこちらのページからダウンロードできます。

どうぞ新しいデバイスをご堪能ください。

| | コメント (0)

2014.06.07

FreeRXduino V1.2をリリース

RXduinoの無償版「FreeRXduino」 V1.2をリリースしました。

下記のURLからダウンロードできます。

http://rx.tokudenkairo.co.jp/freesoft.html

今回の主な更新点は、

  1. intvect.cでRX63N用に定義されているvoid Excep_GROUP_L0(void){ }をweak functionにした
  2. RX63N用のsystem_reboot()の不具合を修正し、GR-SAKURAのファームウェアが起動するようにした
  3. String クラスに reserve() と toInt() を追加した
  4. LiquidCrystal::scrollDisplayRight() の内部でコマンドとして 0x1c を送るべきところを 0x10 と間違えていたのを修正した
  5. dac_continuous_wave関数を追加。DMACを使って自動的にアナログ波形を出力できるようにした。
  6. servoやpwm、tone、ピン割り込みで使われている割り込み処理関数をすべてweak functionにした。

です。

いままでライブラリの中で使っていた割り込み処理関数をユーザアプリで使おうとすると、名前がかぶってリンカエラーになってしまいましたが、今回のV1.2以降では、ライブラリ中の関数にweakアトリビュートをつけたので、この問題が解決されました。

どういうことかというと、たとえば、ライブラリの中ではExcep_TPU6_TGIA6というタイマ割り込み処理関数を定義しています。これをライブラリの中で処理するのではなく、自分の関数で処理したいような場合、今まではExcep_TPU6_TGIA6を作成してもリンカエラーとなってビルドできませんでした。

今回のV1.2では、

__INTTERUPT_FUNC void Excep_TPU6_TGIA6(void)
{
/* hogehoge */
}

のように、自分で割り込み処理関数を作った、場合、自分で作ったほうが優先されるようになったというわけです。

これでPWMやサーボ関係などで使われているMTUなどのタイマ割り込みをユーザも自由に使えるようになりました

次に、system_reboot()関数を修正して、GR-SAKURAで使用する場合にUSBマスストレージ・ファームウェアに戻れるようになりました。

最後に、先日のDMACとDACを連携させた関数を公開しました。

次のような簡単なコードでDAから波形を出すことができます。

void generate_wave(unsigned short *dacwave,int datasize) {
    for (int i=0;i<datasize;i++) {
        dacwave[i*2+0] = 511 * (sin(((float)i/1024*2*3.141592))+1); // ch1
        dacwave[i*2+1] = 511 * (sin((2*(float)i/1024*2*3.141592))+1); // ch0
    }
}

void setup() {
    unsigned short *waveform = (unsigned short *)0x8000; // 波形バッファの格納場所
    int datacount = 4096;
    generate_wave(waveform,datacount); // sin waveを作る
    if(!dac_continuous_wave(CONTINUOUSDAC_MODE_BOTH,waveform,datacount))
    ・・・

つまり、配列に格納されたデータ(下位10bit)を自動的に、DACから出力します。

このような機能拡張がされたFreeRXduinoは、下記のURLから無償でダウンロードできます。

http://rx.tokudenkairo.co.jp/freesoft.html

現在RXduinoは無償版も製品版も機能的には同じです。ソースコードにアクセスできるか否かの違いしかありません。

なお、RXduinoのソースコードを見たいということであれば、必ずしもRXduinoフルライセンス(10万円)をお買い上げいただく必要はありません。究極のRX62Nボード(税込 \35,424)をお買い求めいただくのが最も安価です。このマイコンボードは、SDRAMが使えるRX62Nマイコンボードですが、RXduinoのソースコードを自由にダウンロードすることができるようになります。

| | コメント (0)

2014.06.03

特電お客様サイトに掲示板を設置しました

長年の悲願であった「お客様サポート掲示板」をついに設置しました。

https://www.tokudenkairo.co.jp/login2/forum.php

Tokuden_forum

見た目は何の変哲もない掲示板です。

中身はすごい機能があるのか!?と言いたいところですが、中身も普通です。

この新掲示板の開設に伴い、旧サポート掲示板(https://support.tokudenkairo.co.jp/)は閉鎖することにいたしました。いわゆる発展的解消というやつです。

旧サポート掲示板は、MyBBというオープンソースのデータベース型掲示板を使っていたのですが、(↓の図は管理画面)

Old_forum

このMyBBには使いにくい点がありました

  • 特電のユーザ登録と、掲示板のユーザ登録が別になっている
  • システムが巨大すぎて、正直、細部の設定がわからない。
  • 所有している製品によって見られる記事を増やしたり制限するという使い方ができない
  • 板はそんなに細かく分類したくない
  • すべての記事を、板を横断的に、時系列にソートできない
  • デフォルトの色が暗い。変え方もよくわからない。

つまり、あまり特電の規模とサポート対象製品の種類を考えると、マッチしていなかったのです。

そこで、特電がやりたいことを実現するため、MYSQLとPHPで掲示板を作ることにしたのです。

https://www.tokudenkairo.co.jp/login2/forum.php

Tokuden_forum

どこからどう見ても、普通の掲示板で、どちらかというと古めかしいデザインですが、「特電お客様サイト」のログインIDでログインできます。

記事の全文を検索することもできますし、記事Noや時間でソートすることもできます。

製品ごとに板が細かく分かれていないので、どこに書こうかと迷うことはありません。「新規投稿」から新しく書き込んでいただくだけでOKです。

管理者として私は常に巡回しているので、素早く返信できると思います。

3年越しの計画がついに実現できました。

どうぞ、新しい掲示板をよろしくお願いします。なんでもどしどしお書きください。

| | コメント (0)

2014.06.01

RXduinoでデータロガーは作れるか?

今、某所からの引き合いで特殊な場所に置くデータロガーを考えています。人が近づけない(当然商用電源も来ていない)環境で長時間計測するので、低消費電力が求められます。

せっかくなので、RXduinoを使ってできないかと考えました。

今までRXduinoのSDMMCクラスを使って、数ギガバイトを超えるMicroSDカードを埋め尽くすように保存できるかどうかはテストしたことがなかったので、実験してみました。

void loop() {
    char filename[31];
    unsigned long start,end;

    RX62N_RTC_TIME time;
    rtc_get_time (&time);
    printf("%02x/%02x/%02x %02x:%02x:%02x ",
        time.year, time.mon, time.day,
        time.hour, time.min, time.second);

    sprintf(filename,"F%07d.dat",count);
    printf("Write start count=%d  ",count);
    start = timer_get_ms();
    File file = MMC.open(filename, FILE_WRITE);
    for(int mb=0;mb<16;mb++) // 16MBのファイルができる
    {
        printf(".");
        for(int iter=0;iter<64;iter++) // 64回繰り返して1MBの書き込み
        {
            for(int i=0;i<16384/4;i++) // 16384DWORDの乱数を生成
            {
                data[i] = xor128();
            }
            file.write((unsigned char *)data,16384);
        }
    }
    file.close();
    end = timer_get_ms();
    total = total + 16*64*16384;
    unsigned long mbytes = total / 1000000;
    unsigned long bytes  = total % 1000000;
    printf("  Done. Total %d.%06d Mbytes. %d ms. WriteSpeed=%d kB/sec.\n",mbytes,bytes,end-start,16777216/(end-start));
    count++;
}

このプログラムは、内蔵RAMに16384バイトの乱数(Xor128)を作って、それを16回×64回繰り返して、16777216バイトのファイルを作ります。ファイル名はF0000000.dat、F0000001.dat・・・という具合にインクリメントしていきます。1MB分を書き込むごとに「.(ピリオド)」を出しています。

実験結果は次のとおり。

14/06/01 10:15:03 Write start count=0  ................  Done. Total 16.777216 Mbytes. 14810 ms. WriteSpeed=1132 kB/sec.
14/06/01 10:15:18 Write start count=1  ................  Done. Total 33.554432 Mbytes. 14604 ms. WriteSpeed=1148 kB/sec.
14/06/01 10:15:33 Write start count=2  ................  Done. Total 50.331648 Mbytes. 14580 ms. WriteSpeed=1150 kB/sec.
14/06/01 10:15:47 Write start count=3  ................  Done. Total 67.108864 Mbytes. 14582 ms. WriteSpeed=1150 kB/sec.
14/06/01 10:16:02 Write start count=4  ................  Done. Total 83.886080 Mbytes. 14561 ms. WriteSpeed=1152 kB/sec.
14/06/01 10:16:17 Write start count=5  ................  Done. Total 100.663296 Mbytes. 14561 ms. WriteSpeed=1152 kB/sec.
14/06/01 10:16:31 Write start count=6  ................  Done. Total 117.440512 Mbytes. 14565 ms. WriteSpeed=1151 kB/sec.

乱数の生成も含め、1152 kB/sec程度の速度で安定して書き込んでいます。(乱数を生成させなければ1200kB/secを超える)

最後は次のようになりました。

14/06/01 14:03:02 Write start count=937  ................  Done. Total 15737.028608 Mbytes. 14615 ms. WriteSpeed=1147 kB/sec.
14/06/01 14:03:16 Write start count=938  ................  Done. Total 15753.805824 Mbytes. 14621 ms. WriteSpeed=1147 kB/sec.
14/06/01 14:03:31 Write start count=939  ................  Done. Total 15770.583040 Mbytes. 14612 ms. WriteSpeed=1148 kB/sec.
14/06/01 14:03:46 Write start count=940  ................  Done. Total 15787.360256 Mbytes. 14629 ms. WriteSpeed=1146 kB/sec.
14/06/01 14:04:00 Write start count=941  ................  Done. Total 15804.137472 Mbytes. 287860 ms. WriteSpeed=58 kB/sec.
14/06/01 14:08:48 Write start count=942  .........

942個目のファイルを書き込む際の時間が長くなり、停止しました。

SDカードをWindows PCで読み出してみると、このようになっていました。

Datalog_files

Windows PCで読み出してファイルの中身を調べたところ、乱数列はすべて正しい値になっていました。

結果をまとめると、

  • RXduinoは、毎秒1MB以上の速度でSDカード/MMCカードに記録できる。カードのクラスとかは問題にはならない(そこまで速くない)
  • カードの容量は4GBを超えていても良く、16GBの容量限界までファイルを作ることができた。

です。毎秒数100kBなら、データロガーには十分といえます。

今回、実験に使ったのはこのボード。

Grsakuradatalog16gb

実際にデータロガーを作ることが決まったら、SDRAMかSRAMのバッファを用意してデータを一時的に蓄えられるようにしたり、SD/MMCカードの冗長化などを施そうと思います。

RXマイコンは大量に在庫しているので、今回の用途にもぴったりですし。

| | コメント (0)

« 2014年5月 | トップページ | 2014年7月 »