Search results

  1. R

    Call to arms | Teensy + SDRAM = true

    Meanwhiles, for anyones enjoyment, here is a video of a music player demo running on LVGL v9.0.0 I think there is a lot of room left to optimize. It has two screen sized frame buffers (1.3Mb each) that LVGL writes into, and the eLCDIF reads from the ready buffer while the other is being written to.
  2. R

    Call to arms | Teensy + SDRAM = true

    Quick general question - can the SEMC/SDRAM read data from one address (using DMA for example) and write to another address at the same time?
  3. R

    Call to arms | Teensy + SDRAM = true

    And with a DMA transfer?
  4. R

    Call to arms | Teensy + SDRAM = true

    Im sure you’re already doing this - but you are flushing cache? Maybe try do a data integrity test with SDRAM/DMA? Copy data from one buffer to another and see if they are identical ?
  5. R

    Call to arms | Teensy + SDRAM = true

    I set it to 1 and skipped 133 as I figured there was no point in testing it - we know it works
  6. R

    Call to arms | Teensy + SDRAM = true

    @defragster Test with no cap Test results 57 tests with 5 ReReads: At 166 MHz in 142 seconds with 0 read errors At 196 MHz in 132 seconds with 0 read errors At 206 MHz in 130 seconds with 0 read errors At 216 MHz in 128 seconds with 2284 read errors (0.0001%) At 227 MHz...
  7. R

    Call to arms | Teensy + SDRAM = true

    I did not actually. Which sketch should I run?
  8. R

    Call to arms | Teensy + SDRAM = true

    Ugh… I should have multiplied the screen resolution by sizeof(uint32_t) in the flush call.. 🤦🏻‍♂️ How did I miss that one? Will test in a couple of hours - I'm sure that’s going to fix it. But regardless, the L1 Cache application notes does recommend to use non cached regions for DMA buffers...
  9. R

    Call to arms | Teensy + SDRAM = true

    As I mentioned, I tried to flush the cache but it had no affect at all. I can't confirm nor dismiss that the hardware needs a region with cache disabled, but from all the code examples I have observed (NXP, LVGL) and application notes, they all seem to use a non cached region, but don't have...
  10. R

    Call to arms | Teensy + SDRAM = true

    If we can reset it, and run though the same sequence of region setup, then we should be good - no? or, we know what the value of i is, as we have 11 regions set up in configure_cache and the next region can be 12.
  11. R

    Call to arms | Teensy + SDRAM = true

    @mjs513 @defragster think we could do this? Perhaps we can add a function to the class such as uint32_t setNoCacheRegion(uint8_t size) Based on the size (we can use a struct to set values) we can return the calculated base address for the non cached region start Size options would be 1M, 2M, 4M...
  12. R

    Call to arms | Teensy + SDRAM = true

    @KurtE "Before" means before I set the LCDIF_NEXT_BUF register to point to the next frame the eLCDIF needs to push out. So I call arm_decache_flush_delete after the frame is rendered and just before I set the eLCDIF LCDIF_NEXT_BUF register I used the same approach in my ILI948x FlexIO library...
  13. R

    Call to arms | Teensy + SDRAM = true

    @PaulStoffregen I have been playing around with the eLCDIF and a 24bit 800*480 RGB display using my experimental eLCDIF_t4 library My first experiment was to display a static image loaded into SDRAM - that worked fine. My next experiment was to bind it to LVGL and see what a GUI performance...
  14. R

    Call to arms | Teensy + SDRAM = true

    Right so piping it directly to the display without the need for a ram buffer. It can be done, but you’d need a new dev board for that. I have seen many implementations of LCDs on memory driver on the STM32 platform.
  15. R

    Call to arms | Teensy + SDRAM = true

    I have a library that supports 8080 for the ili948x Uses FlexIO and DMA. So it has no cpu hold up. You can use that with the camera
  16. R

    Call to arms | Teensy + SDRAM = true

    Which camera are you going to use @jmarsh ?
  17. R

    Call to arms | Teensy + SDRAM = true

    24 bit color requires 24 pins for bus and 4 pins for control. 28 in total from B0_00 to B1_11 - that leaves 4 pins left on FlexIO2 But, if one uses a 16 bit or 18 bit bus, that leaves 12 to 10 FlexIO pins left which is enough for the camera. I don’t think the camera supports a higher color...
  18. R

    Call to arms | Teensy + SDRAM = true

    @defragster I guess it would be the same things, yes. But DMA needs 32 byte aligned boundaries (hence the example above). LCDIF needs 64 byte alignment.
  19. R

    Call to arms | Teensy + SDRAM = true

    @mjs513 I have a working example of LCDIF & SDRAM if you want to reference it in the SDRAM examples folder? https://github.com/david-res/eLCDIF_t4/tree/main/examples/SDRAM/eLCDIF_SDRAM I still have some small updates to do to it, but it does work as is. Im thinking, as we cant use alignment...
  20. R

    Call to arms | Teensy + SDRAM = true

    +1 on the HDMI stuff - would be very cool to see something like that on the Teensy
  21. R

    Call to arms | Teensy + SDRAM = true

    I've started working on a little eLCDIF library: https://github.com/david-res/eLCDIF_t4 It's FAR from done, FAR from something functional, but I only started a couple hours ago. I'm not making this super fancy or super flexible - I'm making the bare minimum that's needed to "easily" set it up"...
  22. R

    Call to arms | Teensy + SDRAM = true

    In that case, We can optionally use GPIO_B0 and some of GPIO_B1 for eLCD @ 16bit color depth, and the remainder for FlexIO based camera interface. Although I do agree with @Dogbone06 that CSI would be the preferred way to go
  23. R

    Call to arms | Teensy + SDRAM = true

    @KurtE how many FlexIO pins would you need for the Camera?
  24. R

    Call to arms | Teensy + SDRAM = true

    Just need to redo pin layput IMO to group signals into peripherals. Would make it easier to create “shields”
  25. R

    Call to arms | Teensy + SDRAM = true

    Great success! Swapped the color order on the pins, so its wired B0-7, G0-7, R0-7 on LCD_DATA0 through LCD_DATA23 pins and it looks great! So that confirms the color order on the eLCDIF output is BGR and not RGB
  26. R

    Call to arms | Teensy + SDRAM = true

    I pulled up the 1060EVK schematic and took a look at how they wired up the LCD (it's a 480x272@16bit) and I see that the wiring order is B-G-R and not R-G-B as I wired it up: looking through the eLCDIF control registers I don't seen an option to do a color order swap. But this baffles and...
  27. R

    Call to arms | Teensy + SDRAM = true

    Here's a quick update from me: Got some 5" and 4.3" LCDs here, 800*480px, 16.7M colors @Dogbone06 sent over some Adaftuit 40 pin lcd breakout boards which arrived on Monday, got to wiring it up day before last, and started testing. Consulted with @jmarsh about eLCDIF timing config, as I am...
  28. R

    Call to arms | Teensy + SDRAM = true

    How does usb serial work with usb host on the same port? Can it support both at the same time?
  29. R

    Flashing 4.1 code on a board with a 4.0 bootloader chip

    I can confirm the above, it can be used as we did disconnect from the bootloader on the dev board. I used it as a FlexIO pin. But as Paul mentioned when I had initially asked, it’s usage for the bootloader could change in the future
  30. R

    Call to arms | Teensy + SDRAM = true

    I would add to the speed select switch case: CASE: 332: clock_div = 1; Then in the code posted above: if(clockdiv == 2) { CCM_CBCDR = (CCM_CBCDR & ~(CCM_CBCDR_SEMC_PODF(7) | CCM_CBCDR_SEMC_ALT_CLK_SEL)) | CCM_CBCDR_SEMC_CLK_SEL | CCM_CBCDR_SEMC_PODF(clockdiv-1); /* If it doesn't work, maybe...
  31. R

    Call to arms | Teensy + SDRAM = true

    Seems that the eLCDIF application note mentions this on page 6 under the list of resolutions: https://www.nxp.com/docs/en/application-note/AN12302.pdf
  32. R

    Call to arms | Teensy + SDRAM = true

    @jmarsh I thought the max resolution the eLCDIF supports is 1280*800?
  33. R

    Call to arms | Teensy + SDRAM = true

    Mind sharing what you have so far? I'm still waiting on my LCD breakout boards and would love to have something ready to go when I get them
  34. R

    Call to arms | Teensy + SDRAM = true

    That's quite disappointing! I was hoping to use two large buffers for my 8080 FlexIO display driver library. eLCDIF and perhaps PXP seem to support SDRAM so hopefully will see better performance there - I'm waiting on some breakout boards for a 4.3" and 5" RGB LCDs I have sitting at home. Will...
  35. R

    +/-5V power from USB

    Im using an A0515S isolated dc-dc supply for a project that involves a split rail supply for some op-amps - but have yet to test it.
  36. R

    Detecting low frequency:high power clipping in realtime

    Bumping this up and I have a new approach. I no longer need to measure the frequency, I just need to be able to kind of reconstruct the sine wave so that I can do some comparisons on the data points. Now, to increase the range and eliminate the need to offset the inputs to account for a true...
  37. R

    Call to arms | Teensy + SDRAM = true

    @mjs513 @defragster can we possibly add a description of the two methods to use the library into the readme? Option 1 is to include the library, init the sdram and use malloc, free functions etc Option 2 is to use custom linker file and EXTMEM macro - then describe how to point to the customer...
  38. R

    Call to arms | Teensy + SDRAM = true

    Yep you still need the lib @mjs513 but it works :) I know @Dogbone06 was hoping there is a way to use the EXTMEM macro or something similar rather than sdram malloc as it looks a bit neater in the code.
  39. R

    Call to arms | Teensy + SDRAM = true

    So I had a go at it modified my custom linker file to account for SDRAM: ERAM (rwx): ORIGIN = 0x80000000, LENGTH = 32768K I declared two buffers in EXTMEM(EXTMEM uint16_t buffer1[800*480*3]; EXTMEM uint16_t buffer2[800*480*3]; ) Then initialized SDRAM as usual, printed their address to...
  40. R

    Call to arms | Teensy + SDRAM = true

    Actually, we might be able to I think? With a custom linker file this can be achieved in IDEs such as VSC. I did this to get PSRAM working on the 1st gen dev board @Dogbone06 had created that had a single 8mb chip on board, without touching cores. Just importing some of the PSRAM init code and...
  41. R

    Call to arms | Teensy + SDRAM = true

    I would perhaps move the CAP/NOCAP to be in the begin function call. For example: sdram.begin(32, NOCAP); and perhaps also another argument to change the speed from 133 to the other higher options
  42. R

    Call to arms | Teensy + SDRAM = true

    @mjs513 @defragster could either of you supply an image of the dev board from up top for the pjrc bootloader page?
  43. R

    Call to arms | Teensy + SDRAM = true

    @mjs513 @defragster will we be able to use DMA with SDRAM? Has that been tested?
  44. R

    Call to arms | Teensy + SDRAM = true

    Pins are 2.54mm pitch All 24 data lines and additiona 4 control lines (hsync, vsync, pxclk, de) have been exposed. As mentioned before, all 32 FlexIO2 pins have been exposed. LCD pins are on the same pads with a different ALT setting - You can find the pinout on page 1876 of the reference...
  45. R

    Call to arms | Teensy + SDRAM = true

    All eLCDIF/FlexIO2 pins have been brought out. But I wonder if we can use CSI, LCD,Audio and SDRAM together. We are using a 10x10 mm chip so it has less pads, thus less signals to break out. But the next gen dev board will definitely have more pads exposed. And perhaps the 12x12mm version for...
  46. R

    Call to arms | Teensy + SDRAM = true

    Yes. All 32 FlexIO2 pins have been exposed Pins 0-23 on FlexIO2 also serve as the eLCDIF pins (different alt settings for the pins)
  47. R

    Call to arms | Teensy + SDRAM = true

    @KurtE we did expose all the eLCDIF pins 😎 One of the reasons for the SDRAM is the dual buffers capacity and the speed vs PSRAM
  48. R

    Reading analog inputs on Teensy 4.0

    pinMode(A0, INPUT_DISABLE); Put that in the setup for each analog pin
  49. R

    Call to arms | Teensy + SDRAM = true

    @mjs513 did you try run the display test with a framebuffer in SDRAM? Wonder if it would have any effect on the results with a fairly small display
  50. R

    Call to arms | Teensy + SDRAM = true

    Technically you can use PSRAM on a Micromod based custom board. I put together a small library that allows me to use PSRAM on an older devboard that @Dogbone06 sent me a few month back, which has the 16mb flash chip just like the Micromod - Just copied some of the code from the cores and used a...
Back
Top