Tool/software:
Hello again,
I have been working with this device off and on for a while and finally got it MOSTLY working. I was informed by the test team recently that the device is not operating the spike and hold functionality...
I have the device set up so that I can use EN and EN1 as individual controls for the two solenoids that the device is controlling, I THINK I have also set it up so that the spike lasts about 250ms and the hold is then %40 of the peak current value, however, it never goes into hold mode.. The current always stays at the maximum for the device which is about 400ma.
I have the registers set up like so.
Spi Read gave us Register Addr 0x1 rdata -> 0xc1 = 0x1 0x88
Spi Read gave us Register Addr 0x2 rdata -> 0xc2 = 0x8 0x80
Spi Read gave us Register Addr 0x3 rdata -> 0xc3 = 0x8 0x0
Spi Read gave us Register Addr 0x4 rdata -> 0xc4 = 0x8 0x0
Spi Read gave us Register Addr 0x5 rdata -> 0xc5 = 0x0 0x0
Spi Read gave us Register Addr 0x6 rdata -> 0xc6 = 0x1 0x0
Spi Read gave us Register Addr 0x7 rdata -> 0xc7 = 0xff 0x9c
Spi Read gave us Register Addr 0x8 rdata -> 0xc8 = 0x1 0x0
Spi Read gave us Register Addr 0x9 rdata -> 0xc9 = 0xff 0x9c
Spi Read gave us Register Addr 0xa rdata -> 0xca = 0x0 0x0
Spi Read gave us Register Addr 0xb rdata -> 0xcb = 0x0 0x0
Spi Read gave us Register Addr 0xc rdata -> 0xcc = 0xb9 0x4c
Spi Read gave us Register Addr 0xd rdata -> 0xcd = 0xb9 0x4c
Spi Read gave us Register Addr 0xe rdata -> 0xce = 0x0 0x0
Spi Read gave us Register Addr 0xf rdata -> 0xcf = 0x0 0x0
Spi Read gave us Register Addr 0x10 rdata -> 0xd0 = 0xc0 0x40
Spi Read gave us Register Addr 0x11 rdata -> 0xd1 = 0xc0 0x40
Spi Read gave us Register Addr 0x12 rdata -> 0xd2 = 0x24 0x24
Spi Read gave us Register Addr 0x13 rdata -> 0xd3 = 0x0 0xff
Spi Read gave us Register Addr 0x14 rdata -> 0xd4 = 0xd3 0xc
Spi Read gave us Register Addr 0x15 rdata -> 0xd5 = 0x80 0x0
Spi Read gave us Register Addr 0x16 rdata -> 0xd6 = 0x0 0xde
Spi Read gave us Register Addr 0x17 rdata -> 0xd7 = 0x26 0x23
Spi Read gave us Register Addr 0x18 rdata -> 0xd8 = 0x0 0x0
Spi Read gave us Register Addr 0x19 rdata -> 0xd9 = 0xb 0xb
Spi Read gave us Register Addr 0x1a rdata -> 0xda = 0xa0 0x0
Spi Read gave us Register Addr 0x1b rdata -> 0xdb = 0x0 0x56
Spi Read gave us Register Addr 0x1c rdata -> 0xdc = 0x80 0xb1
Spi Read gave us Register Addr 0x1d rdata -> 0xdd = 0x12 0x5f
Spi Read gave us Register Addr 0x1e rdata -> 0xde = 0x0 0x87
Spi Read gave us Register Addr 0x1f rdata -> 0xdf = 0x0 0x0
and the command registers I have been playing around with, currently they hold the following contents..
Spi Read gave us Register Addr 0x1c rdata -> 0xdc = 0x80 0xb1
Spi Read gave us Register Addr 0x1d rdata -> 0xdd = 0x12 0x5f
Spi Read gave us Register Addr 0x1e rdata -> 0xde = 0x0 0x87
I have tried many different settings but have failed to successfully get it to do the spike and then move to hold.
All of the specifications read as if it SHOULD be able to do this on it's own, my concern is that I will actually have to smack the device around using the cmd1 register to forcibly move it to %50 every time I activate it, I'd really rather not have to do that.
Does the drv3946 actually do this on its own when I enable the solenoid with the EN lines? Or do I have to go in and touch the cmd1 register after I activate it to do this myself?
Any insight you can give me on this would be helpful.
Thanks
Rick