TAQOZ - Tachyon Forth for the P2 BOOT ROM

13468914

Comments

  • cgracey wrote: »
    Peter and Cluso got their TAQOZ and SD Boot and Monitor code in today. We got it all wrapped up and tested. Looks good.

    The ROM code is off to OnSemi now.

    Thanks, Peter and Cluso!
    Congratulations! Will we be getting FPGA images with the ROM sometime soon?

  • cgracey wrote: »
    Peter and Cluso got their TAQOZ and SD Boot and Monitor code in today. We got it all wrapped up and tested. Looks good.

    The ROM code is off to OnSemi now.

    Thanks, Peter and Cluso!

    +100
  • cgracey wrote: »
    Peter and Cluso got their TAQOZ and SD Boot and Monitor code in today. We got it all wrapped up and tested. Looks good.

    The ROM code is off to OnSemi now.

    Thanks, Peter and Cluso!

    Wow what a milestone. Well done, guys.

    Is that 'it' for OnSemi work for now, Chip?
  • Now that On Semi has the ROM, how long until you get test chips?
  • Peter JakackiPeter Jakacki Posts: 7,818
    edited May 16 Vote Up0Vote Down
    It seems that the RCFAST mode is running at 20MHz on the FPGA since if I output a 40MHz frequency (assumes 80MHz clock instead of RCFAST) that I get exactly 10MHz.
    0 PIN 40 MHZ
    
    Since my terminal was running at 115200 baud I did an $FF HUBSET to select the 80MHz clock and then changed my baud rate to 421600 and it works. Doing a ^Z in TAQOZ to cold start again maintains the baudrate and clock settings. Good!
    But even running from RCFAST at 20MHz the ROM will autobaud to a 3Mbaud prompt and then in TAQOZ I can paste a file in at 3Mbaud.

    Playing with smartpins a bit further in RCFAST I can generate a burst of 10 cycles of 5MHz precisely.
    TAQOZ# 2 2 HILO 10 PULSES  ok
    

    Here is the current word list that is built into ROM which is compiled into the latest FPGA image, so there is no need to use PNut to load anything, it works from power-up after an autobaud sequence of "> " then ESC.
    ----------------------------------------------------------------
      Parallax P2  .:.:--TAQOZ--:.:.  V1.0         
    ----------------------------------------------------------------
    TAQOZ# WORDS 
    DUP OVER SWAP ROT -ROT DROP 3RD 4TH 2DROP 3DROP NIP 2SWAP 2DUP ?DUP AND 
    ANDN OR XOR ZEROX ROL ROR >> << SAR 2/ 2* 4/ 4* 8<< 16>> 8>> 9<< 9>> REV 
    |< >| >N >B >9 BITS NOT = <> 0= 0<> 0< < U< > U> <= => WITHIN DUPC@ C@ 
    W@ @ C+! C! C@++ W+! W! +! ! BIT! SET CLR SET? 1+ 1- 2+ 2- 4+ + - UM* * 
    W* / U/ U// // */ UM// C++ C-- W++ W-- ++ -- RND GETRND SQRT ~ ~~ W~ W~~ 
    C~ C~~ L>S >W L>W W>B W>L B>W B>L MINS MAXS MIN MAX ABS -NEGATE ?NEGATE 
    NEGATE ON TRUE -1 FALSE OFF GOTO IF ELSE THEN BEGIN UNTIL AGAIN WHILE REPEAT 
    SWITCH CASE@ CASE= CASE> BREAK CASE ADO DO LOOP +LOOP FOR NEXT ?NEXT I 
    J LEAVE IC@ I+ BOUNDS H L T F R HIGH LOW FLOAT PIN@ WRPIN WXPIN WYPIN RDPIN 
    RQPIN AKPIN WAITPIN WRACK PIN @PIN ns PW PULSE PULSES HILO DUTY NCO HZ 
    KHZ MHZ MUTE BLINK PWM SAW BIT BAUD TXD RXD TXDAT WAITX WAITCNT REBOOT 
    RESET 0EXIT EXIT NOP CALL JUMP >R R> >L L> !SP DEPTH COG@ COG! LUT@ LUT! 
    COGID COGINIT COGSTOP COGATN POLLATN SETEDG POLLEDG KEY KEY! CON NONE COM 
    CONKEY CONEMIT EMIT EMITS CRLF CR CLS DOT SPACE SPACES RAM DUMP: DUMP DUMPW 
    DUMPL DUMPA DUMPAW QD DEBUG lsio COG LUT KB MB M . PRINT .AS .AS" .DECL 
    .DEC4 .DEC2 HOLD #> <# # #S <D> U. .DEC .BIN .B .BYTE .W .WORD .L .LONG 
    .ADDR PRINT$ LEN$ " ." CTYPE ?EXIT DATA? ERASE FILL CMOVE <CMOVE s ms us 
    CNT@ LAP LAP@ .LAP .ms HEX DEC BIN .S WORDS @WORDS GET$ SEARCH $># @DATA 
    HERE @HERE @CODES LOOKIN LOOKUP uemit ukey char delim names TASK REG @WORD 
    SPIN | || , [W] ["] NULL$ $! $= FORGET CREATE$ CREATE VAR pub pri pre module 
    : ; [ ' := == ==! ALIGN DATCON ALLOT org bytes words longs byte word long 
    res [C] GRAB NFA' CPA CFA \ --- ( { } IFNDEF IFDEF IDLE .VER TAQOZ TERM 
    AUTO SPIRD SPIRDL SPIWB SPIWR SPICE SPIWC SPIWW SPIWS SPIPINS SPIRX SPITXE 
    SPITX CLKIN CLKOUT CLOCK WSLED WAIT CLKDIV RCSLOW HUBSET WP WE CLKHZ CLKMHZ 
    BUFFERS ROM IRQVEC PTRA PTRB DIRA DIRB OUTA OUTB INA INB ERROR SFPINS SF? 
    SFWE SFINS SFWD SFRDS SFSID SFJID SFER4 SFER32 SFER64 SFERASE SFWRPG BACKUP 
    RESTORE SFRDS SFWRS SFC@ SFW@ SF@ SF .SF SDBUF sdpins !SD SD? CMD ACMD 
    csd cid SDWR SDRDS FLUSH SECTOR SDRD SDRDS SDADR SD@ SD! SDC@ SDC! SDW@ 
    SD END  438 ok
    TAQOZ# lsio 
    PINS 
    P:00000000001111111111222222222233333333334444444444555555555566
    P:01234567890123456789012345678901234567890123456789012345678901
    =:d~~~~d~~d~~~~~~d~~~~~~~~~~~~~~~~~~~~hhhhhh~~d~d~d~dddddd~~hhdd ok
    TAQOZ#
    

    Tachyon Forth - compact, fast, forthwright and interactive
    useforthlogo-s.png
    --->CLICK THE LOGO for more links<---
    Latest binary V5.4 includes EASYFILE +++++ Tachyon Forth News Blog
    P2 SHORTFORM DATASHEET +++++ TAQOZ documentation
    Brisbane, Australia
  • cgraceycgracey Posts: 10,062
    edited May 16 Vote Up0Vote Down
    Tubular wrote: »
    cgracey wrote: »
    Peter and Cluso got their TAQOZ and SD Boot and Monitor code in today. We got it all wrapped up and tested. Looks good.

    The ROM code is off to OnSemi now.

    Thanks, Peter and Cluso!

    Wow what a milestone. Well done, guys.

    Is that 'it' for OnSemi work for now, Chip?

    The last thing we need to do is make a test bench for the final synthesized (actual gate implementation) Verilog. This Verilog contains all the scan-chain and built-in-self-test circuitry which will be 'off' by driving the TES (was TESn) input low, making the chip behave as we designed (not test mode). We are going to be doing that over the next week.

    We should have prototypes back in 16 weeks from now, assuming no restarts due to Verilog issues in the next two weeks. To push the current Verilog through place-and-route and any timing fixes should take two weeks. Then, the masks can be made. Fourteen weeks after that, we should have prototypes.
  • So your saying 4th of July prototypes ;-)
    There's a celebration !!!!

    Jason
  • thej wrote: »
    So your saying 4th of July prototypes ;-)
    There's a celebration !!!!

    Jason
    16 weeks sounds more like September to me.

  • DOH!!! Can't count today.
    Clearly a coffee deficiency :-(
  • Peter JakackiPeter Jakacki Posts: 7,818
    edited May 16 Vote Up0Vote Down
    thej wrote: »
    DOH!!! Can't count today.
    Clearly a coffee deficiency :-(

    Maybe, but more likely it is a P2 deficiency :wink:

    Does anyone use Putty? Chip was testing TAQOZ using PuTTy but found that characters or CRLFs were being dropped or something. I did a quick google and found many instances of PuTTy dropping characters on serial. I just use minicom on Linux or TeraTerm on Windows and they work fine although TeraTerm/Windows occasionally looks like it drops characters on long listings. Do we need pacing on CRLFs for these terminals that can't keep up?

    btw, minicom never seems to drop anything, even at 3Mbaud.

    Tachyon Forth - compact, fast, forthwright and interactive
    useforthlogo-s.png
    --->CLICK THE LOGO for more links<---
    Latest binary V5.4 includes EASYFILE +++++ Tachyon Forth News Blog
    P2 SHORTFORM DATASHEET +++++ TAQOZ documentation
    Brisbane, Australia
  • thej wrote: »
    DOH!!! Can't count today.
    Clearly a coffee deficiency :-(

    Maybe, but more likely it is a P2 deficiency :wink:

    Does anyone use Putty? Chip was testing TAQOZ using PuTTy but found that characters or CRLFs were being dropped or something. I did a quick google and found many instances of PuTTy dropping characters on serial. I just use minicom on Linux or TeraTerm on Windows and they work fine although TeraTerm/Windows occasionally looks like it drops characters on long listings. Do we need pacing on CRLFs for these terminals that can't keep up?
    I've used Putty quite a bit and never had any dropped character problems. What baud rate? I typically only use 115200. Maybe it has problems at higher rates?

  • David, are you able to test it with TAQOZ? I don't have any WIN10 machines to test this on but I will check it on a WIN7 machine. Funny thing is I use VirtualBox to run any Windows programs and TeraTerm works fine at 921600 max in this setup.

    I'm not sure what baud rate Chip was using.

    Tachyon Forth - compact, fast, forthwright and interactive
    useforthlogo-s.png
    --->CLICK THE LOGO for more links<---
    Latest binary V5.4 includes EASYFILE +++++ Tachyon Forth News Blog
    P2 SHORTFORM DATASHEET +++++ TAQOZ documentation
    Brisbane, Australia
  • Cluso99Cluso99 Posts: 14,104
    edited May 16 Vote Up0Vote Down
    I use W10 and PST.

    At 3MB I was seeing dropped character blocks on large dumps. On small ones, things like the first part of TAQOZ version string "cold boot" up to and including the first line of ---.

    IMHO TAQOZ output too much version info including blank lines. If you have something else on screen, it scrolls a lot of it off. I'd prefer a simple one line message to confirm you're in TAQOZ, and then the prompt on the next line. That's why I stripped the Monitor down.

    BTW I love the simple way to flash some pins with TAQOZ. Lots of nice things can be done with one liners in TAQOZ.
    My Prop boards: P8XBlade2, RamBlade, CpuBlade, TriBlade
    Prop OS (also see Sphinx, PropDos, PropCmd, Spinix)
    Website: www.clusos.com
    Prop Tools (Index) , Emulators (Index) , ZiCog (Z80)
  • Cluso99 wrote: »
    I use W10 and PST.

    At 3MB I was seeing dropped character blocks on large dumps. On small ones, things like the first part of TAQOZ version string "cold boot" up to and including the first line of ---.

    IMHO TAQOZ output too much version info including blank lines. If you have something else on screen, it scrolls a lot of it off. I'd prefer a simple one line message to confirm you're in TAQOZ, and then the prompt on the next line. That's why I stripped the Monitor down.

    BTW I love the simple way to flash some pins with TAQOZ. Lots of nice things can be done with one liners in TAQOZ.

    Is it simply because you have "add LF" or something selected?

    Here's my screen output and there are no "extra lines" in it. btw, I'm making an LED blink for 50ms every second then dump hub ROM as longs and then a quick stack check.
    ----------------------------------------------------------------
      Parallax P2  .:.:--TAQOZ--:.:.  V1.0         
    ----------------------------------------------------------------
    TAQOZ# 50 1000 10000 PWM  ok
    TAQOZ# $FC000 $40 DUMPL 
    0F.C000: FF80.0800 FC0C.003F F606.B632 FCDC.041F    ....?...2.......
    0F.C010: FD74.7E40 F0A6.B801 F426.B81F FD62.B800    @~t.......&...b.
    0F.C020: FB6E.B7FA FC0C.003F FD64.B228 FF00.07E0    ..n.?...(.d.....
    0F.C030: FB06.013C FD65.5829 FF00.07E1 FB04.20A4    <...)Xe...... .. ok
    TAQOZ# 12 34 56 .S 
     DATA STACK (3)
    1   $0000.0038   56
    2   $0000.0022   34
    3   $0000.000C   12 ok
    TAQOZ#
    

    Could you paste what your terminal is showing? (text or screenshot).



    Tachyon Forth - compact, fast, forthwright and interactive
    useforthlogo-s.png
    --->CLICK THE LOGO for more links<---
    Latest binary V5.4 includes EASYFILE +++++ Tachyon Forth News Blog
    P2 SHORTFORM DATASHEET +++++ TAQOZ documentation
    Brisbane, Australia
  • David, are you able to test it with TAQOZ? I don't have any WIN10 machines to test this on but I will check it on a WIN7 machine. Funny thing is I use VirtualBox to run any Windows programs and TeraTerm works fine at 921600 max in this setup.

    I'm not sure what baud rate Chip was using.
    Is there an FPGA image with the new ROM available for the Prop123-A9 board?

  • In regards to extra lines or missing characters, see if you can see any in this boot-up cold start test at 3Mbaud and dumping 64KB of memory.

    This is part of it since the forum says it is too long but click this link for the full text file.
    TAQOZ#  Cold start
    
    ----------------------------------------------------------------
      Parallax P2  .:.:--TAQOZ--:.:.  V1.0         
    ----------------------------------------------------------------
    TAQOZ# 0 64 KB DUMPAW 
    00.0000: ................0 64 KB DUMPAW.............>...?456789:;<=............................................. !"#$%&'()*+,-./0123.....
    00.0080: ................................................................................................................................
    00.0100: 0 1000 20000. PWM.50 1000 4000 PWM.50 1000 5000 PWM.50 1000 8000 PWM.50 1000 10000 PWM..F CRLF DUP .L SPACE DUP C@ .BYTE SPACE D
    00.0180: UP FSC@ .BYTE EXIT THEN 1+ AGAIN..S.BEGIN DUP C@ OVER FSC@ <> IF CRLF DUP .L SPACE DUP C@ .BYTE SPACE DUP FSC@ .BYTE EXIT THEN 1
    00.0200: + AGAIN......: ND BEGIN DUP C@ OVER FSC@ <> IF CRLF DUP .L SPACE DUP C@ .BYTE SPACE DUP FSC@ .BYTE 1+ EXIT THEN 1+ AGAIN ;...S.$
    00.0280: FC000 ND....S....$FC000 .ND.........................................................$..$FC000 $4000 DUMPAW..$FC000 $4000 FS DUMP
    00.0300: AW....LS.ls.1 MB mk ..FOPEN ROM_1..............FILE..FOPEN ROM_135.6X.OBJ...$FC000 $4000 ADO I C@ I FSC! LOOP FLUSH........+ SET
    00.0380: ? AND EMIT ;....--- List a single directory entry in FTP compatible format..pri (LIST) ( <index> )..---.dummy permissions listin
    00.0400: g    TO DO !!!...." -rwxrwxrwx 1 502     500"...I .FSIZE SPACE @FDATE I+ W@ .FDATE..---.most systems expect either the time or t
    00.0480: he year if it is older than 6 months...I @FTIME + W@ .FTIME..---.Print the file name at the current loop index I..\ pri .FNAME (
    00.0500:  --- )..---.skip invalid index/entry...IC@ $20 > IF '[' .[]? I .F83 ']' .[]? THEN...CRLF...;......--- used by FTP....pub LIST   
    00.0580:      ' (LIST) .DIR1 ;....--- set list method....--- list the directory..--- ls -l in long format..--- ls -f list open files....p
    00.0600: re ls..     delim 1+ C@ $20 =..     IF..       GET$ 1+ C@ SWITCH..       'l' CASE CRLF LIST BREAK..       'f' CASE FILE# 4 0 DO 
    00.0680: CRLF I .AS" #|# " I FILE @DIRBUF .DIR LOOP FILE BREAK..     THEN..     lscnt C~ ' (ls) (DIR)..    ;........{ HELP QV ( <filename
    00.0700: > -- )..Quick view of file header in ASCII dump format..QV<cr> will display current file if opened..}..pre QV  delim 1+ C@ $20 =
    00.0780:  IF GET$ DUPC@ IF FOPEN$ THEN DROP THEN FSECT@ 0EXIT 0 $400 FS DUMPA ;....{..--- backup memory into P2BOOT.IMG for the size spec
    00.0800: ified in k and setup sector 0..--- takes around 7 seconds on CV-A9 at 80MHz for 1MB image ~= 3ms/blk or 0.5sec for 64k..pub SAVE
    00.0880:  ( kbytes -- )......--- size in kilobytes where 128 = 128k..." P2BOOT.IMG" FOPEN$.....--- try to open default boot image but exi
    00.0900: t if failed...IF...  1 MAX 1024 MIN 10 <<.....--- limit between 1k and 1M and shift up kbytes to bytes...  FSECT@ 0 3RD......---
    00.0980:  use raw file's starting sector from start for size...    ADO I OVER SDWR DROP 1+ SPIN BLKSIZ +LOOP DROP.--- write the image wit
    00.0A00: h a little spinning progress symbol | / - \...  @DIRBUF 0 RDSDA $20 CMOVE....--- make a copy of the directory entry for referenc
    00.0A80: e and detection in sector 0...  FSECT@ $20 SD!                      ...--- Setup a pointer to the raw file starting sector...  D
    00.0B00: UP $24 SD!......--- write the file size we are using...  diradr @FILE @ $28 SD!.....--- save 64GB encoded pointer to the directo
    00.0B80: ry entry..\.  TIME@ $30 SD!......--- time and date stamp..\.  DATE@ $34 SD!...  TRUE FLUSH                                      
    00.0C00:     .--- write the sector to the card...  SWAP .DECL ."  bytes written"..--- Confirmation...THEN...DROP.......--- discard size o
    00.0C80: r wrsect flag...;..}........pub 50MHZ.$9F HUBSET ;..pub 45.4MHZ.$8F HUBSET ;..pub 62.5MHZ.$C7 HUBSET ;....{..pub lsio...CRLF ." 
    00.0D00: P:" 62 0 DO I 10 / . LOOP...CRLF ." P:" 62 0 DO I 10 // . LOOP...CRLF ." =:".. .62 0 DO... I LOW 200 WAIT I FLOAT 200 WAIT I PIN
    00.0D80: @ 1 AND 2* ( 1 = pullup ).. . I HIGH 200 WAIT I FLOAT 200 WAIT I PIN@ 1 AND ( 0 = pulldown) OR... " d~ch" + C@ EMIT...LOOP ;....
    00.0E00: }..{..11 h..10 c..01 ~..00 d....> Prop_Chk 0 0 0 0....}....\ pub MAP ( src cnt -- ).ADO I $F00 AND 0= IF CRLF I .LONG SPACE THEN
    00.0E80:   0 I 256 ADO I C@ IF 1+ THEN LOOP $FF MIN .BYTE SPACE 256 +LOOP ;......pub HUBMAP ( -- )...0 $10.0000 ADO 0 I 4096 ADO I C@ + L
    00.0F00: OOP IF  I $F00 AND 0= IF CRLF I .LONG SPACE THEN...0 I 256 ADO I C@ IF 1+ THEN LOOP $FF MIN ?DUP IF .BYTE ELSE ." .." THEN SPACE
    00.0F80:  256 ELSE 4096 THEN +LOOP...;....{..: fibo ( n -- f )  0 1  ROT FOR BOUNDS NEXT DROP  ;....47 6 DO CRLF ." fibo(" I . ." ) = " I
    00.1000: ..@. ...a.a.irtual File System 180419-0000 .a.N.....N.=;:<N.)$(9N.)$(8N.....N.....N.....M.....M.....M.....M.....M.....M.....M...
    00.1080: ..M.....M.....M.....N.....N.....N.....N.....N.....N.........o.....q.....r.n.a.@...g.a.q.>.L...q...........>.....a.>. Nt.........
    00.1100: ..q.....c.a...f.@.a.q.|...L.......g.........g.v.....g.......q.......a...7...g...a.......6.....a.............p...........j.......
    00.1180: ....d...........a...........a.............................g.a.|.T.......v..............._.......v..............._......._...>...
    00.1200: ....<....@).F.....L.........n.o.%.)...'..._...:...\...q.d...............X.............^...a.L...X.|...t...................@.....
    00.1280: ........|.........g.d...a.........................g.R...................q.j...a.M.....R.................a.................g...X.
    00.1300: a.q.........g.a.....q.......{.....q.....g.6.........A.....R.f.....q.p.........a.~.{.......f.....6.......{...q...g.R...%...f.....
    00.1380: R.g.........q.p...............a...T.........a.....a.....a.....a.....a.....a.Z.......a.M.....M.........q.>.....q.......>.....q...
    00.1400: ....>.....q.....>...........>.....a.........a...&.a.....a.M.....:.......a.M.C...M.....M.....M.....M.....M.>...M.?...M.C...J...a.
    00.1480: ....h.a...,.a.....a.....a.<..@..a...n...a.$.z.....@...z.......a.N.41..N..8......a...z...a.@.....J.Z.......>.......z...$.z.....z.
    00.1500: ....,.z...........@...>.........>.........>.....a.C.z.....F.a.G.z.....F.a.X.....[.H...].H.F.a.....Mounted ..@...>.X.........-.H.
    00.1580: 2.J...z.....F.R.z.....F. .z...R.<.@B........MB (..........kB/cluster) ..a.:.t.t.....a...\.$.P.T.........>.U.........:.@.....^...
    00.1600: 6...t...#... *MBR Format Error* ..5...*Card Error* .a......... *No Card inserted!* .,.g.t.@.t...6.........a.g.a.4.....C:..l.a.:.
    00.1680: ....D:..l.a.@.....E:..l.a.F.....F:..l.a.M.G...M...............a..... .........X...t...q.....{.......t...t.....{...{...g.......q.
    00.1700: T.p.........{.....f...g...a.q.......{.........,.z...........a.......b...a.M.....6.J.....X.P...;...q.....n.......q.........v.....
    00.1780: '.q..... .q.>. ...J.....J.@.x.....t.........{...{...c...c.....n.........a. ...c.g.f...g...a...>....... #### ..a...........JanFeb
    00.1800: MarAprMayJunJulAugSepOctNovDec........a.q............. #`#  ..a.q.....d...{.....?....... ##:## .a.........a.>.......a.\.&...a...
    00.1880: T...v.........a.v...l...~...,.e.a.....a.....a.....a.....a.....a.Z.......a.?.a.>.....,.g.a.4.q...l.{...a.M.....$.....q...........
    00.1900: ..X...$.B.a.p._.v.........4.l.R.......g.O...4...4.l.R.........F.....B...4...a.g.N.....v.~.P.g.a.v...>.......q...a.......<.\.&.@.
    00.1980: ..X.>. ...a.V.&...>...\.&...$.@...@...v.a.r......./.......q.T.......g...!...q...d...P.q.....a.g...?.......p........opened at ...
    00.1A00: F..... not found .a....._.v...........>.......a.$............._...a.....v._...X...q...q.............q.........H...S.f.a.M.......
    00.1A80: ../.......x.X...q.......>.....,...x.d.v.n...a.g.a./.H.x...a...rhsvda......t.........H.....{...{...%.f.a.......F.q.>..',.....a.a.
    00.1B00: q...............a.........q...F.q.........F.q.......b.q.......q.(...q.......@...a.g...*CLOSED*..a...a.>...6.....>.>.b.......r.n.
    00.1B80: ....................R.................$.....?.......b. .....'...a.M.........................,.......P...........b...*.a.......,.
    00.1C00: ..H.a...-rwxrwxrwx 1 502     500......F.......(.........@... .....[.......].....a.>...r.a.l..... ...........t.l.~.....R.a.F.~...
    00.1C80: ..............#|# ......>.......a...X.>...j.a.l..... .............g.v._...>.......a.....a.....a.....a...<...........>...........
    00.1D00: ......>...............F.......................p.....=.......F...G.>.....a.q...t.........q...F.q.....F.q.......a...K.a.a.a. ...a.
    00.1D80: a.a.a.a.....a.a.a...............................................................................................................
    00.1E00: ................................................................................................................................
    00.1E80: ................................................................................................................................
    00.1F00: ................................................................................................................................
    00.1F80: ................................................................................................................................
    

    Tachyon Forth - compact, fast, forthwright and interactive
    useforthlogo-s.png
    --->CLICK THE LOGO for more links<---
    Latest binary V5.4 includes EASYFILE +++++ Tachyon Forth News Blog
    P2 SHORTFORM DATASHEET +++++ TAQOZ documentation
    Brisbane, Australia
  • jmgjmg Posts: 12,355
    Cluso99 wrote: »
    At 3MB I was seeing dropped character blocks on large dumps. On small ones, things like the first part of TAQOZ version string "cold boot" up to and including the first line of ---.
    ...
    In regards to extra lines or missing characters, see if you can see any in this boot-up cold start test at 3Mbaud and dumping 64KB of memory.

    What serial bridge device is being used here ?
    I've found the FT2232H gives the best high speed UART performance, then FT232H, then Exar, and then SiLabs/FTDI get the wobbles above around 2MBd.
    eg I can test CP2102N full duplex to 4MBd baud rates, provided I enable the HW handshake. With that enabled, the average data rate is ~ 2Mbd each way.

  • This is just your standard FT232R which works fine I find up to 3M baud. The problem is in the serial drivers and terminals I find and the easiest solution I thought was just use one that works (and supports ANSI) since these terminals are readily available such as TeraTerm, RealTerm (haven't tried it yet), and plain old minicom. I even just tried gtkterm in Linux and forced it to 3000000 baud (standard only shows 115200 max) and it works fine, even with long listings. Is this a case of poor serial drivers? Maybe I will add pacing for "new lines" just so Windows can keep up with 80's style serial :)

    Tachyon Forth - compact, fast, forthwright and interactive
    useforthlogo-s.png
    --->CLICK THE LOGO for more links<---
    Latest binary V5.4 includes EASYFILE +++++ Tachyon Forth News Blog
    P2 SHORTFORM DATASHEET +++++ TAQOZ documentation
    Brisbane, Australia
  • Peter, maybe put up some doc's for TAQOZ, so that we can exercise it.

    In the coming week, we might find some nice improvements to make. We can slip in a last-minute ROM change seven days from now.
  • cgracey wrote: »
    Peter, maybe put up some doc's for TAQOZ, so that we can exercise it.

    In the coming week, we might find some nice improvements to make. We can slip in a last-minute ROM change seven days from now.

    Last minute ROM changes :) I know I want to slip in some extras....
    So I will add pacing for new lines and just use a control character to disable it.
    Ok, I will start a new document specifically for TAQOZ and exercising the P2.

    Tachyon Forth - compact, fast, forthwright and interactive
    useforthlogo-s.png
    --->CLICK THE LOGO for more links<---
    Latest binary V5.4 includes EASYFILE +++++ Tachyon Forth News Blog
    P2 SHORTFORM DATASHEET +++++ TAQOZ documentation
    Brisbane, Australia
  • jmg wrote: »
    Cluso99 wrote: »
    At 3MB I was seeing dropped character blocks on large dumps. On small ones, things like the first part of TAQOZ version string "cold boot" up to and including the first line of ---.
    ...
    In regards to extra lines or missing characters, see if you can see any in this boot-up cold start test at 3Mbaud and dumping 64KB of memory.

    What serial bridge device is being used here ?
    I've found the FT2232H gives the best high speed UART performance, then FT232H, then Exar, and then SiLabs/FTDI get the wobbles above around 2MBd.
    eg I can test CP2102N full duplex to 4MBd baud rates, provided I enable the HW handshake. With that enabled, the average data rate is ~ 2Mbd each way.
    I have found propplugs unreliable at 3Mbaud.
    I agree with jmg on the FT2232H, Excellent reliability at 12Mbaud. :)


    Melbourne, Australia
  • Peter JakackiPeter Jakacki Posts: 7,818
    edited May 17 Vote Up0Vote Down
    ozpropdev wrote: »
    jmg wrote: »
    Cluso99 wrote: »
    At 3MB I was seeing dropped character blocks on large dumps. On small ones, things like the first part of TAQOZ version string "cold boot" up to and including the first line of ---.
    ...
    In regards to extra lines or missing characters, see if you can see any in this boot-up cold start test at 3Mbaud and dumping 64KB of memory.

    What serial bridge device is being used here ?
    I've found the FT2232H gives the best high speed UART performance, then FT232H, then Exar, and then SiLabs/FTDI get the wobbles above around 2MBd.
    eg I can test CP2102N full duplex to 4MBd baud rates, provided I enable the HW handshake. With that enabled, the average data rate is ~ 2Mbd each way.
    I have found propplugs unreliable at 3Mbaud.
    I agree with jmg on the FT2232H, Excellent reliability at 12Mbaud. :)

    Is that really the FT232R chip or the board or terminal itself? I say this because I have my own FT232R modules using a 4x2 connector that is compatible with the PropPlug on the bottom row but allows for +5V and I2C access on my boards. The I2C access is useful both for direct programming/cloning or even for I2C expansion. However, I'm using these without any problems at 3Mbaud with minicom and gtkterm.

    I do note though that for future designs I may use the FT2232H chip unless someone like jmg might also recommend alternatives.


    BTW - here is the link to my TAQOZ document that I am updating.


    Tachyon Forth - compact, fast, forthwright and interactive
    useforthlogo-s.png
    --->CLICK THE LOGO for more links<---
    Latest binary V5.4 includes EASYFILE +++++ Tachyon Forth News Blog
    P2 SHORTFORM DATASHEET +++++ TAQOZ documentation
    Brisbane, Australia
  • jmgjmg Posts: 12,355
    I'm using these without any problems at 3Mbaud with minicom and gtkterm.
    I do note though that for future designs I may use the FT2232H chip unless someone like jmg might also recommend alternatives.

    For a part like the P2, a HS-USB Dual UART like FT2232H is mature, proven, and a good match. Many FPGA breakouts use this.

    Best performing FS-USB device is the XR21B series, can set up to 12MBd and averages close to the USB data flow limits. (tho their driver update seems slow...)

    More esoteric parts to consider could be XR2280x, which has HS-USB with 15MBd UART(s) & i2c, and the HS-USB FT4222 is not a UART, but has an appealing SPI throughput.

    Microcontrollers offer another choice, EFM8UB3 would have best FS-USB support, and the Nuvoton NUC505 looks to be cheapest with HS-USB, or the very new M485 from Nuvoton has 17MBd UARTS
    and looks to come in a compact QFN33 package. (M485ZIDAE)

  • jmg wrote: »
    I'm using these without any problems at 3Mbaud with minicom and gtkterm.
    I do note though that for future designs I may use the FT2232H chip unless someone like jmg might also recommend alternatives.

    For a part like the P2, a HS-USB Dual UART like FT2232H is mature, proven, and a good match. Many FPGA breakouts use this.

    Best performing FS-USB device is the XR21B series, can set up to 12MBd and averages close to the USB data flow limits. (tho their driver update seems slow...)

    More esoteric parts to consider could be XR2280x, which has HS-USB with 15MBd UART(s) & i2c, and the HS-USB FT4222 is not a UART, but has an appealing SPI throughput.

    Microcontrollers offer another choice, EFM8UB3 would have best FS-USB support, and the Nuvoton NUC505 looks to be cheapest with HS-USB, or the very new M485 from Nuvoton has 17MBd UARTS
    and looks to come in a compact QFN33 package. (M485ZIDAE)

    I'd like it if we had a small micro with the USB UART firmware preloaded so that we can treat it the same way as an FT232R for instance. Do you know of any firmware available for that purpose that appears as a common HID or VCP device/


    Tachyon Forth - compact, fast, forthwright and interactive
    useforthlogo-s.png
    --->CLICK THE LOGO for more links<---
    Latest binary V5.4 includes EASYFILE +++++ Tachyon Forth News Blog
    P2 SHORTFORM DATASHEET +++++ TAQOZ documentation
    Brisbane, Australia
  • jmgjmg Posts: 12,355
    edited May 17 Vote Up0Vote Down
    I'd like it if we had a small micro with the USB UART firmware preloaded so that we can treat it the same way as an FT232R for instance. Do you know of any firmware available for that purpose that appears as a common HID or VCP device/

    There is SiLabs VCPxpress - that uses the CP210x VCP driver is supported on Windows, Mac, and Linux.

    The EFM8UB3 looks to have plenty of headroom for 'extras' in the 40K Bytes, and has a 48MHz CPU core.

    Their EFM8UB3 Eval docs also mention a HID example.

    The EFM8 series have CDC HID bootloaders, ( found HID Boot mention here )
    "EFM8 Factory Bootloader AN945SW contains all EFM8 bootloader images with UART, USB or SMBus interface. "
    A quick look there looks to be 4031 Bytes Bootloader size.

    Addit: builds reports :
    USB_bootloader code gives
    TO "EFM8UB3_USB0_BOOTLOADER.OMF.CRBUILD" Program Size: data=59.1 xdata=256 const=83 code=1346

    VCPxpress_echo gives
    TO "EFM8UB3_VCPXPRESS_ECHO_2.OMF.CRBUILD" Program Size: data=113.1 xdata=318 const=110 code=8492
    LX51 RUN COMPLETE. 0 WARNING(S), 0 ERROR(S)



    And I've been looking at CH55x parts
    It's in Chinese, but the parts look interesting.
    A slower core than EFM8UB3, so will have lower peak MHz, and fewer Baud choices - probably more a P1 partner, than a P2 one ?
    I've found boards here, low prices, but a little vague on if the loader is installed by PCB vendor, or if the bare MCUs come with that, in all cases ?
  • Cluso99Cluso99 Posts: 14,104
    edited May 17 Vote Up0Vote Down
    Peter,
    Here is PST (with (10) Line Feed unchecked) output when doing "> " <esc> from boot
     Cold start
    
    
    ----------------------------------------------------------------
      Parallax P2  .:.:--TAQOZ--:.:.  V1.0
    
    ----------------------------------------------------------------
    TAQOZ#
    
    IMHO this (2 lines) would be neater...
    P2-TAQOZ  V1.0
    TAQOZ#
    
    We may also need that extra rom space ;)
    My Prop boards: P8XBlade2, RamBlade, CpuBlade, TriBlade
    Prop OS (also see Sphinx, PropDos, PropCmd, Spinix)
    Website: www.clusos.com
    Prop Tools (Index) , Emulators (Index) , ZiCog (Z80)
  • Peter,
    I also get this
    TAQOZ# lsio
    PINS
    P:00000000001111111111222222222233333333334444444444555555555566
    
    P:01234567890123456789012345678901234567890123456789012345678901
    
    =:~~~~~~~~d~dd~~~~~~~~~~~~~~~~~~~~~~~~~~~d~~~~ddd~~~dddddd~~~~~~ ok
    TAQOZ#
    
    which would be nicer like this
    TAQOZ# lsio
    PINS
    P:00000000001111111111222222222233333333334444444444555555555566
    P:01234567890123456789012345678901234567890123456789012345678901
    =:~~~~~~~~d~dd~~~~~~~~~~~~~~~~~~~~~~~~~~~d~~~~ddd~~~dddddd~~~~~~ ok
    TAQOZ#
    
    or even more compact
    TAQOZ# lsio
    PINS:00000000001111111111222222222233333333334444444444555555555566
    PINS:01234567890123456789012345678901234567890123456789012345678901
    PINS:~~~~~~~~d~dd~~~~~~~~~~~~~~~~~~~~~~~~~~~d~~~~ddd~~~dddddd~~~~~~ ok
    TAQOZ#
    
    My Prop boards: P8XBlade2, RamBlade, CpuBlade, TriBlade
    Prop OS (also see Sphinx, PropDos, PropCmd, Spinix)
    Website: www.clusos.com
    Prop Tools (Index) , Emulators (Index) , ZiCog (Z80)
  • Cluso99Cluso99 Posts: 14,104
    edited May 17 Vote Up0Vote Down
    And this is TeraTerm with CR+LF set
    TAQOZ# lsio
    
    PINS
    
    P:00000000001111111111222222222233333333334444444444555555555566
    
    
    P:01234567890123456789012345678901234567890123456789012345678901
    
    
    =:~~~~~~~~d~dd~~~~~~~~~~~~~~~~~~~~~~~~~~~d~~d~ddd~~~dddddd~~~~~~ ok
    
    TAQOZ#
    
    I think its really only single blank lines between them. The forum is double spacing the code text :(
    My Prop boards: P8XBlade2, RamBlade, CpuBlade, TriBlade
    Prop OS (also see Sphinx, PropDos, PropCmd, Spinix)
    Website: www.clusos.com
    Prop Tools (Index) , Emulators (Index) , ZiCog (Z80)
  • Taqoz-terraterm.jpg
    371 x 421 - 33K
    My Prop boards: P8XBlade2, RamBlade, CpuBlade, TriBlade
    Prop OS (also see Sphinx, PropDos, PropCmd, Spinix)
    Website: www.clusos.com
    Prop Tools (Index) , Emulators (Index) , ZiCog (Z80)
  • So I'm trying to set up SD boot with P123-A9. I have a pullup on P60 (only)

    The SD card has _BOOT_P2.BIX and _BOOT_P2.BIY files in its root directory. I can see the cog start very briefly and then give up.

    The documentation indicates we don't have to change the MBR nor VOL sector at all, is this correct?

    Is there any particular reason the SD card failure just stops the cog, rather than dropping back to serial like flash does??
Sign In or Register to comment.