ニキシー管時計キットの電源とIN-14の半田付けだけした。

ニキシー管時計のキットです。なので、プリント基板に部品乗っけて半田付けするだけなので、間違えなければ組立られます。なお、このキットは nIxIe-tUbE.com の通販で買ったものです。
点灯確認で電圧かけただけなのでいきなり隣りの管にゴースト出てます。これはショートとかじゃなくて、たまった電荷のせいでボーっと光っているだけなのでちゃんと逃してやるとか光らない程度にバイアスかけるとかで防げます。

とりあえず、途中少しビデオカメラでも撮っているので余裕があればYoutubeかNicovideoにでもアップしたいと思いますが、いかんせケースを全然考えていないので、頓挫するかも知れません。が、とりあえず作業風景の動画はアップしました。

なんだかんだで半田付けは完了いたしました。DVテープ2本ぴったりだったので、上の写真状態までで2時間かかりました。
素材をカット アンド カットしまくって5分以内を目指しましたが編集は難しいです。とりあえずなんとかUPした動画は下のところを見てください。

[nicodo]sm14432258[/nicodo]

アクリル板が無いので、そこらへんにあったフニャフニャのプラ板に仮止めしてみてちょっと様子見てみることに。とりあえず、今の所順調に動いてます。

「2枚入り! 組合せ自在! 超小型ARMマイコン基板」の追加ボードを買ってきた

なんのひねりもありません。上小田井のマルツに車で行って買ってきました。SDカードでしたっけ?あれ付いてるのが欲しかったんですけど残念ながら品切れでした。

 

FMステレオトランスミッタキット(秋月)半田付けだけした。

ちょっとリハビリ。

 

防音コーナーに居てるときに玄関のピンポンが鳴ってもわからないので、お手軽にわかる方法は?ラジオに飛ばせばいいという昔アマチュア無線やってたオッサンの単純な発想。

ということで、先週大須のタケイ無線で、 1,050円で売ってた秋月のキットのハンダ付けと動作確認終了。76MHz で設定。音質もまぁまぁいいと思います。

ケースに入れるというよりかは板に基板ネジ止めして電池ケースは両面ブチルテープかなんかで固定して終りにしたいのですが、手頃なプラ板が無いなぁ。

AVR Studio5 は一旦削除

こんな短かい話しは Twitter で十分やろという話もありますが、 Blog の記事数があまりにも寂しいのでここで。

まぁ、今日も ATMEL も一応確認しましたが3月11日版のベータバージョンのままでんがな、ご紹介ビデオとか更新するのもいいんですけど本番リリースしてくれー。少なくとも私の家の Windows XP SP3 クリーンインストール状態で動かんぞ。

ということで、一旦削除しましたという愚痴。

 

この週末のお買い物

この週末のお買い物

大須の第2アメ横で電池ボックスと FMワイヤレスマイクキットを購入。ワイヤレスマイクは、防音室にこもっているときに、玄関のピンポンが鳴っても気が付かなかったということがありましたので、音飛ばせるようにしとこうと思って購入 1,050円なのでいいでしょう。

オーディオテクニカのスペアイヤピースはカナル型のイヤホンの交換用ピースですね。あまりカナル型は好きではないのですが、時々使います。普段はBOSE QC3というノイズキャンセルのヘッドホンです。汗かく時期になるとヘッドホンどれ持っていくか悩みます。また、耳が少し悪いのでドンシャリ系ヘッドホンのほうが好みです (^^)

車のシガーソケットに差す、5V変換器です。 1,200mA まで引っぱれるそうです。iPad も少しくらい充電出来たら儲け物と思って購入。それ以外の携帯電話など十分対応可能ですね。

最後は、赤外線コントロールのラジコンヘリです。大須第2アメ横のラジコン屋さんで 3,980円で買いました。まぁ、昔 HoneyBee で懲りてるはずなのに買ってしまいました。まぁ今回はボディが金属製なのでちょっとは長持ちするかもというやつでんな。USB充電も出来るらしい(棒読み)

