link もっと前
   2018年 10月 22日 -
      2018年 10月 13日  
link もっと後

link 未来から過去へ表示(*)
link 過去から未来へ表示

日々

link permalink

ダブル職業

Facebook って、職業の「現在も働いています」チェックを外さないと、2社で働いていることになってしまうんですね。知らなんだ。

メモ: 技術系の話は Facebook から転記しておくことにした。

[編集者: すずき]
[更新: 2018年 11月 9日 14:38]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

linux-next で ROCK64 のオーディオが動かない、その 1

  • 2018年 10月 14日 - I2S と クロックレジスタ
  • 2018年 11月 10日 - I2S の DMA 問題と、残りの 3つの問題
  • 2018年 11月 11日 - I2S2 を認識しない問題解決(DMA チャネル数の問題だった)
  • 2018年 11月 28日 - I2S1 が動かない問題解決(クロックゲート定義のバグを直した)
  • 2018年 11月 29日 - アナログオーディオが動かない問題解決(ACODEC ドライバがなかったから移植)
  • 2018年 12月 23日 - 44.1kHz の PCM を再生できない問題解決(GPLL クロック定義のバグを直した)
  • 2019年 1月 5日 - 32kHz → 44.1kHz の順で PCM を再生できない問題解決(fractional divider の実装を変えた)

ROCK64 の I2S とクロック

また忘れてしまいそうなので、メモがてら残しておきます。

ROCK64 のデバイスツリーを見ると、I2S デバイスの先頭 i2s0 には 2つクロックが定義されています。ラベルは i2s_clk と i2s_hclk です。再生時にマスタークロックとして使われるのは前者の方で、クロックコントローラの ID: SCLK_I2S0(= 41)のクロックでした。

RK3328 のクロックドライバから、SCLK_I2S0 のクロックを調べてみると、クロックゲートは CRU_CLKGATE_CON1 アドレス 0xff440204 のビット 3 のようです。RK3328 の TRM(Technical Reference Manual)を見るかぎり、ビット 3 のフィールド名は clk_i2s0_en となっているので、たぶん合ってるでしょう。

クロックの設定は CRU_CLKSEL_CON6 アドレス 0xff440118 のようです。レジスタの値をダンプしてみると、親クロックは CPLL で分周比 1/16 の設定になっていました。理由は知りません。

CPLL の発振周波数として /sys/kernel/debug/clk/cpll/clk_rate を信じるなら、CPLL は 1.2GHz らしいです。従って i2s0 のマスタークロックは 1.2GHz / 16 = 75MHz ですね。

RK3328 の I2S ドライバは、2 * 32 * fs(48kHz など)と、マスタークロックが整数比にならない場合、エラーで弾く実装になっています。オーディオ用のコーデック IC の仕様書とかで出てくる表現で書くと、MCLK = 64fs です。

しかし 48kHz や 44.1kHz は、75MHz とは整数比になることはありません。ふーむ、困った。次は、マスタークロックの周波数を変える方向で調べてみましょうかねえ。

[編集者: すずき]
[更新: 2019年 2月 13日 00:24]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

Welcome back ROCK64

やっと ROCK64 を置けそうな場所を確保できて、Linux カーネルで遊べるようになりました。

先月 linux-next で RK3328 の Audio(I2S)を動かそうとしていたことまでは覚えているものの、どうして動かないのか、どうやって追うつもりだったか、完全に忘れました。

引っ越し前に LKML にぶん投げたパッチは、全て Upstream に取り込まれたようですから、ここらで一つ、初心に帰って解析するのもありでしょう。

できればボードが訳わからん動きをした時のデバッグのため、オシロをボードの隣に置きたいんですが、自分のスペース(60cm 幅の棚 1つだけ)には置けそうにありません。困ったな〜。

Raspberry Pi 3 Model B+

ついでに Raspberry Pi 3 も ROCK64 の隣に置いておきました。とはいえ RasPi 3 はカーネル起動時にシリアルを出す方法が分からんので、カーネル開発用としてはほとんど使っていません。

それと気のせいでなければ、RasPi 3 は ROCK64 より一段遅い気がします。どちらも同じ Cortex A53 x 4 で、SD カードからブートしているんですけどね。メモリアクセスが遅いのかなあ?

[編集者: すずき]
[更新: 2018年 10月 15日 23:20]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
   2018年 10月 22日 -
      2018年 10月 13日  
link もっと後

管理用メニュー

link 記事を新規作成

合計:  counter total
本日:  counter today

link About www2.katsuster.net
RDF ファイル RSS 1.0
QR コード QR コード

最終更新: 2/21 00:46

カレンダー

<2018>
<<<10>>>
-123456
78910111213
14151617181920
21222324252627
28293031---

最近のコメント 5件

  • link 18年12月11日
    すずき 「確認いただいてありがとうございます。直っ...」
    (更新:12/27 00:22)
  • link 18年12月11日
    T4 「再現しませんね\n\n確かに、過去にそう...」
    (更新:12/25 12:45)
  • link 18年12月11日
    すずき 「失礼しました。Rock64 の方は、\n...」
    (更新:12/22 02:10)
  • link 18年12月11日
    T4 「私は、Tinker Board を持って...」
    (更新:12/21 10:14)
  • link 18年12月11日
    すずき 「> 但し、これもう一年以上前の話で...」
    (更新:12/19 11:54)

最近の記事 3件

link もっとみる
  • link 19年02月19日
    すずき 「[RISC-V のコンパイラ] Crosstool-NG は RI...」
    (更新:02/21 00:46)
  • link 19年02月18日
    すずき 「[RockPro64 のシリアル出力] RockPro64 のシリ...」
    (更新:02/21 00:43)
  • link 19年02月20日
    すずき 「[RockPro64 の HDMI Audio] RK3399 の...」
    (更新:02/21 00:33)

こんてんつ

open/close wiki
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報