I would like some clarification for this part.
I will be using an arduino uno initially to communicate with it, and what I would like to clarify with the device is the following statement from page 21:
"...contain an array of 50-TP programmable memory registers,... ...It is possible to read back the contents of any of the 50-TP memory registers through the I2C interface by using Command 5 in Table 12."
I do not yet have teh piece, as I would like to be certain before starting with it, for the following:
1. Does this mean that we can program up to 50 different permanent values?
If yes, we can read this value back from the device and then send it as an active value, or can we tell it to "activate" a certain value
As an example:
Read value from position 3 and use that.
Does that mean:
Read value from position 3 in the 50 TP registery
Is that correct, or is there a shorter / quicker way.
2. In reference to the previous question, my main concern is: from P1 of the PDF:
"The AD5272/AD5274 device wiper settings are controllable through the I2C-compatible digital interface. Unlimited
adjustments are allowed before programming the resistance value into the 50-TP memory. The AD5272/AD5274 do not require any external voltage supply to facilitate fuse blow and there are 50 opportunities for permanent programming. During 50-TP activation, a permanent blow fuse command freezes the wiper position (analogous to placing epoxy on a mechanical trimmer)."
The way I originally interpret that statement is equivalant to 50 times non-volatile memory, and on the last turn off of power for the 50th time, that it will be fixed at that location, and then need to move the wiper...
3. Is there a sample program available of how it would look like, simalar to here:
As an example, I will be using 2 parts, 1 will be a 20K and the other a 100K part,
can it include the following please, if possible:
Put wiper to 5K : For the 20K part
Place value in position 3 of 50TP and save it to the 20K part.
Read value in position 7 from 50TP :For the 100K part
I hope I am not asking for to much. I am aware that altering PIN 10, will alter the address, so one can be tied to GRN the other to VDD.
Thank you in advance.
To answer your first question, yes, you can program the part up to 50 different permanent values. They are saved to memory spaces which can be read back from the part. You may use the read data to move the wiper to that position. Your example is valid. Unfortunately, I cannot see a shorter way.
Let's go to the second question. When a desirable wiper position is found, this value can be stored in a 50-TP memory register. Thereafter, the wiper position is always restored to that position for subsequent power-up. After the 50th successful write to the memory, the part will always restore the wiper to the saved position and then the user may move the wiper to another desired position.
For your last question, we have an evaluation software that is included when you purchase the evaluation board of the part. That is the EVAL-AD5272SDZ. The program uses LabVIEW. You may download the evaluation software here.
Thank you for clarifying. So to sum it up:
The 50TP, is like a 50 position PROM (OTP), and once all locations have been filled, then when the device powers up, it will load the details from the last location all the time and the end user will need to alter it, or the uC can remember the last stored value and write that value to the device. So this save also on uC EEPROM memory as there can can be a line that says, "On Power up, read EEPROM Value last use, and then transfer to the part, else as for other value". So that means we need to remember that, else it will default to the last saved prom location if that line is not in the programming. Is that correct?
Also, thank you for the evaluation board links, but of what I noticed, they use a parallel /centronics connector of which is very rare these day's, and I would need to bring to life an old pc to be able to use it or use a usb to parallel port converter.
I will be trying it out as I mentioned with an Atmel piece, ARDUINO 1st, to confirm that that I am able to use it correctly, and then use a smaller 8pin piece while using the i2c interface for everythingm i.e. display, programming the digipots and a few more things. That is why I asked about arduino programming, but the link that I had listed previously would be a good starting point
Many thanks for confirming the information, it had been very useful.
Yes, that is correct.
So there are only 50 opportunities to change the resistance value and save it and have it automatically be restored on power-up?
Are there any digi-POT that can have a much larger number of change/save/auto power-up recall? Or an infinite number? I am looking for I2C, and maybe bipolar analog signal capable.
The Microchip MCP454X/456X/464X/466X family features "Automatic Recall of Saved Wiper Setting" and does not appear to have a limit on number of value saves?
Yes, you are correct. there are only 50 opportunities to change the resistance value and save it and have it automatically be restored on power-up.
You can check out AD5141, where you can store the value in the EEPROM and do a infinite number of stores.
AD5141 Datasheet and Product Info