MC56F84xxx DSC 32 bit transfers

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MC56F84xxx DSC 32 bit transfers

Jump to solution
1,121 Views
JDFAE
NXP Employee
NXP Employee

Please explain the behavior of the post increment register when loading 32 bit numbers to either Y or an accumulator.

 

I am using these two instructions with the number 7 in the N register. I have 0x87ff in M01 which causes modulo addressing in both R0 and R1.

 

tfr    A,B       X:(R0)+N,C

mpy32   C,Y,A    X:(R1)+N,C

 

When executing the first instruction the R0 register increments by 7. When executing the second instruction the R1 register increments by 14. Either is logical. Incrementing by 14 is logical because there are two addresses per long transfer to C. I can either double N or not depending on the correct behavior. But I can't use both of these instructions in the same DSP loop as the N register is treated differently in the two cases.

 

Can you please tell me why the DSP works this way and if this is correct and most important, where can I find this documented in the DSP56800ERM manual. The 32 bit parallel loads are mentioned scantily in section A.3. Other places the only reference are to 16 bit moves, not 32 bit moves.

 

After further work I understand part of the problem. The issues are probably only with documentation.

 

The first instruction moves only 16 bits so it's logical to increment R0 by 7.

The second instruction moves 32 bits so bumping R1 by 14 is logical too.

 

In table 4-49 the documentation says that all parallel moves are 16 bits. But this is not true. The second instruction does in fact move 32 bits. That may be because those instructions are only EX. But please explain to me the difference in table 4-49 between

 

X:(R0)+N,A

X:(R0)+N,A1

 

Is it sign extension? I don't see any reason for the difference.

Labels (1)
0 Kudos
1 Solution
987 Views
TICS_Fiona
NXP Employee
NXP Employee

Hello Jeffery

Please see the table 6-2 on page 6-9 for the different addressing modes and data types in memory accessing. For long word access, the offset increases by 2.

http://cache.nxp.com/files/dsp/doc/ref_manual/DSP56800ERM.pdf


Best Regards

Fiona Kuang

Technical Information & Commercial Support

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

View solution in original post

1 Reply
988 Views
TICS_Fiona
NXP Employee
NXP Employee

Hello Jeffery

Please see the table 6-2 on page 6-9 for the different addressing modes and data types in memory accessing. For long word access, the offset increases by 2.

http://cache.nxp.com/files/dsp/doc/ref_manual/DSP56800ERM.pdf


Best Regards

Fiona Kuang

Technical Information & Commercial Support

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------