First of all As you have probably guessed by now I am currently working with the 33FJ256MC710 and they recently (April 18) came out with an errata plagued with problems in the ADC, UART, SPI, PWM, OC and DMA. Too late for me to change the chip .
Now,almost all of those peripherals (except for DMA) are supported by your blockset and I really understand that you can not write code for the blocksets in a way that meets all of the errata out there. Many of the workarounds require you to not meet certain conditions in the registers, so I was wondering if it could be possible for you to add a space in the blocks configuration window where we could see what are the actual values being set for the involved registers and leave to us (the users) the responsibility to configure the device in such a way that does not fall into the errata.
For instance, for the SPI, at the bottom in gray I would see someting like
SPI1CON1 = 0xABCD
SPI1CON2 = 0xAAAA
SPI1STAT = 0xABCD
Also there is one thing that I want to ask if you could do in your end for this errata.
4. Module: DMA Module: Interaction with
The EXCH instruction does not execute correctly
when either of the two operands is numerically
equal to the address of any of the DMAC SFRs for
this revision of silicon.
If writing source code in assembly, the
recommended fix is to replace:
Code: Select all
EXCH Wsource, Wdestination
MOV Wsource, Wdestination
If using the MPLAB C30 C compiler, specify the
Code: Select all
C30>Use Alternate Settings)
In other words, could you add that flag to the compiler options?
In conclusions, two requests: Could you let us see the values of the involved registers and add the above mentioned flag to the compiler options?