AN633 explains you apply the patch after reset and before power-up. There's mention of an apply patch function but it doesn't appear in any files generated by the IDE. WDS generates the si446x_patch.h file, 56 rows of 9 bytes, first byte always 0x08 which must be length. I've tried waiting for gpi01 then sending 8 bytes at a time and waiting each time for gpi01, but it freezes up after the first row waiting for gpi01 to go high again. So what's the correct method?
The apply patch function is not used in our code examples anymore and will also be removed from AN633 soon.
Section 9.6 describes the process correctly. The length byte of 0x08 is used by the functon that processes the command array of the WDS sample application, it is not part of the patch command itself. Note that you have to assert NSEL at the beginning and deassert at the end of each 8 byte command.
Thanks Tamás, certainly the AN's need updating - for instance the Si4455 -2WayLink Demo information states that the radio chip is revision B1A, but WDS shows it as C2. The AN's for revisions B1 and C2 show the top markings as "455A" for both types too, so the only way to tell would be to do a partial info.
However, getting the B1 versions to do anything at all until it's booted up is near impossible :-( it's a bit chicken and egg.
So does this mean there's a new Si4455 revision on the way with all the patches built in? If so, I hope its top marking isn't 455A...