Fast SPI-based serial interface to AD9850 clock generator. Has same interface as (bit-banging based) AD9850 library, but more than x100 faster in frequency update speed. Can sweep 1KHz to 30MHz in 1KHz step in a few seconds.
AD9850SPI.h@4:c60c1caa2593, 2020-01-10 (annotated)
- Committer:
- Taisuke Yamada
- Date:
- Fri Jan 10 10:24:30 2020 +0900
- Branch:
- switch-to-cmsis-bitops
- Revision:
- 4:c60c1caa2593
- Parent:
- 0:4aaced3b219c
Switched to CMSIS bitops
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Taisuke Yamada |
4:c60c1caa2593 | 1 | /** |
Taisuke Yamada |
4:c60c1caa2593 | 2 | * Fast AD9850 serial interface over SPI |
Taisuke Yamada |
4:c60c1caa2593 | 3 | */ |
Taisuke Yamada |
4:c60c1caa2593 | 4 | |
Taisuke Yamada |
4:c60c1caa2593 | 5 | #include <mbed.h> |
Taisuke Yamada |
4:c60c1caa2593 | 6 | |
Taisuke Yamada |
4:c60c1caa2593 | 7 | class AD9850SPI { |
Taisuke Yamada |
4:c60c1caa2593 | 8 | |
Taisuke Yamada |
4:c60c1caa2593 | 9 | public: |
Taisuke Yamada |
4:c60c1caa2593 | 10 | AD9850SPI(SPI &spi, PinName fq_ud, PinName reset); |
Taisuke Yamada |
4:c60c1caa2593 | 11 | ~AD9850SPI(); |
Taisuke Yamada |
4:c60c1caa2593 | 12 | |
Taisuke Yamada |
4:c60c1caa2593 | 13 | void reset_spi(); |
Taisuke Yamada |
4:c60c1caa2593 | 14 | void reset(); |
Taisuke Yamada |
4:c60c1caa2593 | 15 | void setFrequency(int freq, int powerdown=0, int phase=0); |
Taisuke Yamada |
4:c60c1caa2593 | 16 | |
Taisuke Yamada |
4:c60c1caa2593 | 17 | private: |
Taisuke Yamada |
4:c60c1caa2593 | 18 | SPI &_spi; |
Taisuke Yamada |
4:c60c1caa2593 | 19 | DigitalOut _fq_ud; |
Taisuke Yamada |
4:c60c1caa2593 | 20 | DigitalOut _reset; |
Taisuke Yamada |
4:c60c1caa2593 | 21 | }; |
Taisuke Yamada |
4:c60c1caa2593 | 22 |