Forum Rule: Always post complete source code & details to reproduce any issue!

Search:

Type: Posts; User: easone

Page 1 of 2 1 2

Search: Search took 0.00 seconds.

  1. Replies
    57
    Views
    4,015

    I figured out a way to combine FlexIO1, FlexIO2,...

    I figured out a way to combine FlexIO1, FlexIO2, and FlexIO3 together into a single non-blocking parallel interface. This is exciting because it means it should be possible in theory to have a...
  2. @Rezo - I've made some good progress which might...

    @Rezo - I've made some good progress which might be useful to you. I successfully got the interrupt method working. Functional proof of concept here:
    https://github.com/easone/FlexIO_interrupt
    ...
  3. Replies
    57
    Views
    4,015

    I've found that the FlexIO base clock can be...

    I've found that the FlexIO base clock can be overclocked to 480 MHz, so it may be possible. For such a high speed application I would want to avoid any interrupt driven bit reformatting. FlexIO2 on...
  4. Replies
    57
    Views
    4,015

    Sounds like 8080 or 6800 style interfaces are...

    Sounds like 8080 or 6800 style interfaces are common for LCDs like ILI948x. At least to start, I think my parallel library would be a low level library and would not emulate the whole interface, just...
  5. Replies
    57
    Views
    4,015

    Right - at least initially, the library will only...

    Right - at least initially, the library will only support 16bit interfaces on T4.1 FlexIO3, but I think an interrupt based method can leave the processor free the majority of the time. Despite being...
  6. Replies
    57
    Views
    4,015

    Ideas on a T4 parallel library using FlexIO

    Some recent discussion about driving parallel interfaces with FlexIO has got me thinking about developing some kind of general library. Is this something that would be useful to the community?
    ...
  7. That looks like a bad electrical connection on...

    That looks like a bad electrical connection on the D2 pin to me.
  8. Yes, I think so. The SHIFTBUFBYS option allows...

    Yes, I think so. The SHIFTBUFBYS option allows hardware conversion of endianness for 32 bit words, but there isn't a built in option for 16-bit endianness conversion...

    I came up with an idea...
  9. Let me make sure I understand the latest issue....

    Let me make sure I understand the latest issue. You have an array of 16 bit pixels, which is stored in memory as little-endian bytes {LSB[0], MSB[0], LSB[1], MSB[1], LSB[2], MSB[2], LSB[3], MSB[3],...
  10. Looks like you're transferring only one half of...

    Looks like you're transferring only one half of your test image here, since it's an array of 32 16-bit values (64 bytes long):

    FLEXIO_8080_MulBeatWR_nPrm(0x02, tft_test_img, 32);
    As currently...
  11. Please post your complete code that you're...

    Please post your complete code that you're experiencing this issue with - probably some subtlety about the DMA with 16 bit instead of 8 bit source...
  12. This is right, and the DMA setup should be doing...

    This is right, and the DMA setup should be doing essentially the same thing - copying 32 bits from buf[0] to SHIFTBUF[0], then buf[1] to SHIFTBUF[1] etc. The source and destination addresses are...
  13. It's weird. When you read the FLEXIO2_PARAM...

    It's weird. When you read the FLEXIO2_PARAM register after enabling FlexIO2, the value stored there indicates that there are 8 timers and 8 shifters on the chip rather than 4. Maybe the extra...
  14. I'm not sure what might be causing that. When I...

    I'm not sure what might be causing that. When I run the code on a T4.0 the shift buffers appear to be loaded correctly with 0x05050505, which should be shifting out 0x05 one byte at a time... Does...
  15. Hm, that doesn't seem quite right... the DMA...

    Hm, that doesn't seem quite right... the DMA transfer size (SSIZE and DSIZE) shouldn't vary with the number of shifters, it should always be 32 bits so the DMA engine copies a word from memory into...
  16. Here's my interpretation of Table 4-3 in the...

    Here's my interpretation of Table 4-3 in the manual:

    DMA signal 0 = FlexIO1 Shifter 0 OR Shifter 1
    DMA signal 1 = FlexIO2 Shifter 0 OR Shifter 1
    DMA signal 64 = FlexIO1 Shifter 2 OR Shifter 3...
  17. @Rezo I took a look through your code. Your...

    @Rezo

    I took a look through your code. Your DMA and FlexIO setups look good. The problem seems to be that FlexIO1 and FlexIO2 shifters 0-3 are the only ones that can generate DMA requests. I...
  18. Thanks for the update! This also helps explain...

    Thanks for the update! This also helps explain something I had noticed which is that the SmartMatrix driver (which uses FlexIO at 480 MHz) doesn't work properly with the CPU clock below 600 MHz.
    ...
  19. If I'm understanding correctly, you should be...

    If I'm understanding correctly, you should be getting 4 clock pulses but it looks like you are getting 6 instead? Is there an extra pulse at the end as well as the beginning?

    I wonder if this is...
  20. Replies
    2
    Views
    484

    OctoWS2811 library is the best way to drive lots...

    OctoWS2811 library is the best way to drive lots of WS2812B's.

    https://www.pjrc.com/teensy/td_libs_OctoWS2811.html

    Despite the name, on Teensy 4.1 it can drive LEDs on more than 8 pins in...
  21. Replies
    3
    Views
    585

    For HUB75 panels, the clock speed limits you to...

    For HUB75 panels, the clock speed limits you to about 10-20k pixels in one daisy chain, unless you make some serious compromises. You could use a low color depth perhaps (3bit color instead of...
  22. No problem. In brief, the panel takes 14 inputs:...

    No problem. In brief, the panel takes 14 inputs: 6 RGB lines, 5 row address lines, clock (CLK), output enable (OE), and latch (LAT). The Teensy shield drives these signals using only 9 Teensy pins,...
  23. The Teensy shield uses row address latching...

    The Teensy shield uses row address latching hardware in addition to level shifters, so the library won't be compatible with your existing hardware. You can find a schematic here:...
  24. There is a clock rate limit for a single chain of...

    There is a clock rate limit for a single chain of HUB75 RGB panels. SmartMatrix library can get pretty close to this limit, amounting to 96 million pixels * color bits per second. With 36 bit "high...
  25. Are you actually using the SmartLED shield...

    Are you actually using the SmartLED shield (https://docs.pixelmatix.com/SmartMatrix/shieldref.html?) You said you have the Adafruit RGB Matrix Shield, but that's only for Arduino-compatible boards,...
  26. The 4 pin cable can't provide power to the LED...

    The 4 pin cable can't provide power to the LED matrix because the 2x8 pin interface doesn't pass any power connections between the shield and the matrix, only data signals. The 4 pin cable can be...
  27. Replies
    21
    Views
    3,211

    Another cool application of FlexIO is Jean-Marc's...

    Another cool application of FlexIO is Jean-Marc's VGA interface here:
    https://forum.pjrc.com/threads/62362-VGA-out-for-Teensy-4-0-4-1/
  28. Replies
    21
    Views
    3,211

    I think you're right, shifters 4-7 don't have the...

    I think you're right, shifters 4-7 don't have the ability to generate DMA triggers when their buffers are empty. However, depending on application it may suffice to use the triggers from shifters 0-3...
  29. Replies
    21
    Views
    3,211

    I'm not sure exactly what the problem was, maybe...

    I'm not sure exactly what the problem was, maybe it was a DMA or triggering issue, or maybe it was just a mistake on my part. The fact that you got your example working on the extra shifters is great...
  30. Replies
    21
    Views
    3,211

    Awesome writeup! I noticed too that the chip...

    Awesome writeup!

    I noticed too that the chip behaves as if it has extra shifters. In fact my SmartMatrix driver code makes use of an undocumented fifth FlexIO shifter, but somehow I was of the...
  31. I'm not sure whether FlexPWM is useful to...

    I'm not sure whether FlexPWM is useful to transmit a finite stream of pulses - it is possible to use DMA to vary the pulse width but making the stream start and stop precisely could be difficult...
    ...
  32. Replies
    170
    Views
    26,491

    I don't know exactly what's wrong without seeing...

    I don't know exactly what's wrong without seeing the full code, but if you have TCD->DOFF = 0 with minorLoopIterations = 4 then your DMA is copying into single destination SHIFTBUF0 four times in a...
  33. Replies
    170
    Views
    26,491

    I haven't been able to test the following for...

    I haven't been able to test the following for VGA, but it is nearly the same as the configuration I am using for the SmartMatrix driver. Please forgive any errors!

    First, you need to configure all...
  34. Replies
    170
    Views
    26,491

    You could always use 8 bits of FlexIO3... It...

    You could always use 8 bits of FlexIO3... It would be more processor intensive because you would need to use an interrupt to load the shift buffer instead of DMA. One thing you can do to decrease the...
  35. By the way, it's possible to use a pinout that...

    By the way, it's possible to use a pinout that leaves all the audio pins free, but it needs pin 32 (so you either need to use T4.1 or solder to the back of T4.0). If anyone is interested in building...
  36. You have a great point! In order to get the right...

    You have a great point! In order to get the right pins for FlexIO without resorting to any of the T4.0 back side pins, it's necessary to block either pin 7 or pin 8 from the audio board. However, the...
  37. Congrats! I'm very happy with how the performance...

    Congrats! I'm very happy with how the performance turned out.

    I believe this is the first LED shield designed for Teensy 4!
  38. Replies
    170
    Views
    26,491

    About the FlexIO shift width register... ...

    About the FlexIO shift width register...

    FlexIO only has 1,2,4,8,16, and 32 bit shift modes.

    FLEXIO_SHIFTCFG_PWIDTH(x) configures for x+1 parallel output bits, and the shifter mode is the...
  39. Thread: 16 bit data bus

    by easone
    Replies
    2
    Views
    631

    Check out this thread for more info:...

    Check out this thread for more info:
    https://forum.pjrc.com/threads/57698-Parallel-IO-is-it-possible

    The 32 bit register you want to read/write to is GPIO6_DR.

    Note the usage of GPIO6 instead...
  40. Thread: 16 bit data bus

    by easone
    Replies
    2
    Views
    631

    Your best bet on T4.1 is probably GPIO1 which has...

    Your best bet on T4.1 is probably GPIO1 which has bits 16-31 available on pins 14-23, 26, 27, and 38-41.

    You can see the detailed pin assignments here: ...
  41. Replies
    6
    Views
    1,150

    That makes sense. If you trigger two separate DMA...

    That makes sense. If you trigger two separate DMA transfers, even if they are linked, the DMA engine takes some extra overhead to handle them one after the other (and can also be interrupted by...
  42. Replies
    6
    Views
    1,150

    Awesome! Any videos of it working that you can...

    Awesome! Any videos of it working that you can share?

    I was curious so I looked at your FlexIO setup. I'm sure you're aware about this line configuring the bit width:


    parallelWidth =...
  43. Kurt is right - DMA can only access GPIO1-4 and...

    Kurt is right - DMA can only access GPIO1-4 and not GPIO6-9. In your case, you need to set your destination to GPIO2 instead of GPIO7.

    You also need to set the IOMUXC_GPR_GPR27 register to select...
  44. Also, Louis the creator of SmartMatrix...

    Also, Louis the creator of SmartMatrix (pixelmatix.com) is planning to release a new shield for Teensy 4.0/4.1 with the same form factor, but a different pinout. It will be totally plug-and-play, no...
  45. Thanks! I finally got a full port of the library...

    Thanks! I finally got a full port of the library working with layers and the SmartMatrix API and so on. There are still some bugs I'm working out but it's functional. Let me know if you encounter any...
  46. The DMA TCD is accessed using the DMAChannel...

    The DMA TCD is accessed using the DMAChannel class that Paul wrote. You need the DMAChannel object associated with your transaction, and then the TCD structure is just a member variable of that...
  47. Replies
    8
    Views
    1,050

    I'm currently working on the software side to get...

    I'm currently working on the software side to get the SmartMatrix library working with T4.0/T4.1. I'll update that other thread once I have some progress. The existing Pixelmatix shield is the best...
  48. Replies
    804
    Views
    96,287

    @defragster - how does EXTMEM access compare to...

    @defragster - how does EXTMEM access compare to normal or DMAMEM access in terms of speed?

    Also, can EXTMEM arrays be initialized unlike DMAMEM ones?
  49. Replies
    804
    Views
    96,287

    @potatotron - nice work! I look forward to seeing...

    @potatotron - nice work! I look forward to seeing your demo. FYI, I got slower performance when using DMA to write to GPIO, something like 45 ns per 32 bit DMA transfer...

    Once I get my hands on a...
  50. What version of Teensyduino are you using?...

    What version of Teensyduino are you using? FLASHMEM was added in 1.49. Without it, there is no performance impact but there will be increased memory utilization.
Results 1 to 50 of 71
Page 1 of 2 1 2