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#
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.
DOH!!! Can't count today.
Clearly a coffee deficiency :-(
Maybe, but more likely it is a P2 deficiency
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.
DOH!!! Can't count today.
Clearly a coffee deficiency :-(
Maybe, but more likely it is a P2 deficiency
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.
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.
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.
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?
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: ................................................................................................................................
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
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.
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.
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.
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'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/
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.
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 ?
Comments
+100
Wow what a milestone. Well done, guys.
Is that 'it' for OnSemi work for now, Chip?
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.
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.
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.
There's a celebration !!!!
Jason
Clearly a coffee deficiency :-(
Maybe, but more likely it is a P2 deficiency
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.
I'm not sure what baud rate Chip was using.
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.
Could you paste what your terminal is showing? (text or screenshot).
This is part of it since the forum says it is too long but click this link for the full text file.
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.
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.
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.
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/
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 ?
Here is PST (with (10) Line Feed unchecked) output when doing "> " <esc> from boot IMHO this (2 lines) would be neater... We may also need that extra rom space
I also get this which would be nicer like this or even more compact
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??