AnsweredAssumed Answered

external bus address conversion in HCS12

Question asked by 丰业 黄 on Mar 11, 2016
Latest reply on Mar 21, 2016 by 丰业 黄

       Hi,I need to use the HCS12(mc9s12kt256mpv) to interface a freescale MFR4310.

       I have got a problem.I can access the external space address now,but the addresses which are sent out are not completely right.For example,when I access (int far*)0x008000,I get 0x8000 at the external bus port,and 0x00 at the XADDR port.when I access (int far*)0x000000(according to the manual this is not a legal address),I get 0x0000 at the external bus port,and 0x3b at the XADDR port.This is not consistent with the conversion scheme in the application notes related. According to the algorithm in the AN when I access 0x008000,I should get :0*0x4000+ (0x8000-0x8000)= 0x000000,not 0x8000.

        I don't know where is the problem.At first ,I thought this would never matter ,because I thought the output address 0x8000 would be OK as well .Then  I interfaced the mc9hcs12kt256 to the Freescale MFR4310,at this moment I realize 0x8000 will never work,it must be the right address 0x0000 with the right xaddr=0x00.I have checked the PRM file and DEBUGGING MEMORY MAP DEBUGGER .I have put this in my PRM file :

PAGE_00 = READ_WRITE 0x008000 TO 0x00BFFF; //linear addr 0x000000 - 0x003FFF //16kB

I have configured the DMM as my real environment:IMG_0533.JPG

         Anyone gives a hand?Thanks.

Outcomes