Shop OBEX P1 Docs P2 Docs Learn Events
Prop2 FPGA files!!! - Updated 2 June 2018 - Final Version 32i - Page 56 — Parallax Forums

Prop2 FPGA files!!! - Updated 2 June 2018 - Final Version 32i

15354565859160

Comments

  • evanhevanh Posts: 15,126
    I think so. I think v10a just has the added BeMicro_A9 image.
  • evanhevanh Posts: 15,126
    garryj wrote: »
    Thanks for the suggestion, but no joy. I changed to a different port number and no joy there, either. There's transfer activity indicated on the board and the failure message pops up after the 100% mark.
    Are you sure you're commenting on one problem with both device not found and transferring to end of file?
  • Seairth wrote: »
    I know I'm likely stating the obvious, but are you switching to PGM before turning the board on?
    Yep, the switch was set to PGM. All previous updates have gone without a hitch. I'm currently on v9b and I went through the update procedure using the v9b px and image and got the same behavior and error message, so this is something new.
  • evanh wrote: »
    garryj wrote: »
    Thanks for the suggestion, but no joy. I changed to a different port number and no joy there, either. There's transfer activity indicated on the board and the failure message pops up after the 100% mark.
    Are you sure you're commenting on one problem with both device not found and transferring to end of file?
    Yes, the load looks like it's progressing, both on the board and the PX progress bar. The COM port error pops after the load progress hits 100%.
  • Tubular wrote: »
    garryj wrote: »
    rjo__ wrote: »
    I had a similar problem... try quitting out of PNUT while you are using PX. In my case it wasn't PNUT, but another utility... that while not using COM4 but was running at the time and may not have released COM4 correctly.
    Thanks for the suggestion, but no joy. I changed to a different port number and no joy there, either. There's transfer activity indicated on the board and the failure message pops up after the 100% mark.

    In the short term, I have a BE-Micro A2, but it's been quite a while since I used it, and I've never loaded a P2 image on it. Is it as simple as using PX to load the zip's *A2*.jic file?

    No you need to use the Altera software to load that in, unfortunately. There is a stand alone programmer from Altera - you don't need the whole giant package
    Thanks, that jogged my memory. I'll grab the stand-alone programmer.
  • garryj wrote: »
    I tried updating to P2v10a (Prop 1-2-3 A9 board) and PX complained with a "PX loader not found on COM3" message.
    Doh!

    Looks like it was a not-very-old USB cable. P2v10a looks to be loaded and working. Since it looked like bits were flowing, the stinkin' cable was not very high on my trouble-shooting list :blush:

    Thanks all, for the suggestions!
  • evanhevanh Posts: 15,126
    A happy chippy again. :)
  • Cluso99Cluso99 Posts: 18,066
    Here is the P1 v10a Instruction Summary
    Propeller P16X64A Instructions v10a 17Jun2016
    -------------------------------------------------------------------------------------------------------------------------
    Cond Opcode  CZ I Dest       Source     Instr00 01      10      11        Operand(s)                    Flags
    -------------------------------------------------------------------------------------------------------------------------
    CCCC 00000ff CZ I DDDDDDDDD  SSSSSSSSS  ROR     ROL     SHR     SHL       D,S/#                         CZ CZ CZ CZ 
    CCCC 00001ff CZ I DDDDDDDDD  SSSSSSSSS  RCR     RCL     SAR     SAL       D,S/#                         CZ CZ CZ CZ 
    CCCC 00010ff CZ I DDDDDDDDD  SSSSSSSSS  ADD     ADDX    ADDS    ADDSX     D,S/#                         CZ CZ CZ CZ 
    CCCC 00011ff CZ I DDDDDDDDD  SSSSSSSSS  SUB     SUBX    SUBS    SUBSX     D,S/#                         CZ CZ CZ CZ 
    CCCC 00100ff CZ I DDDDDDDDD  SSSSSSSSS  CMP     CMPX    CMPS    CMPSX     D,S/#                         CZ CZ CZ CZ 
    CCCC 00101ff CZ I DDDDDDDDD  SSSSSSSSS  CMPR    CMPM    SUBR    CMPSUB    D,S/#                         CZ CZ CZ CZ 
    CCCC 00110ff CZ I DDDDDDDDD  SSSSSSSSS  MIN     MAX     MINS    MAXS      D,S/#                         CZ CZ CZ CZ 
    CCCC 00111ff CZ I DDDDDDDDD  SSSSSSSSS  SUMC    SUMNC   SUMZ    SUMNZ     D,S/#                         CZ CZ CZ CZ 
    CCCC 01000ff CZ I DDDDDDDDD  SSSSSSSSS  ISOB    NOTB    CLRB    SETB      D,S/#                         CZ CZ CZ CZ 
    CCCC 01001ff CZ I DDDDDDDDD  SSSSSSSSS  SETBC   SETBNC  SETBZ   SETBNZ    D,S/#                         CZ CZ CZ CZ 
    CCCC 01010ff CZ I DDDDDDDDD  SSSSSSSSS  ANDN    AND     OR      XOR       D,S/#                         CZ CZ CZ CZ 
    CCCC 01011ff CZ I DDDDDDDDD  SSSSSSSSS  MUXC    MUXNC   MUXZ    MUXNZ     D,S/#                         CZ CZ CZ CZ 
    CCCC 01100ff CZ I DDDDDDDDD  SSSSSSSSS  MOV     NOT     ABS     NEG       D,S/#                         CZ CZ CZ CZ 
    CCCC 01101ff CZ I DDDDDDDDD  SSSSSSSSS  NEGC    NEGNC   NEGZ    NEGNZ     D,S/#                         CZ CZ CZ CZ 
    CCCC 0111000 ff I DDDDDDDDD  SSSSSSSSS  ALTI    ALTR    ALTD    ALTS      D,S/#                         -- -- -- -- 
    CCCC 0111001 CZ I DDDDDDDDD  SSSSSSSSS  DECOD                             D,S/#                         CZ          
    CCCC 011101f CZ I DDDDDDDDD  SSSSSSSSS  TOPONE  BOTONE                    D,S/#                         CZ CZ       
    CCCC 011110f CZ I DDDDDDDDD  SSSSSSSSS  INCMOD  DECMOD                    D,S/#                         CZ CZ       
    CCCC 011111f fZ I DDDDDDDDD  SSSSSSSSS  MUL     MULS    SCLU    SCL       D,S/#                         -Z -Z -Z -Z 
    CCCC 1000ffn nn I DDDDDDDDD  SSSSSSSSS  SETNIB  GETNIB  ROLNIB            D,S/#,#n                      -- -- --    
    CCCC 100011f nn I DDDDDDDDD  SSSSSSSSS  SETBYTE GETBYTE                   D,S/#,#n                      -- --       
    CCCC 1001000 nn I DDDDDDDDD  SSSSSSSSS  ROLBYTE                           D,S/#,#n                      --          
    CCCC 1001001 fn I DDDDDDDDD  SSSSSSSSS  SETWORD GETWORD                   D,S/#,#n                      -- --       
    CCCC 1001010 fn I DDDDDDDDD  SSSSSSSSS  ROLWORD                           D,S/#,#n                      --          
    CCCC 1001010 1f I DDDDDDDDD  SSSSSSSSS  SETBYTS MOVBYTS                   D,S/#                         -- --       
    CCCC 1001011 ff I DDDDDDDDD  SSSSSSSSS  SPLITB  MERGEB  SPLITW  MERGEW    D,S/#                         -- -- -- -- 
    CCCC 1001100 ff I DDDDDDDDD  SSSSSSSSS  SEUSSF  SEUSSR  RGBSQZ  RGBEXP    D,S/#                         -- -- -- -- 
    CCCC 1001101 ff I DDDDDDDDD  SSSSSSSSS  REV     SETI    SETD    SETS      D,S/#                         -- -- -- -- 
    CCCC 1001110 ff I DDDDDDDDD  SSSSSSSSS  DJZ     DJNZ    DJS     DJNS      D,S/#rel9                     -- -- -- -- 
    CCCC 1001111 ff I DDDDDDDDD  SSSSSSSSS  TJZ     TJNZ    TJS     TJNS      D,S/#rel9                     -- -- -- -- 
    CCCC 10100ff CZ I DDDDDDDDD  SSSSSSSSS  TESTN   TEST    ANYB    TESTB     D,S/#                         CZ CZ CZ CZ 
    CCCC 1010100 ff I DDDDDDDDD  SSSSSSSSS  ADDCT1  ADDCT2  ADDCT3  WMLONG    D,S/#;D,S/#;D,S/#;D,S/#/PTRx  -- -- -- -- 
    CCCC 1010101 CZ I DDDDDDDDD  SSSSSSSSS  CALLD                             D,S/#rel9                     CZ          
    CCCC 101011f CZ I DDDDDDDDD  SSSSSSSSS  RDPIN   RDLUT                     D,S/#                         CZ CZ       
    CCCC 10110ff CZ I DDDDDDDDD  SSSSSSSSS  RDBYTE  RDWORD  RDLONG            D,S/#/PTRx                    CZ CZ CZ    
    CCCC 1011011 ff I DDDDDDDDD  SSSSSSSSS  ADDPIX  MULPIX  BLNPIX  MIXPIX    D,S/#                         -- -- -- -- 
    CCCC 1011100 xx I DDDDDDDDD  SSSSSSSSS  <empty>                                                         --          
    CCCC 1011101 fL I DDDDDDDDD  SSSSSSSSS  JP      JNP                       D/#,S/#rel9                   -- --       
    CCCC 1011110 fL I DDDDDDDDD  SSSSSSSSS  SETPAE  SETPAN                    D/#,S/#                       -- --       
    CCCC 1011111 fL I DDDDDDDDD  SSSSSSSSS  SETPBE  SETPBN                    D/#,S/#                       -- --       
    CCCC 1100000 fL I DDDDDDDDD  SSSSSSSSS  WRPIN   WXPIN                     D/#,S/#                       -- --       
    CCCC 1100001 fL I DDDDDDDDD  SSSSSSSSS  WYPIN   WRLUT                     D/#,S/#                       -- --       
    CCCC 1100010 fL I DDDDDDDDD  SSSSSSSSS  WRBYTE  WRWORD                    D/#,S/#/PTRx                  -- --       
    CCCC 1100011 fL I DDDDDDDDD  SSSSSSSSS  WRLONG  RDFAST                    D/#,S/#/PTRx;D/#,S/#          -- --       
    CCCC 1100100 fL I DDDDDDDDD  SSSSSSSSS  WRFAST  FBLOCK                    D/#,S/#                       -- --       
    CCCC 1100101 fL I DDDDDDDDD  SSSSSSSSS  XINIT   XZERO                     D/#,S/#                       -- --       
    CCCC 1100110 fL I DDDDDDDDD  SSSSSSSSS  XCONT   REP                       D/#,S/#                       -- --       
    CCCC 1100111 CL I DDDDDDDDD  SSSSSSSSS  COGINIT                           D/#,S/#                       C-          
    CCCC 1101000 fL I DDDDDDDDD  SSSSSSSSS  QMUL    QDIV                      D/#,S/#                       -- --       
    CCCC 1101001 fL I DDDDDDDDD  SSSSSSSSS  QFRAC   QSQRT                     D/#,S/#                       -- --       
    CCCC 1101010 fL I DDDDDDDDD  SSSSSSSSS  QROTATE QVECTOR                   D/#,S/#                       -- --       
    CCCC 1101011 CZ L DDDDDDDDD  0000000ff  CLKSET  COGID   <empty> COGSTOP   D/#                           CZ CZ CZ -- 
    CCCC 1101011 CZ 0 DDDDDDDDD  0000001ff  LOCKNEW LOCKRET LOCKCLR LOCKSET   D;D/#;D/#;D/#                 CZ -- C- C- 
    CCCC 1101011 CZ L DDDDDDDDD  0000010ff  <empty> <empty> <empty> <empty>   D/#                           CZ CZ CZ CZ 
    CCCC 1101011 CZ L DDDDDDDDD  0000011ff  <empty> <empty> QLOG    QEXP      D/#                           CZ CZ -- -- 
    CCCC 1101011 CZ 0 DDDDDDDDD  0000100ff  RFBYTE  RFWORD  RFLONG  WFBYTE    D;D;D;D/#                     CZ CZ CZ -- 
    CCCC 1101011 00 L DDDDDDDDD  0000101ff  WFWORD  WFLONG  SETQ    SETQ2     D/#                           -- -- -- -- 
    CCCC 1101011 CZ 0 DDDDDDDDD  0000110ff  GETQX   GETQY   GETCT   GETRND    D;D;D;{D}                     CZ CZ -- CZ 
    CCCC 1101011 00 L DDDDDDDDD  0000111ff  SETDACS SETXFRQ GETXCOS GETXSIN   D/#;D/#;D;D                   -- -- -- -- 
    CCCC 1101011 00 L DDDDDDDDD  0001000ff  SETEDG  SETRDL  SETWRL  SETHLK    D/#                           -- -- -- -- 
    CCCC 1101011 C0 0 0000000ff  000100100  POLLINT POLLCT1 POLLCT2 POLLCT3                                 C- C- C- C- 
    CCCC 1101011 C0 0 0000001ff  000100100  POLLEDG POLLPAT POLLRDL POLLWRL                                 C- C- C- C- 
    CCCC 1101011 C0 0 0000010ff  000100100  POLLXMT POLLXFI POLLXRO POLLXRL                                 C- C- C- C- 
    CCCC 1101011 C0 0 0000011ff  000100100  POLLFBW POLLHLK POLLATN POLLQMT                                 C- C- C- C- 
    CCCC 1101011 C0 0 0000100ff  000100100  WAITINT WAITCT1 WAITCT2 WAITCT3                                 C- C- C- C- 
    CCCC 1101011 C0 0 0000101ff  000100100  WAITEDG WAITPAT WAITRDL WAITWRL                                 C- C- C- C- 
    CCCC 1101011 C0 0 0000110ff  000100100  WAITXMT WAITXFI WAITXRO WAITXRL                                 C- C- C- C- 
    CCCC 1101011 C0 0 0000111ff  000100100  WAITFBW WAITHLK WAITATN <empty>                                 C- C- C- CZ 
    CCCC 1101011 00 0 0001000ff  000100100  ALLOWI  STALLI  <empty> <empty>                                 -- -- CZ CZ 
    CCCC 1101011 00 L DDDDDDDDD  000100101  SETINT1                           D/#                           --          
    CCCC 1101011 00 L DDDDDDDDD  000100110  SETINT2                           D/#                           --          
    CCCC 1101011 00 L DDDDDDDDD  000100111  SETINT3                           D/#                           --          
    CCCC 1101011 00 L DDDDDDDDD  0001010ff  WAITX   SETCZ   PUSH    POP       D/#;D/#;D/#;D                 -- CZ -- CZ 
    CCCC 1101011 CZ 0 DDDDDDDDD  0001011ff  JMP     CALL    CALLA   CALLB     D                             CZ CZ CZ CZ 
    CCCC 1101011 00 L DDDDDDDDD  0001100ff  JMPREL  RET     RETA    RETB      D/#; ; ; ;                    -- CZ CZ CZ 
    CCCC 1101011 00 0 DDDDDDDDD  0001101ff  GETPTR  GETINT  SETBRK  SETLUT    D;D;D/#;D/#                   -- -- -- -- 
    CCCC 1101011 00 L DDDDDDDDD  0001110ff  SETCY   SETCI   SETCQ   SETCFRQ   D/#                           -- -- -- -- 
    CCCC 1101011 00 L DDDDDDDDD  0001111ff  SETCMOD SETPIX  SETPIV  COGATN    D/#                           -- -- -- -- 
    CCCC 11011ff Rn n nnnnnnnnn  nnnnnnnnn  JMP     CALL    CALLA   CALLB     #abs/#rel                     -- -- -- -- 
    CCCC 1110fww Rn n nnnnnnnnn  nnnnnnnnn  CALLD   LOC                       reg,#abs/#rel                 -- --       
    CCCC 1111fnn nn n nnnnnnnnn  nnnnnnnnn  AUGS    AUGD                      #23bits                       -- --       
    -------------------------------------------------------------------------------------------------------------------------
    
  • Thanks for that instruction summary Ray, I was wondering about the current state!

    Serial bootloader
    BTW, does anyone have a clue about what I need to do for the serial bootloader? I'm sure the info is somewhere but whether the stuff I find is the most current or not is the issue. I want to put together a small PIC + EEPROM to load up an SPI Flash and SD bootloader for testing. Once I can get the SD bootloader to work then that should give everyone something to chew on. I know I could probably just load this bootloader up serially and I might do that initially but the PIC idea is to make my system stand-alone as I want to deploy it in an actual project for some real field tests! I have a few other CV-A9s around here fortunately so I won't be stuck for test units.
  • RaymanRayman Posts: 13,797
    I think I'm going to keep using the ".spin" extension (if I can) so I can keep using the Prop Tool for code editing. Looks like the new PNut is ".spin2" only, but I think I can just change filter to "*.*" and use .spin files...
  • jmgjmg Posts: 15,140
    Serial bootloader
    BTW, does anyone have a clue about what I need to do for the serial bootloader? I'm sure the info is somewhere but whether the stuff I find is the most current or not is the issue.

    I think Chip has to be close to getting SPI boot ROM in beta form ?
    I want to put together a small PIC + EEPROM to load up an SPI Flash and SD bootloader for testing. Once I can get the SD bootloader to work then that should give everyone something to chew on. I know I could probably just load this bootloader up serially and I might do that initially but the PIC idea is to make my system stand-alone as I want to deploy it in an actual project for some real field tests!
    Or, you could use a Silabs part, as I think you can program those via a Prop ?
    Check with Chip on the Boot timelines, as if you can tolerate serial for a while, a prelim BOOT is likely not far off.
    You sound like a good test case for BOOT testing :)
    Or, you could code a SPI boot and get Chip to do a build with that in ROM ?
  • SeairthSeairth Posts: 2,474
    edited 2016-06-18 21:14
    Rayman wrote: »
    I think I'm going to keep using the ".spin" extension (if I can) so I can keep using the Prop Tool for code editing. Looks like the new PNut is ".spin2" only, but I think I can just change filter to "*.*" and use .spin files...

    Or use the VSCode extension, which will give you syntax coloring (for now).
  • RaymanRayman Posts: 13,797
    VSCode looks pretty good. I'm just used to Prop Tool, been using it for years.
    If I weren't so entrenched, I'd definitely use your extension and VSCode.
  • Is there a version or files for Cyclone V GX Starter Kit?
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2016-06-20 04:24
    I'm editing my Spin files in Context under WINXP in VirtualBox at present due to this Wine bug glitching the reset line but I have execute keys (using F11) in Context that allow me to callup PNut with the file name but does PNut have any command line parameters available to get it to F11 then exit?
  • cgraceycgracey Posts: 14,133
    I'm editing my Spin files in Context under WINXP in VirtualBox at present due to this Wine bug glitching the reset line but I have execute keys (using F11) in Context that allow me to callup PNut with the file name but does PNut have any command line parameters available to get it to F11 then exit?

    I can add that.
  • cgracey wrote: »
    I'm editing my Spin files in Context under WINXP in VirtualBox at present due to this Wine bug glitching the reset line but I have execute keys (using F11) in Context that allow me to callup PNut with the file name but does PNut have any command line parameters available to get it to F11 then exit?

    I can add that.

    That would be so George Jetson, all I would have to do is press one button all the time. Yay!

  • evanhevanh Posts: 15,126
    Chip,
    Have you had a chance to examine why PNut might be tripping the DTR line so much under Wine? See http://forums.parallax.com/discussion/comment/1380448/#Comment_1380448
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2016-06-21 10:42
    Taking some time off to wire up one of the CV-A9 boards to a Vector Electronics double-side matrix board using pin headers to mount it upside down. Then I can attach all the other parts I want to test including the Serial Flash and IoT5500 and RS485 and many other parts, perhaps even a module for the VGA DACs. Main thing is I want to double-check the basic Serial Flash bootload process then use that to check the SD bootloader.

    @Chip: did you get the command line F11 done for PNut? My George Jetson finger is getting mangled and could do with a rest :)
    geo-jetson3b_mam.jpg
  • jac_goudsmitjac_goudsmit Posts: 418
    edited 2016-06-21 23:19
    [Edit: Never mind]
  • I looked into back-ordering the BeMIcroCVA9 since it does no good to just keep checking in the hope that somebody does order it. I've been given a lead time of 17-18 weeks which brings us to the end of October. This is a very nice board and I will be doing a controller motherboard for this including a footprint for whenever the P2 chip becomes available. So please indicate your interest as I can order more now and even though it's a bit of a wait it will come around soon enough and certainly a lot sooner than P2 itself. Besides, the motherboard I am doing for it will be worth it too! This thing is already rockin'!

  • I looked into back-ordering the BeMIcroCVA9 since it does no good to just keep checking in the hope that somebody does order it. I've been given a lead time of 17-18 weeks which brings us to the end of October. This is a very nice board and I will be doing a controller motherboard for this including a footprint for whenever the P2 chip becomes available. So please indicate your interest as I can order more now and even though it's a bit of a wait it will come around soon enough and certainly a lot sooner than P2 itself. Besides, the motherboard I am doing for it will be worth it too! This thing is already rockin'!

    I would like two more CV-A9s and a motherboard or two if they are gonna be made available as well.
  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2016-06-22 08:30
    D.P wrote: »
    I looked into back-ordering the BeMIcroCVA9 since it does no good to just keep checking in the hope that somebody does order it. I've been given a lead time of 17-18 weeks which brings us to the end of October. This is a very nice board and I will be doing a controller motherboard for this including a footprint for whenever the P2 chip becomes available. So please indicate your interest as I can order more now and even though it's a bit of a wait it will come around soon enough and certainly a lot sooner than P2 itself. Besides, the motherboard I am doing for it will be worth it too! This thing is already rockin'!

    I would like two more CV-A9s and a motherboard or two if they are gonna be made available as well.

    Okay, I might move this to another thread though.
  • Cluso99Cluso99 Posts: 18,066
    Chip,
    Here are a couple of instruction opcode swaps that may make the decoding more efficient, and the compilers simpler, and instruction set look more regular.
    These just make the first set of instruction opcodes 0xxxxxx identically formatted.

    You might not want to change anything. If you are interested, there are a few changes in the 1xxxxxx that may make sense too.
    BTW I posted the whole instruction set summary a few posts back.
    -------------------------------------------------------------------------------------------------------------------------
    Cond Opcode  CZ I Dest       Source     Instr00 01      10      11        Operand(s)                    Flags
    -------------------------------------------------------------------------------------------------------------------------
    CCCC 0111000 ff I DDDDDDDDD  SSSSSSSSS  ALTI    ALTR    ALTD    ALTS      D,S/#                         -- -- -- -- 
    CCCC 0111001 CZ I DDDDDDDDD  SSSSSSSSS  DECOD                             D,S/#                         CZ          
    CCCC 011101f CZ I DDDDDDDDD  SSSSSSSSS  TOPONE  BOTONE                    D,S/#                         CZ CZ       
    CCCC 011110f CZ I DDDDDDDDD  SSSSSSSSS  INCMOD  DECMOD                    D,S/#                         CZ CZ       
    CCCC 011111f fZ I DDDDDDDDD  SSSSSSSSS  MUL     MULS    SCLU    SCL       D,S/#                         -Z -Z -Z -Z 
    replace with
    CCCC 01110ff CZ I DDDDDDDDD  SSSSSSSSS  TOPONE  BOTONE  INCMOD  DECMOD    D,S/#                         CZ CZ CZ CZ 
    CCCC 01111ff CZ I DDDDDDDDD  SSSSSSSSS  TESTN   TEST    ANYB    TESTB     D,S/#                         CZ CZ CZ CZ 
    -------------------------------------------------------------------------------------------------------------------------
    CCCC 10100ff CZ I DDDDDDDDD  SSSSSSSSS  TESTN   TEST    ANYB    TESTB     D,S/#                         CZ CZ CZ CZ 
    replace with
    CCCC 1010000 ff I DDDDDDDDD  SSSSSSSSS  ALTI    ALTR    ALTD    ALTS      D,S/#                         -- -- -- -- 
    CCCC 1010001 CZ I DDDDDDDDD  SSSSSSSSS  DECOD                             D,S/#                         CZ          
    CCCC 101001f fZ I DDDDDDDDD  SSSSSSSSS  MUL     MULS    SCLU    SCL       D,S/#                         -Z -Z -Z -Z 
    -------------------------------------------------------------------------------------------------------------------------
    
  • Cluso99Cluso99 Posts: 18,066
    edited 2016-06-24 05:04
    I have been looking at the smart pins for async.
    WRPIN sets the mode, WXPIN sets the baud/length.
    WYPIN writes the data byte/word/long, RDPIN reads the data byte/word/long.

    This seems wrong to me. I would think WRPIN & RDPIN should write/read the data, while WXPIN & WYPIN should set the mode & baud/length.
    Have I got this the correct way around???
  • jmgjmg Posts: 15,140
    Cluso99 wrote: »
    I would think WRPIN & RDPIN should write/read the data, while WXPIN & WYPIN should set the mode & baud/length.
    That would seem more natural. If it is the other way, I wonder how much logic is needed to swap ?

  • Cluso99 wrote: »
    I have been looking at the smart pins for async.
    WRPIN sets the mode, WXPIN sets the baud/length.
    WYPIN writes the data byte/word/long, RDPIN reads the data byte/word/long.

    This seems wrong to me. I would think WRPIN & RDPIN should write/read the data, while WXPIN & WYPIN should set the mode & baud/length.
    Have I got this the correct way around???
    BTW
    WRPIN used to be PINSETM
    and RDPIN used to be PINGETZ

  • evanhevanh Posts: 15,126
    edited 2016-06-24 06:29
    Yeah, it's a side effect of the old register labelling. Chip appears to have kept the X and Y references while ditching the M and Z references. A small name shuffle presumably will fix it.
  • Cluso99Cluso99 Posts: 18,066
    I have struck a problem getting smart serial to work.
    Send works fine, but receive doesn't seem to be receiving anything. I am using PST connected to the propplug.
    Can anyone see my bug?

    BTW I have discovered that if you don't transmit a character, then the instruction
    .send testb inb, #tx_pin wc 'wait for buffer empty on tx pin
    doesn't return buffer empty. Can anyone verify please?
    '' 115200 baud 8-bit serial demo
    '' RR20160624	000a	modify Chip's 10Mbaud program
    ''		000c
    
    CON
      tx_pin	= 62
      rx_pin	= 63
      
    DAT
    		orgh	0
    		org     0
    
    begin		wrpin	pm_tx, #tx_pin		'set asynchronous tx mode in smart pin tx
    		wxpin	bitper, #tx_pin		'set tx bit period
    		setb	dirb, #tx_pin		'enable smart pin tx
    
    		wrpin	pm_rx, #rx_pin		'set asynchronous rx mode in smart pin rx
    		wxpin	bitper, #rx_pin		'set rx bit period
    		setb	dirb, #rx_pin		'enable smart pin rx
    
    		jmp	#.go
    
    .send		testb	inb, #tx_pin	wc	'wait for buffer empty on tx pin
    	if_nc	jmp	#.recv                  ' ping-pong tx/rx
    		akpin	#tx_pin			'acknowledge tx pin
    		waitx	delay			' 1s delay before sending!!!
    .go		wypin	txdata, #tx_pin		'send next byte to tx pin
    ''		incmod	txdata, #$7E		'increment byte, constrain to $FF for faster wypin
    ''		cmp	txdata, #0	wz
    ''	if_z	mov	txdata, #" "		' $20..$7E
    
    .recv		testb	inb, #rx_pin	wc	'wait for smart pin rx to signal rx data received
    	if_nc	jmp	#.send                  ' ping-pong tx/rx
    		akpin	#rx_pin			'acknowledge rx pin
    		rdpin	rxdata, #rx_pin		'get data from rx pin
    		mov	txdata, #rxdata		' do something with rxdata
    		jmp	#.send			'loop
    
    
    pm_tx		long	%0000_0000_000_0000000000000_01_11110_0	'async tx mode, output enabled for smart output
    pm_rx		long	%0000_0000_000_0000000000000_01_11111_0	'async rx mode, output enabled for smart input
    
    'bitper		long	8<<16 + 7		'number of clocks per bit period, 3..65536, 8-bit words 10Mbaud
    bitper		long	695<<16 + 7		' 115200 baud, 8 bits
    txdata		long	"^"
    rxdata		long	0
    delay		long	80_000_000
    
  • Ray
    Remove the '#' in the line
    		mov	txdata, #rxdata		' do something with rxdata
    
Sign In or Register to comment.