- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
Solved! Go to Solution.
- Labels:
-
Programmable Clocks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
0x10から0x15までのすべての値を教えてください。
その値から現在の出力周波数を計算して、新しい(-100ppmなど)周波数計算を行い、レジスタの値を計算します。
Large Changeは0x10~0x15までをすべてセットしてから、
0x62に0x00をWrite
0x62に0x01をWrite
Large Changeは内部のイニシャライズが行われますので、切り替え期間中の出力は不定です。
竹原
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
アドレス0x13~0x15の3バイトを変更して、次にアドレス0x62に0x00を書き、さらに0x62へ0x02を書き込みます。
以上でSmall Changeは終了です。
尚0x13~0x15の値の計算は元のデータと、何ppm変更するかという情報が必要です。
竹原
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
竹原様
返信ありがとうございます。
もう少し詳しく教えてください。
たとえば、プログラム後に
0x13: 0x00
0x14: 0x00
0x15: 0x7A
があらかじめ書かれていたとして、-100ppmしたい場合はどんな値をそれぞれのレジスタに設定すればよいですか?
また、Large Changeのやり方についても教えてください。
よろしくお願いします。
--
島村
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
0x10から0x15までのすべての値を教えてください。
その値から現在の出力周波数を計算して、新しい(-100ppmなど)周波数計算を行い、レジスタの値を計算します。
Large Changeは0x10~0x15までをすべてセットしてから、
0x62に0x00をWrite
0x62に0x01をWrite
Large Changeは内部のイニシャライズが行われますので、切り替え期間中の出力は不定です。
竹原
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
竹原さま
コメント遅くなって申し訳ありません。
今回のケースではLarge Changeで事足りました。
ご対応ありがとうございました。
--
島村