Internal EEPROM Read/write Addressing Errors with 18F PIC's


Closed Thread
Results 1 to 19 of 19

Hybrid View

  1. #1
    Join Date
    Jul 2003
    Posts
    2,358


    Did you find this post helpful? Yes | No

    Default

    The 18F EEPROM problem was fixed in v2.45 and with the latest releases of MPLAB (MPASM). You need to upgrade BOTH. See very first post on this thread.

  2. #2
    mytekcontrols's Avatar
    mytekcontrols Guest


    Did you find this post helpful? Yes | No

    Question

    Melanie,

    Not to say that you aren't having success, and yes I did read your original post, and no I can't run your example because I have no LCD. However I do run a rather extensive EEprom preload of my own, and it doesn't work if I use sequential addressing with the DATA command.

    Here is my system:

    PBP ver 2.45A
    Epic ver 2.44
    MPASM ver 4.01
    MicroCode Studio Plus ver 2.2.1.1
    Windows 2000 Professional

    Here is the code that does work (non sequential addressing w/dummy bytes):
    Code:
    'Text Generator 0 - Color and Enhanced Feature Attributes
    
    DATA @0,$00,0,$FE,0,$0F     ' ATTR #00
    DATA @6,$00,0,$FE,0,$0F     ' ATTR #01
    DATA @12,$00,0,$80,0,$0F    ' ATTR #02
    DATA @18,$00,0,$0E,0,$0C    ' ATTR #03
    DATA @24,$00,0,$8E,0,$0F    ' ATTR #04
    DATA @30,$00,0,$70,0,$0C    ' ATTR #05
    DATA @36,$00,0,$F0,0,$0F    ' ATTR #06
    DATA @42,$00,0,$7E,0,$0C    ' ATTR #07
    DATA @48,$00,0,$48,0,$0E    ' ATTR #08
    DATA @54,$00,0,$B0,0,$0F    ' ATTR #09
    DATA @60,$00,0,$28,0,$0C    ' ATTR #10
    DATA @66,$00,0,$16,0,$0F    ' ATTR #11
    DATA @72,$00,0,$30,0,$0C    ' ATTR #12
    DATA @78,$00,0,$9E,0,$0C    ' ATTR #13
    DATA @84,$00,0,$28,0,$0C    ' ATTR #14
    DATA @90,$00,0,$28,0,$0C    ' ATTR #15
    
    'Text Generator 1 - Color and Enhanced Feature Attributes
    
    DATA @96,$00,0,$FE,0,$0F    ' ATTR #00
    DATA @102,$00,0,$FE,0,$0F   ' ATTR #01
    DATA @108,$00,0,$80,0,$0F   ' ATTR #02
    DATA @114,$00,0,$0E,0,$0C   ' ATTR #03
    DATA @120,$00,0,$8E,0,$0F   ' ATTR #04
    DATA @126,$00,0,$70,0,$0C   ' ATTR #05
    DATA @132,$00,0,$F0,0,$0F   ' ATTR #06
    DATA @138,$00,0,$7E,0,$0C   ' ATTR #07
    DATA @144,$00,0,$48,0,$0E   ' ATTR #08
    DATA @150,$00,0,$B0,0,$0F   ' ATTR #09
    DATA @156,$00,0,$28,0,$0C   ' ATTR #10
    DATA @162,$00,0,$16,0,$0F   ' ATTR #11
    DATA @168,$00,0,$30,0,$0C   ' ATTR #12
    DATA @174,$00,0,$9E,0,$0C   ' ATTR #13
    DATA @180,$00,0,$28,0,$0C   ' ATTR #14
    
    'Text Generator 0 - Highlight, lowlight, and shadow color attributes
    
    DATA @186,$FF,0,$01         ' HighLight
    DATA @190,$DB,0,$00         ' LowLight1
    DATA @194,$49,0,$00         ' Lowlight2/Shadow/Border
    
    'Text Generator 1 - Highlight, lowlight, and shadow color attributes
    
    DATA @198,$FF,0,$01         ' HighLight
    DATA @202,$DB,0,$00         ' LowLight1
    DATA @206,$49,0,$00         ' Lowlight2/Shadow/Border
    
    'Horizontal and Vertical Start Position
    
    DATA @210,$10,0,$08         ' Horizontal - Vertical Offset
    
    'Overlay Hue Setting
    
    DATA @214,$76               ' Hue (Text Generator 2 - Dac4)
    
    'Fader Transparency and Time variables
    
    DATA @216,$63,0,$00         ' T_Level and B_Level
    DATA @220,$32,0,$32         ' UP_Time and DN_Time
    
    'RTCC Time and Date Mode variables
    
    DATA @224,$00,0,$00         ' TimeMode and DateMode
    And here is the code that doesn't work (sequential addressing):
    Code:
    'Text Generator 0 - Color and Enhanced Feature Attributes
    
    DATA @0,$00,$FE,$0F     ' ATTR #00
    DATA @3,$00,$FE,$0F     ' ATTR #01
    DATA @6,$00,$80,$0F     ' ATTR #02
    DATA @9,$00,$0E,$0C     ' ATTR #03
    DATA @12,$00,$8E,$0F    ' ATTR #04
    DATA @15,$00,$70,$0C    ' ATTR #05
    DATA @18,$00,$F0,$0F    ' ATTR #06
    DATA @21,$00,$7E,$0C    ' ATTR #07
    DATA @24,$00,$48,$0E    ' ATTR #08
    DATA @27,$00,$B0,$0F    ' ATTR #09
    DATA @30,$00,$28,$0C    ' ATTR #10
    DATA @33,$00,$16,$0F    ' ATTR #11
    DATA @36,$00,$30,$0C    ' ATTR #12
    DATA @39,$00,$9E,$0C    ' ATTR #13
    DATA @42,$00,$28,$0C    ' ATTR #14
    DATA @45,$00,$28,$0C    ' ATTR #15
    
    'Text Generator 1 - Color and Enhanced Feature Attributes
    
    DATA @48,$00,$FE,$0F    ' ATTR #00
    DATA @51,$00,$FE,$0F    ' ATTR #01
    DATA @54,$00,$80,$0F    ' ATTR #02
    DATA @57,$00,$0E,$0C    ' ATTR #03
    DATA @60,$00,$8E,$0F    ' ATTR #04
    DATA @63,$00,$70,$0C    ' ATTR #05
    DATA @66,$00,$F0,$0F    ' ATTR #06
    DATA @69,$00,$7E,$0C    ' ATTR #07
    DATA @72,$00,$48,$0E    ' ATTR #08
    DATA @75,$00,$B0,$0F    ' ATTR #09
    DATA @78,$00,$28,$0C    ' ATTR #10
    DATA @81,$00,$16,$0F    ' ATTR #11
    DATA @84,$00,$30,$0C    ' ATTR #12
    DATA @87,$00,$9E,$0C    ' ATTR #13
    DATA @90,$00,$28,$0C    ' ATTR #14
    
    'Text Generator 0 - Highlight, lowlight, and shadow color attributes
    
    DATA @93,$FF,$01        ' HighLight
    DATA @95,$DB,$00        ' LowLight1
    DATA @97,$49,$00        ' Lowlight2/Shadow/Border
    
    'Text Generator 1 - Highlight, lowlight, and shadow color attributes
    
    DATA @99,$FF,$01        ' HighLight
    DATA @101,$DB,$00       ' LowLight1
    DATA @103,$49,$00       ' Lowlight2/Shadow/Border
    
    'Horizontal and Vertical Start Position
    
    DATA @105,$10,$08       ' Horizontal - Vertical Offset
    
    'Overlay Hue Setting
    
    DATA @107,$76           ' Hue (Text Generator 2 - Dac4)
    
    'Fader Transparency and Time variables
    
    DATA @108,$63,$00       ' T_Level and B_Level
    DATA @110,$32,$32       ' UP_Time and DN_Time
    
    'RTCC Time and Date Mode variables
    
    DATA @112,$00,$00       ' TimeMode and DateMode
    I have compiled it both ways several times, and the sequential addressing example fails to work every single time (when I view the configuration menu that is part of my main program, I can see that the EEprom data is all messed up, also the video characteristics which are based on this data do not function properly).

    I have also read the readme files that came with PBP 2.45, and no where is it mentioned that the EEprom problem was fixed in this version. However on the MEL upgrade page under the PBP ver 2.44 it lists: Changes PIC18Fxxxx DATA and EEPROM to allow odd locations (This would seem to suggest that the problem was fixed in ver 2.44 and not in ver 2.45, although the wording is strange).

    Once again, I'm not saying you are wroung, but please tell me why you think it doesn't work in my situation.

    Thank you,

  3. #3
    Join Date
    Jul 2003
    Posts
    2,358


    Did you find this post helpful? Yes | No

    Default

    Using PBP 2.45 and MPASM 4.01 with WinXP Pro, I can confirm the EEPROM works fine with 18F242, 252, 2420, 2520 and 2620. No blank spaces, odd and even locations accessed.

    I have put product out in the field with internal EEPROM maxed-out... if there was any anomaly I assure you it would have been spotted.

    I don't have or use Microcode Studio or EPIC.

    What 18F is causing you grief? I'll order one in if I don't have it and give it a spin...

  4. #4
    mytekcontrols's Avatar
    mytekcontrols Guest


    Did you find this post helpful? Yes | No

    Smile

    Perhaps the Epic programmer is the difference that really matters. I seem to recall something being said on the MEL site about the Epic programmer being involved with setting things right if the odd number sequence was used (unfortunately this topic was completely removed from the section it once appeared in on the MEL site). Perhaps the Epic programmer is now working against me, since the EEprom problem has presumably been fixed in PBP itself. Although once again, when I look at the upgrade info to version 2.45 for the Epic programmer nothing is mentioned about this at all.

    Oh well. I can live with it for the time being, or at least until I get better confirmation on what is happening. However it would be nice to know, especially for other people's sake that may be trying to use the same combination of tools as I am (and tearing their hair out trying to preload the EEprom during compilation with sequential DATA addressing).

    On a separate note: You said you don't use MicroCode Studio. What IDE are you using?

    What 18F is causing you grief? I'll order one in if I don't have it and give it a spin...
    I am using a PIC18F252 Dip 28 package running a 10 Mhz xtal with PLL set to x4

    Thanks for the quick reply and trying to help me out. It's appreciatted.
    Last edited by mytekcontrols; - 11th July 2005 at 20:43.

  5. #5
    Join Date
    Feb 2004
    Location
    Germany
    Posts
    762


    Did you find this post helpful? Yes | No

    Default

    Michael,

    I have experienced similar problems about a year ago.
    See:
    http://www.picbasic.co.uk/forum/show...ghlight=eeprom

    It was fixed with one the updates.

    And I can confirm what Melanie has already said:
    Using PBP 2.45 and MPASM 4.01 with WinXP Pro, I can confirm the EEPROM works fine with 18F242, 252, 2420, 2520 and 2620. No blank spaces, odd and even locations accessed.
    I have tried it with the latest Versions of:
    PICSTART+
    ICD2
    MicroCode Loader
    regards

    Ralph

    _______________________________________________
    There are only 10 types of people:
    Those who understand binary, and those who don't ...
    _______________________________________________



  6. #6
    mytekcontrols's Avatar
    mytekcontrols Guest


    Did you find this post helpful? Yes | No

    Thumbs up

    Hi Ralph,

    Thanks for the link --- great info, especially this:
    Once upon a time this was posted on the MEL site...
    If you use DATA or EEPROM to load values into data space at program time, you will encounter inconsistency in the addressing of this data. The Microchip assembler won't address odd-numbered locations in data space. Therefore, you have to multiply the addresses in the DATA and EEPROM statements by 2. The EPIC programmer will correct the addresses at program time, so you can read the values back without the address doubling.
    This is the info that I remembered, but could no longer find. It certainly appears that my problem might very well be directly linked to using the Epic programmer. If it is, what a Mickey Mouse solution that was (sorry Mickey, but I had to say it). I still would like to know if Epic ver 2.45 cures this before I upgrade (nothing else about the upgrade as published would be of benefit to me).

  7. #7
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    Hi Michael,
    well the best way to know is probably to ask to Melabs.
    One great guy there: Charles Leo => [email protected]

    But i doubt that you'll encounter any other problem with an upgrade.

    I just finish to talk to Mr Mickey Mouse... he's still happy. More and more publicity for him will just increase his pay cheque... well that's what he told me )

    Michael St-Pierre=> is there any french language back to it?
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

Similar Threads

  1. Can't read sequential addresses in external EEPROM
    By tjkelly in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 18th February 2010, 14:46
  2. Problem with I2C EEPROM addressing
    By Atom058 in forum General
    Replies: 14
    Last Post: - 3rd November 2009, 03:17
  3. Read/write variable into PIC internal eeprom
    By Pic2008 in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 13th August 2008, 07:06
  4. Multiple Pics accessing single EEPROM
    By Atom058 in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 3rd February 2008, 17:22
  5. word variable to 25lc640
    By TONIGALEA in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 6th July 2004, 19:59

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts