Shop Learn
TAQOZ development news board — Parallax Forums

TAQOZ development news board

MaciekMaciek Posts: 314
edited 2021-04-01 09:35 in Propeller 2

This thread is mainly intended as a news board to help us, poor souls interested in the TAQOZ, follow its development for the P2.
As of now, I frequently scan Peters' pCloud, Sourceforge and Dropbox folders and this reputable forum here for changes but that seems a bit ineffective and I thought maybe Peter could announce the more important changes here.
I can see at least two main benefits to this, one being we stay informed without much digging, all in one place, and the other one being that it could possibly relieve Peter from answering many repeatable questions from different users.

@"Peter Jakacki" - if you find it a worthy idea, please feel free to announce any changes you think are worth mentioning here. If you do not like the idea behind this post, please let me know here and I will ask the forum moderator to remove the post.

Anybody else - please, do not post to this thread until further notice.

At Peter's request, please note that any questions should be directed back to the main TAQOZ thread to keep this one clean.


  • Being proactive is never discouraged and having a separate thread for news will make it easier to find out what has been changed and why.

    Latest version has these changes to the kernel:

    Added WSTX
    Added WSTX which transmits an array to WS2812 LEDs. Rather than enforce a long per pixel I have a raw byte buffer so it is necessary to specify the buffer address and the byte count. Use PIN or PINS to select the output like this: '33 PIN BUFFERS 24 WSTX` which will update 8 LEDs on P33 from BUFFERS. Because TAQOZ allows the clock frequency to be adjusted as required, therefore WSTX calculates its timing each time it is called.

    I maintain a kernel changelog in the version.p2a file which shows up at around line 567 in taqoz.spin2. But the .FTH source code modules have their own changelog which I will try to post here as they change.

    Here's the latest kernel changelog for 2021.

    210330 Added "drvh tx_pin" in reset (COG0 is initialized last and might take too long)
    Added WSTX routine for WS2812
    210329 Removed LSBOUT MSBOUT MSBIN and replaced with RCLIO
    210308 Modified SPIRX to use smartpin assisted clocking for sysclk/4 data rates
    210306 Added waitx clkdly in place of nop in SPI clocking ( reordered the cog registers to fit this in in the SPI section)
    Changed CONEMIT to check tx ready before sending for faster throughput - added a timeout just in case
    210302 renamed EXIT; to +EXIT since it appends an EXIT (jump bit) to the previous instruction if it can.
    Use EXIT; to always append an EXIT and stop compilation - an normal unoptimized ; in other words
    $ prefixed hex numbers are always comverted to upper case HEX so now $beef will work etc

    210219 Updated PRINT" and PRINT$ to handle \ controls including a \$nn for hex
    Extended TRACE to include code jump (code+1) match and display literals (10,16,32-bit)
    Added lower case support for hex numbers.
    210208 Modify FLASH BACKUP to include size at start of block etc to work with 2nd stage loader

    210207 remove dummy $0D transmit on serial init (EMIT sends first then waits anyway)
    Add a new delayms value to prevent UB3 garble during power-up
    201123 Force 1k5 pullups on SCL/SDA and change FLTx to DRVH
    The external pullups are not fitted on the P2D2ed, and the UB3 loads a low speed using its weak pullups

  • Peter JakackiPeter Jakacki Posts: 10,193
    edited 2021-04-01 08:24

    There is a new binary on Dropbox/PCloud which I have also attached here. I have included the kernel and Forth folders as well as taqoz.spin2 etc.
    I fixed some funny SD mounting problems and all is well now. This version includes WSTX as well as a tweak to the inline assembler. Because there is no strict syntax with the assembler, you can even mix the conditional operators such as If_xx and even _ret around as long as it is on the same line. Here a code routine that does not have any indentation at all and places the ret after the instruction.

    I decided I would make the us and ms and s words as accurate as possible so I took into account the fact that we should include the timing for the literal value as well. This means if we say 3 us then 3 microseconds it is, including the 56 cycles for pushing a literal. If you change the clockfreq then this routine is automatically updated to compensate. The reason for any slight variation in from an exact timing is due simply to wordcodes being read from shared hubram, although it is only a matter of tens of nanoseconds at most if any.

    TAQOZ# LAP 1 us LAP .LAP --- 320 cycles= 1,000ns @320MHz ok
    TAQOZ# LAP 1 ms LAP .LAP --- 320,008 cycles= 1,000,025ns @320MHz ok
    TAQOZ# LAP 3 s LAP .LAP --- 960,000,016 cycles= 3,000,000,050ns @320MHz ok

    Of course this version has the superfast SD read speeds up to 8Mbytes/sec as well.

    BTW - I will use this thread for posting the files as well as the news but any questions should be directed back to the main TAQOZ thread to keep this one clean.
    @Maciek - I guess this thread is no longer unofficial :)

    TAQOZ# code WSTX
    0ABBC FB04_2614 rdlong  r3,#20
    0ABC0 FF00_1312  qdiv    r3,#2500000
    0ABC4 FD14_27A0
    0ABC8 FD60_2618  getqx   r3
    0ABCC FAC0_2024  rdbyte  r0,b
    0ABD0 F064_2018  shl     r0,#24
    0ABD4 F104_4801  add     b,#1
    0ABD8 F604_2208  mov     r1,#8
    0ABDC FD60_1A59  drvh    13
    0ABE0 FD60_261F  waitx   r3
    0ABE4 F074_2001  shl     r0,#1 wc
    0ABE8 FD60_1A5A  drvc    13
    0ABEC FD60_261F  waitx   r3
    0ABF0 FD60_1A58  drvl    13
    0ABF4 FD60_261F  waitx   r3
    0ABF8 FB6C_23F8  djnz    r1,#l0
    0ABFC FB6C_47F3  djnz    a,#l1
    0AC00 FD9F_5402  jmp     #\@2DROP
    0AC04 0D60_1A58 drvl 13 _ret_
     ---  ok         end
Sign In or Register to comment.