Garyl
Full Member level 5
- Joined
- Mar 28, 2017
- Messages
- 253
- Helped
- 6
- Reputation
- 12
- Reaction score
- 7
- Trophy points
- 18
- Activity points
- 2,633
This way, you'll have a hard time to achieve at least 10 bit precision.Will using the single "port expander" chip with 16 outputs as simple DAC give me more precision?
I want to replace the potentiometer in the variable frequency oscillator circuit for the radio receiver.You didn't yet specify the DA application.
I'm not sure about that. I've seen other project where guy replaced pot with simple DAC made of resistors ladder and two 74HC595 here:This way, you'll have a hard time to achieve at least 10 bit precision..
Is there any 16+ bit DAC in DIP package and in reasonable price?Otherwise consider a precision DAC from a major manufacturer (Analog, TI, Linear).
You can check the vendor and distributor search engines. I see e.g. AD7849 in DIP package, LTC1655 has been already suggested.Is there any 16+ bit DAC in DIP package and in reasonable price?
He's also specifying 1 % ladder resistors. You can calculate respective worst case steps in linearity curve. There can be e.g. a 0.5 % of range unreachable dead band in the center.he claims he got 16 bit (2^16 = 65k~ states) resolution that way.
Code C - [expand] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 #include <built_in.h> sbit SH_CP at GP0_bit; sbit DS at GP1_bit; sbit ST_CP at GP2_bit; unsigned long i = 0; void HC595_Send(unsigned char data_) { unsigned char mask = 0x01; unsigned char j = 0; for(j = 0; j < 8; j++) { if(data_ & mask) { DS = 1; } else { DS = 0; } mask <<= 1; SH_CP = 1; Delay_us(100); SH_CP = 0; } } void HC595_Strobe() { ST_CP = 1; Delay_us(100); ST_CP = 0; } void main() { CMCON0 = 0x07; ANSEL = 0x00; TRISIO = 0x00; GPIO = 0x00; Delay_ms(100); while(1) { for(i = 0; i < 16777216; i++) { HC595_Send(Lo(i)); HC595_Send(Hi(i)); HC595_Send(Higher(i)); HC595_Strobe(); } } }
Code C - [expand] 1 2 3 4 5 6 7 for(i = 0; i < 16777216; i = (i + 3355443)) { HC595_Send(Lo(i)); HC595_Send(Hi(i)); HC595_Send(Higher(i)); HC595_Strobe(); Delay_ms(1000); }
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?