「2枚入り! 組合せ自在! 超小型ARMマイコン基板」 という本を買った

メルマガや、Twitter などで出てるのは知っていたし、先日大阪へ帰ったときも先輩が電機屋のポイントカードで買ってたのも横で見てたというのもありますが、私は名古屋の三省堂書店のポイントを使うことにして帰ってから買いました。お値段 3,000円ナリ。ただし、単品でマイコンボード買うと1枚 1,980円なので本を買ったほうが安いです。

後はオプションで マルツパーツ館Web Shop で、LEDマトリクスや有機EL・GPSなどのボードが買えます。

ということで、またマイコンボードが増えたというお話でした。

 

とりあえず、FPGA版 Hello, World

普段 DWMとか読まないんで、CPLDやFPGAの事情はさっぱりわかりません。昔のページに XILINX XC9500シリーズの
CPLD使った記事も書きましたが2002年6月のことで、当然ここのサイトには掲載してません。
今更という感じはあるのですが、久しぶりにやってみたくなったので入門キットを買ってボチボチ遊びたいと思います。

FPGAの「Hello, World」は、はやり LEDピコピコですが、今回は飛ばして VGA 出力の練習です。
Verilog HDL入門本見ながら書いてみました。以下ソースとUCFです。
Webpack 10.1で作成してとりあえず成功っと


モニタはPCデポ店頭に積んであったセリング KW-M80C というとこのSVGAモニタでアナログRGBとコンポッジト入力だけの
シンプル構成です。1万4千円くらいだったと思います。まぁちょっと使う程度なら使えるモニタです。

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date:    12:46:33 06/22/2008
// Design Name:
// Module Name:    vga
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
//
// -- 水平タイミング --
// 表示期間:   640ドット
// フロントポーチ:  16ドット
// 水平同期:    96ドット(656)
// バックポーチ:   48ドット(752)
//
// -- 垂直タイミング --
// 表示期間:   480ライン
// フロントポーチ:  10ライン
// 垂直同期:     2ライン(490)
// バックポーチ:   29ライン(492)

module vga(CLK_50MHZ, VGA_R, VGA_G, VGA_B, VGA_HSYNC, VGA_VSYNC);

input CLK_50MHZ;
output [3:0] VGA_R;
output [3:0] VGA_G;
output [3:0] VGA_B;
output VGA_HSYNC;
output VGA_VSYNC;

reg [3:0] VGA_R;
reg [3:0] VGA_G;
reg [3:0] VGA_B;
reg VGA_HSYNC;
reg VGA_VSYNC;

wire clk_25mhz;
reg clk_25mhz_a;
assign clk_25mhz = clk_25mhz_a;

reg [9:0] hcount;
reg [9:0] vcount;

/* 25MHz のクロック作成 */
always @(posedge CLK_50MHZ)
begin
clk_25mhz_a <= ‾clk_25mhz_a;
end

/* 25Mhz のクロックで画面描画 */
always @(posedge clk_25mhz)
begin

