New to forum with burning Q?

Thread Starter

Tjaart1

Joined May 7, 2018
11
Hi
If someone could help me, or direct me to the best forum/ forum topic to solve an hardware programming issue.

I went a ahead and bought 10xA1335 sensor chips and I am planning to use them with I2C communication.
Now they come pre-programmed with a I2C address and two hardware pins to change the address so you can use 4 of them out of the box by setting the hardware pins. :)

When you want to use more than 4 one need to change the first 5 bits in the register to a new address, coupled with the hardware pins.. gives you another 4 sensors and so on. :)

To set the new address in EEPROM memory you set a couple of enable bits and register addresses. Once everything is set you need to pulse the VCC pin (normally at 5V) with something like 18V to make it permanent.

How do you that? :confused:
Extracts from Data sheet and programming manuals:

Address: 0x319 (continued)
EEPROM Register Reference (continued)
I2C_SLAVE_ADR [6:2]
I2C Slave Address
Sets the 5 MSB of the I2C slave address. 2 LSB of address set by the
logic state of the SA0 and SA1 pins.

The final step in writing to EEPROM is sending programming pulses on the EEPROM programming pin (the VCC pin) to set the bitfields. The VCC pulse profile necessary for EEPROM programming is shown in Figure 17. Minimum and maximum times
are described in Table 17. After EEPROM has been written, it is recommended to cycle power to the device.

Pulse Voltage min: 18V Typical: 19V Max:19.5V
 

Thread Starter

Tjaart1

Joined May 7, 2018
11
What is the EEPROM part number ?

Regards, Dana.
Hi Dana
The A1335 is a magnetic sensor with an on board micro controller and a inbuilt EEPROM for settings, like the I2C address when powered up. These settings can be changed a few time over by re-writing the EEPROM.
:mad:IF one can figure out this VCC pin pulse setup.
 

Thread Starter

Tjaart1

Joined May 7, 2018
11
Hi Dana
I had a read about that some time ago. That aplicarion note relate to linearization... for ecsample, should you use this sensor as fuel gauge and the tank is a odd shape. One could then apply this to steadely indicate full to empty. The gauge will not show full and drop to empty within 5 minutes.
Just another function of the sensor. Not the one I am after.

Introduction
This application note will provide a step-by-step example for configuring harmonic output signal linearization using the ....
 

danadak

Joined Mar 10, 2018
4,057
I must have misunderstood, I thought you were seeking circuit to do
the programming. ASEK-20 or 21 are the programming boards, so
their schematic would be insightful......

Regards, Dana.
 

Thread Starter

Tjaart1

Joined May 7, 2018
11
I must have misunderstood, I thought you were seeking circuit to do
the programming. ASEK-20 or 21 are the programming boards, so
their schematic would be insightful......

Regards, Dana.
Thanks
Any input is apreciated. The programing can be done through I2C, SPI SENT with the the normal circuit connections.
 

Raymond Genovese

Joined Mar 5, 2016
1,653
Thanks
Any input is apreciated. The programing can be done through I2C, SPI SENT with the the normal circuit connections.
I'm not sure that I understand your question.

Do you have the programming manual and sample code available here? https://github.com/Roboy/A1335_Utils

The figure (17) that you referenced, along with the subsequent table gives the programming pulse information details. The text beginning on page 58 details unlocking the device before programming as well as some kind of translation that needs to be done from SRAM to EEPROM (I didn't read carefully).

Edited to add:

I just read your two posts/threads here https://forum.arduino.cc/index.php?topic=538448.0 and here http://forum.arduino.cc/index.php?topic=545957.0

It appears that your question is, "how do you apply the necessary programming voltage for the necessary time". This is not a simple question to answer as you need to make your own programmer or adapt another programmer. You need to switch the voltage to Vcc only and only for the programming pulse.

Maybe a good start would be to ask them if they can suggest a programmer. Else, you have to learn to build one or adapt one - which is not trivial.
 
Last edited:

Raymond Genovese

Joined Mar 5, 2016
1,653
As I continue to think about this, there may be an easier solution.

I will assume that you want use I2C only and that the only problem is that you can only have 4 unique I2C address, unless you program new ones.

You may be able to use a TCA9548A I2C Multiplexer: https://www.adafruit.com/product/2717

You would need to do some testing and your programming would need to be changed some. I have not used one, but it may provide an easier solution for you.
 
Top