How to change the clock output of the CY29412 without using the Clock Wizard

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
SuSh_1535366
Level 5
Level 5
Distributor - Macnica (Japan)
10 solutions authored 10 likes given 10 likes received

Hello,

I would like to change the clock output via I2C for clock evaluation.
However, only changing the I2C register (10h to 15h) did not change the clock output.
I could read that "Large Change" or "Small Change" command was needed from the datasheet, but I could not find information about those commands.

How do I change the clock output from the I2C master without using the Clock Wizard?

In what sequence should I access I2C slave?

Regards,

Shimamura

0 Likes
1 Solution
Anonymous
Not applicable

0x10から0x15までのすべての値を教えてください。

その値から現在の出力周波数を計算して、新しい(-100ppmなど)周波数計算を行い、レジスタの値を計算します。

Large Changeは0x10~0x15までをすべてセットしてから、

0x62に0x00をWrite

0x62に0x01をWrite

Large Changeは内部のイニシャライズが行われますので、切り替え期間中の出力は不定です。

竹原

View solution in original post

6 Replies
PradiptaB_11
Moderator
Moderator
Moderator
500 replies posted 250 solutions authored 250 replies posted

Hi Shimamura-san,

You can use the Bridge control panel (BCP) software that comes with PSoC Programmer as a  secondary software to give I2C commands.

PSoC Programmer Secondary Software | Cypress Semiconductor

For a random write use the sequence below

Start------Device Address------------Memory Address--------------Memory Data---------------Stop

ex : W 69 08 08

For Read

Start---------Device Address--------Memory Address------------Device Address------------Memory Data------------Stop

Thanks,

Pradipta.

0 Likes
SuSh_1535366
Level 5
Level 5
Distributor - Macnica (Japan)
10 solutions authored 10 likes given 10 likes received

Hello Pradipta-san,

Thank you for your response.

I have written to the FS0: Frequency Configurations register (10h to 15h) from the I2C master.

And it is confirmed by reading from the register that the value can be correctly written.
However, it will not be expected output.

How do I validate the value set in the register?

Regards,

Shimamura

0 Likes
Anonymous
Not applicable

アドレス0x13~0x15の3バイトを変更して、次にアドレス0x62に0x00を書き、さらに0x62へ0x02を書き込みます。

以上でSmall Changeは終了です。

尚0x13~0x15の値の計算は元のデータと、何ppm変更するかという情報が必要です。

竹原

SuSh_1535366
Level 5
Level 5
Distributor - Macnica (Japan)
10 solutions authored 10 likes given 10 likes received

竹原様

返信ありがとうございます。

もう少し詳しく教えてください。

たとえば、プログラム後に

0x13: 0x00
0x14: 0x00

0x15: 0x7A

があらかじめ書かれていたとして、-100ppmしたい場合はどんな値をそれぞれのレジスタに設定すればよいですか?

また、Large Changeのやり方についても教えてください。

よろしくお願いします。

--

島村

0 Likes
Anonymous
Not applicable

0x10から0x15までのすべての値を教えてください。

その値から現在の出力周波数を計算して、新しい(-100ppmなど)周波数計算を行い、レジスタの値を計算します。

Large Changeは0x10~0x15までをすべてセットしてから、

0x62に0x00をWrite

0x62に0x01をWrite

Large Changeは内部のイニシャライズが行われますので、切り替え期間中の出力は不定です。

竹原

SuSh_1535366
Level 5
Level 5
Distributor - Macnica (Japan)
10 solutions authored 10 likes given 10 likes received

竹原さま

コメント遅くなって申し訳ありません。

今回のケースではLarge Changeで事足りました。

ご対応ありがとうございました。

--

島村

0 Likes