Shop OBEX P1 Docs P2 Docs Learn Events
P1 upload Protocol to EEPROM — Parallax Forums

P1 upload Protocol to EEPROM

Hello,
is the protocol described somewhere how the upload is done in the P1 into the EPROM?

Comments

  • iseriesiseries Posts: 1,472

    An EPROM program is loaded into hub ram that reads the data serially and writes it to EPROM.

    So, there is no protocol for loading into EPROM.

    Mike

  • @iseries said:
    An EPROM program is loaded into hub ram that reads the data serially and writes it to EPROM.

    So, there is no protocol for loading into EPROM.

    Mike

    That's not correct, P1 has EEPROM programming built-in.

    There was a description of the protocol somewhere.

  • maccamacca Posts: 745

    @pic18f2550 said:
    Hello,
    is the protocol described somewhere how the upload is done in the P1 into the EPROM?

    Aside from the uploader sources, I found this document in my archives, I don't remember where it comes from (guess from a forum post, but the search is stil a pain...).

  • iseriesiseries Posts: 1,472

    Programming commands:

    // Shutdown command (0); 11 bytes.
    static const uint8_t shutdownCmd[] = {
        0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0xf2};
    
    // Load RAM and Run command (1); 11 bytes.
    static const uint8_t loadRunCmd[] = {
        0xc9, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0xf2};
    
    // Load RAM, Program EEPROM, and Shutdown command (2); 11 bytes.
    static const uint8_t programShutdownCmd[] = {
        0xca, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0xf2};
    
    // Load RAM, Program EEPROM, and Run command (3); 11 bytes.
    static const uint8_t programRunCmd[] = {
        0x25, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0xfe};
    

    Mike

  • oh dear,
    pulse width modulation.
    I thought that was a normal serial transmission like with a SIO.
    No, I'd rather build an overlay loader.
    Thanks for the help.

  • This describes the download protocol for P1: https://github.com/rosco-pc/propeller-wiki/wiki/Download-Protocol

  • Nice page, unfortunately the links go nowhere.

  • Yeah, this is a copy of an older wiki. Forum changed links multiple times since that page was written

  • It would be great if the spin tool could upload from the Eprom, then display it as the original spin code. I use some Idec products, such as PLC's and HDMI screens, both can have their programs uploaded and displayed as their original programs.

  • @rosco_pc said:
    Yeah, this is a copy of an older wiki. Forum changed links multiple times since that page was written

    This is extremely depressing,

  • actually try it now, turned out I already updated the links once upon a time, but they have now changed to https :smiley:

  • Thanks, I'll watch it tonight. Now I have to go to bed.

  • RossHRossH Posts: 5,388

    It's fairly simple to implement as a serial protocol. Catalina's payload loader has a simple implementation of the EEPROM load protocol. See payload.c in the Catalina sources.

    Ross.

  • GenetixGenetix Posts: 1,746

    Eons and forum changes ago Chip had posted the Spin code for the Propeller ROMs.

  • @Genetix said:
    Eons and forum changes ago Chip had posted the Spin code for the Propeller ROMs.

    from the wiki page: https://forums.parallax.com/discussion/101483/propeller-rom-source-code-here

Sign In or Register to comment.