board_label:[f4VOICEC]

プロジェクト名称：
	STM32F4discoveryボードで棒読み音声時計

機能概要：
ユーザボタンを押すとフォーンジャックの右chに出力する音声で時刻を読み上げる。

(1) discoボードオンボード機能の概要
	(a) 起動時に現在時刻の時分を棒読みで読みあげる。
	(b) 起動したらメインループによって緑LEDが明滅し続ける(ハートビート)
	(c) 起動直後には自動読み上げ機能がONになっており，5分毎に勝手に時刻を読み上げ
		る。自動読み上げ機能がONになっている場合は青LEDが明滅し続ける。
	(d) ユーザボタン押下により橙LEDが明滅するとともに現在時刻の時分を棒読みで読み
		上げる。また自動読み上げ機能はOFFになる。
		音声はDACで再生し，オンボードSDAC経由でホーンジャックの右chに出力する。
		音声用コンテンツのサンプルは，8kHz/8bit/1chのリニアPCMの生データ。
	(e) ユーザボタンをダブルクリックすると自動読み上げ機能がONになる。
	(f) RTCのクロックソースがLSE以外の場合には，赤LEDが明滅する。
	(g) OTG_FS(USBポート)は，CDCによる仮想COMポートデバイスとして機能する(※1)
		仮想COMポートドライバの入手
		http://www.st.com/
			Home → Tools and Software → Software → MCU Software → STM32 MCUs Software
			(URL: http://www.st.com/web/en/catalog/tools/FM147/CL1794/SC961 )から
			part number STSW-STM32102 (STM32 Virtual COM Port Driver)を選択してダウンロード
		時刻設定などのコンソールとして機能する。

(2) USART3(PD8/Tx3,PD9/Rx3)
	通信条件は115200N81固定。
	Ctrl+Aをエスケープ文字として以下のエスケープコマンドを使用可能(Ctrl+A + ?でヘルプを表示)
		<welcome メッセージ>
		ESC=ctrl-A
		ESC & 0   : set USART2 115200 fix rate.
		ESC & A   : set USART2 auto adjust rate.
		ESC & F   : set USART2 fix rate.
		ESC & else : send else char to USART2.

(3) USART2(PD6/Rx2,PD5/Tx2)
	115200N81(初期時固定，エスケープコマンドによりレート可変モードに設定可能)

(4) OTG_FS(USB CDC仮想COMポート)

(5) シリアル通信ブリッジ
	USART2←→USART3 ブリッジ

(6) TCXO_RTCアドオン
	(a) PC13(OSC_LS_IN)にRTC用クロックがある場合に，内蔵RTCをLSEクロックソースとして
		構成する。 クロックがない場合はLSIをクロックソースにする。(※2)
	(b) 起動時にTCXO_RTC(DS3234S)から時刻を取得し内蔵RTCへ設定する。

	※1 STマイクロのサンプルを流用してCDCデバイスを構成している。Windowsの場合は，
	　　仮想COMポートドライバを後述するSTマイクロのホームページから入手してイン
	　　ストールする。
	※2 起動時にD13にLSEクロック(期待値32768Hz)が入力されている場合にはLSEをRTCの
	　　クロックソースとする。
	　　LSEクロックがない場合には，LSIがRTCのクロックソースとなる。


ソースのビルド
	ツールチェーンはgcc
	make clean all でbuild以下の実行ファイル他を生成


実行の方法
	buildディレクトリにある f4VOICEC.binか f4VOICEC.elfをstm32f4discoveryのフラッ
	シュに書き込みます。(ST-linkユーティリティやOpenOCDなどにより書込んでください)
	リセットして実行すると，TCXO RTCアドオンがある場合はTCXO RTCから時刻を取得し
	内蔵RTCにロードされます。
	ボード上のユーザボタンを押すとそのときの内蔵RTCの時刻が読み出されます。

	時刻の設定は，ボードにあるマイクロUSB経由の仮想COMポートから入力設定します。
	Windowsの場合には仮想COMポートドライバを要求されるのでSTmicroなどから入手
	してドライバをインストールします。
	仮想COMポートにターミナルエミュレータなどで接続して、MMDDhhmmと入力すること
	で内蔵RTCとTCXO RTCアドオンがある場合には，そちらにも時刻を設定します。


動作諸元
	clock source=8MHz(HSE) bypass
	SYSCLK=144MHz(PLL)
	CPUCLK=AHB=144MHz
	APB1=36MHz
	APB2=72MHz
	I/OCLK(USB)=48MHz


謝辞
	xprintf from ELM-chan(http://elm-chan.org/)
	STM32_USB-Host-Device_Lib_V2.1.0 files from STmicro(http://www.st.com/)


注意
	一切無保証です。