// 水平タイミング
hcount <= hcount + 1;     // 水平カウント 800 で一周     if(hcount > 10'd799)
begin
hcount <= 0;
vcount <= vcount + 1;
end
// 水平同期出力
if(hcount == 10'd655)
begin
VGA_HSYNC <= 0;
VGA_R <= 4'b0000;
VGA_G <= 4'b0000;
VGA_B <= 4'b0000;
end
// 水平同期出力終了
if(hcount == 10'd751)
begin
VGA_HSYNC <= 1;     end     // 垂直タイミング     // 521 ラインで一周     if(vcount > 10'd520)
begin
vcount <= 0;
end
// 垂直同期開始
if(vcount == 10'd489)
begin
VGA_VSYNC <= 0;
end
// 垂直同期終了
if(vcount == 10'd491)
begin
VGA_VSYNC <= 1;
end

// カラーバーもどき → メモリインタフェースにする
if(hcount == 10'd0)
begin
VGA_R <= 4'b1111;
VGA_G <= 4'b1111;
VGA_B <= 4'b1111;
end
if(hcount == 10'd79)
begin
VGA_R <= 4'b0000;
VGA_G <= 4'b1111;
VGA_B <= 4'b1111;
end
if(hcount == 10'd159)
begin
VGA_R <= 4'b1111;
VGA_G <= 4'b0000;
VGA_B <= 4'b1111;
end
if(hcount == 10'd239)
begin
VGA_R <= 4'b1111;
VGA_G <= 4'b1111;
VGA_B <= 4'b0000;
end
if(hcount == 10'd319)
begin
VGA_R <= 4'b1111;
VGA_G <= 4'b0000;
VGA_B <= 4'b0000;
end
if(hcount == 10'd399)
begin
VGA_R <= 4'b0000;
VGA_G <= 4'b1111;
VGA_B <= 4'b0000;
end
if(hcount == 10'd479)
begin
VGA_R <= 4'b0000;
VGA_G <= 4'b0000;
VGA_B <= 4'b1111;
end
if(hcount == 10'd559)
begin
VGA_R <= 4'b0000;
VGA_G <= 4'b0000;
VGA_B <= 4'b0000;
end

end
endmodule

 
<pre><code>

NET "VGA_R&lt;3&gt;" LOC = "C8" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;

NET "VGA_R&lt;2&gt;" LOC = "B8" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;

NET "VGA_R&lt;1&gt;" LOC = "B3" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;

NET "VGA_R&lt;0&gt;" LOC = "A3" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;

NET "VGA_G&lt;3&gt;" LOC = "D6" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;

NET "VGA_G&lt;2&gt;" LOC = "C6" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;

NET "VGA_G&lt;1&gt;" LOC = "D5" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;

NET "VGA_G&lt;0&gt;" LOC = "C5" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;

NET "VGA_B&lt;3&gt;" LOC = "C9" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;

NET "VGA_B&lt;2&gt;" LOC = "B9" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;

NET "VGA_B&lt;1&gt;" LOC = "D7" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;

NET "VGA_B&lt;0&gt;" LOC = "C7" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;

NET "VGA_HSYNC" LOC = "C11" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;

NET "VGA_VSYNC" LOC = "B11" | IOSTANDARD = LVTTL | DRIVE = 8 | SLEW = FAST ;

NET "CLK_50MHZ" LOC = "E12"| IOSTANDARD = LVCMOS33 ;

# NET "CLK_AUX" LOC = "V12"| IOSTANDARD = LVCMOS33 ;

# NET "CLK_SMA" LOC = "U12"| IOSTANDARD = LVCMOS33 ;


 

STM32 Primer2 が出てきた。

とりあえずいつ買ったか思い出せないほど昔に買いましたが、
部屋の整理中に発掘されたので、また時間見て遊んでみようと思います。
まぁ、でもとりあえず
stm32Circle.com
にある、プログラムサンプルとかを見てみておもしろそうなのから
動かしてみましょうというレベルですね。

優先度はかなり低い

リアルタイムクロックモジュール RTC-8564NB (秋月のん) のバッテリーバックアップ

リアルタイムクロックモジュール RTC-8564 はバッテリーバックアップが可能なので、マイコンボードに電池を接続してバックアップ可能にします。
RTC-8564の電源端子にマイコンからの電源供給がされて動くわけですが、マイコンの電源がOFFになったら電池に切り替えてバックアップします。この方法で一番簡単なのはダイオード一本で片付ける方法です。しかしながらダイオードの電圧降下(0.6~0.7V程度)があるためRTC-8564の電源電圧は5-0.7=4.3Vになります。一方マイコンと接続しているI2Cバスの信号ラインは5Vかかります。

問題は電源電圧より信号ラインの方が電圧が高いということです。RTC-8564のデータシートによりますと入力電圧は GND-0.5V ~ VDD+0.5V までとなっています。このことから普通のダイオードではわずかですが定格を越えます。電圧降下の低いダイオードを使用すればよいのですが買いに行くのも面倒なので、今回は下記のようにトランジスタのスイッチをバックアップ回路として作成しました。