Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.
Thanks for that, your condescension is appreciated. Many of us have attempted to prototype ideas and concepts in less then ideal circumstances, like by tying a chip to another with wires, jumpers, hacking some code together or whatever. It seems like you are a pretty smart person, but you don’t...
I don’t know, the filter is on the tiny ad9834 board, I don’t have schematics with it, (a problem with getting any kind of of docs with these Chinese eBay boards), I can only see a couple of SMT inductors in series and some 0603 size caps on the board, forming some kind of LC filter.
The actual AD9834 is on a small PCB that I purchased and has the 75 Mhz crystal, bypass caps, low pass output filter and other circuitry on it. Signals for SPI and power are brought out to a 5 pin header. My uController, a pi pico, is also a small self contained PCB with regulator, 125Mhz clock...
Yep, makes sense. I took out the delays. What about the amplitude issue? Is that normal for it to diminish with increasing frequency? Searches I have done on that seem to say so, but wonder your experience.
Hi Barry,
I seem to be on the write track, more testing needed. I'm not too happy with the resolution of the chip though. And accuracy of the freq according to the calc'd and entered LSB/MSB combo seems to off a bit, maybe +- 100 hz? The other thing that was unexpected was the amplitude change...
Thanks Klaus,
I meant 13 megahertz, see scope shot in post #6. I don't know what you mean by "I wonder how this is synchronized." Each write a 2 byte array (16 bits) is sent. MSB = bytearray([0x45, 0xF9]). And my CS,
CS.low() <-------------------------------------- Low set
time.sleep_ms(10)...
Right on. In my code, to init the AD9834, I write 0x2100 to control register (00), which sets DB13 and DB8, the reset bit. After a write to FREQ0 (01), I write 0x2000 to control register (00), which takes the part out of reset, and at that point a waveform appears on my scope. I think DB12...
Correct, that's where I got it from. I am not using FREQ1, I am using FREQ0. There are two registers you can store frequency, FREQ0 to FREQ1, and select which register you use with the control register. See table 6 bit DB11, and table 7 & 8. By default DB11 is 0, and this selects FREQ0. This I...
D0 you think I got this wrong? RIght now for 7 mhz with a 75 mhz clock I have:
MSB = 0x40BF
LSB = 0x4B18
Painfully calc'd on paper with binary written out. It yields 13 mhz (see scope shot).
Id like to say thanks for responding on this, and so quickly !
The 0x0B18 is the LSB. Or'd with 0x4000 it becomes 0x4B18. Its the LSB, not the MSB. I have code attached in an earlier post, (go up 3), along with a oscope screenshot, but I am just entering the calc'd values into the SPI.write(). I havent calc'd them yet in my code, I'm doing it with right now...
That doesn't jive with the AD9834 datasheet. To load freq0 reg, you need 01at DB15 & DB14. Appending 10 to the 14 bits writes to freq 1 reg. I just tried it to confirm.
I am experimenting with a AD9834 freq generator chip and a Raspberry pi pico chip, communicating via SPI. I can get a waveform to show on my scope but it doesnt seem
to correspond correctly with my calculated freq word. I am using the AD9834 with 75 mhz clock. So my freq calcs are: 7 mhz...
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.