R
Reaction score
53

Latest activity Postings About

    • R
      We copied the Micromod pin pad labels, that's why it says BATT_IN - it's a Micromod label. It is wired to 3.3v on the ATP board and any other MM carrier board with a voltage divider. But it's just a GPIO, so can be used for anything else on the...
    • R
      Rezo reacted to jmarsh's post in the thread Call to arms | Teensy + SDRAM = true with Like Like.
      Finally got around to sitting down and mapping out all the exposed pins properly and found something odd - there's a pin labelled BATT_VIN/22/A8. My first thought: "how can this pin be both BATT_VIN and an I/O pin?" The answer is it can't/isn't...
    • R
      @mborgerson anything you can suggest? The comparator rout seems like a very good trigger option so start/stop ADC samples. Perhaps use two buffers, so while one is being filled via DMA the other can be read and calculated. Just need some...
    • R
      Awesome. Now to cover any leftover SPI calls with 8080 calls and then onto the MicroMod. I am really trying keep it all in one library...
    • R
      For a full 1024*600 @ 2bpp frame on an 8 bit bus with a 40Mhz baud rate you should get up to 16fps. No super fast, but for such a high resolution and narrow bus, that's as good as it will get!
    • R
      Good, just finished updating the 8-bit version and the draw time was 29ms for 449280 bytes which would be close to 60ms for 800k...
    • R
      Thats looks much better!
    • R
      That was the issue: Teensy and RA8876 parallel 8080 mode testing (8/16) Bus speed: 40 MHZ Rotate: After Origins Drawing two pictures at 794800 bytes in 16-bit mode Draw time: 26ms This is the code now: void...
    • R
      Biggest issue I see is each time you write a pixel you are calling flexio config and asserting/de asserting CS/DC - thats wasted time. In your function putPicture_16bppData16 you already have a pointer to data. So you just write the data to the...
    • R
      That seems a bit long? 1024*600*2bpp / 40Mhz is 32.55FPS, which is roughly 30ms per full screen write. How are you getting over 200ms for two 800kb images?
    • R
      The suggestion to read the same signal on two channels was just an idea, but seems like external hardware needs to be added (active buffers etc) and I want to keep the circuit as simple as possible What if we reduce the frequency range down to...
    • R
      You can swap the bytes around when reading or writing by using SHIFTBUFBYS instead of SHIFTBUF I used this even when doing 8bit writes when the buffer was loaded with 16 bits of data
    • R
      Thank you so much:D I thought I had found everything. I was looking only at the information on the ATP board. Silly ME!
    • R
      Try this: https://learn.sparkfun.com/tutorials/micromod-teensy-processor-hookup-guide/hardware-overview
    • R
      Hi Rezo, it's 1024x600. It is a good display. My vision is not good enough for anything much smaller than this display. I have not set up DMA yet. It is still using FlexIO3. Still not that familiar with using FlexIO with DMA. More to learn and...
    • R
      You can look at my other library, the one that works with the Teensy Micromod - it uses FlexIO2 and DMA. On the T4.0 and 4.1 there are not enough consecutive pins to support even an 8 bit bus. So if you want, you can try the MicroMod with an ATP...
    • R
      That looks impressive!! Whats the resolution on that? I see you are wired in an 8 bit bus, and you mentioned DMA (which the original lib didn’t support as it used FlexIO3) I assume you split the data on FlexIO1 or FlexIO2 port? BTW a logic...
    • R
      Well I finally ordered the Buydisplay ER-TFTM101-1 with capacitive touch and had it configured for parallel communication in 8080 mode. Using parts of @Rezo's ILI984x_t41_p library, I was able to adapt my Ra8876LiteTeensy library to use the...
    • R
      Thanks, and hope you feel better!
    • R
      Rezo reacted to mborgerson's post in the thread T4 ADC high speed sampling - how to? with Like Like.
      Sorry about that. I'm in the middle of a cold caught on return from a family vacation trip. This link may be more useful Fast ADC sampling I'll look at your other questions the first morning after I get more than four hours of sleep!
    • R
      @mborgerson thank you for taking the time to respond! Here are the answers to your questions: 1. Class D audio amplifier output, mostly car audio applications, so it might have some Alternator noise and any class D topology related noises and...
    • R
      I need some guidance on a sketch I want to put together. My goal is to be able to calculate true RMS voltage of a sine wave with a frequency range of 10Hz to 20Khz. Here are my requirements: 1. I only need to sample a half wave at a time 2. I...
    • R
      Rezo reacted to PaulStoffregen's post in the thread Teensy 4.1 or Arduino GIGA R1 with Like Like.
      Specifically regarding Arduino Giga and software, it's pretty clear Arduino has focused on developing certain features. The situation is similar with Teensy, but largely a different set of features. Depending on your perspective, it's easy to...
    • R
      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...
    • R
      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?
    • R
      Rezo reacted to defragster's post in the thread Call to arms | Teensy + SDRAM = true with Like Like.
      I made quick note somewhere on past pages with initial speed results showing longer at faster - but not seen with current test. Another thing the 'OneScanCap.ino' occasionally shows is an added 3 seconds to all times across the tests between one...
    • R
      Rezo reacted to mjs513's post in the thread Call to arms | Teensy + SDRAM = true with Like Like.
      Sorry been distracted today for a bunch of reasons. Reran the tests but added the time to copy the array DMAMEM to EXTMEM: 0 errors, 1010 microseconds to copy DMAMEM to DMAMEM: 0 errors, 319 microseconds to copy RAMMEM to RAMMEM: 0 errors...
    • R
      Rezo reacted to mjs513's post in the thread Call to arms | Teensy + SDRAM = true with Like Like.
      yep DMAMEM uint16_t array1[(320) * 240] __attribute__((aligned(32))); EXTMEM uint16_t array2[(320) * 240] __attribute__((aligned(32))); int errorCnt = 0; int arraySize = (320 * 240); void setup() { Serial.begin(115200); while (!Serial &&...
    • R
      And with a DMA transfer?
    • R
      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 ?
    • R
      Rezo reacted to mjs513's post in the thread Call to arms | Teensy + SDRAM = true with Wow Wow.
      Just by way of an update @KurtE got the OV7670 and OV7670 video working using the micromod as the test platform. If you try it on the SDRAM something strange is going on. If you use DMAMEM for the framebuffers image is perfect if you use...
    • R
      I set it to 1 and skipped 133 as I figured there was no point in testing it - we know it works
    • R
      @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...
    • R
      Rezo reacted to defragster's post in the thread Call to arms | Teensy + SDRAM = true with Like Like.
      Posted this just now: https://github.com/mjs513/SDRAM_t4/tree/main/examples/OneScanCap and running with DevBoard v 4.0 and twin 6.8 pF caps the summary is: Test results 57 tests with 5 ReReads: At 133 MHz in 157 seconds with 0 read errors...
    • R
      I did not actually. Which sketch should I run?
    • R
      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...
    • R
      Rezo reacted to jmarsh's post in the thread Call to arms | Teensy + SDRAM = true with Like Like.
      It's relatively simple to walk through all the MPU regions and add a new one at the end. Shouldn't need to disable/enable the data cache as long as it's done before the SDRAM/SEMC initialization. I agree that it should not be necessary though as...
    • R
      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...
    • R
      Rezo reacted to defragster's post in the thread Call to arms | Teensy + SDRAM = true with Like Like.
      If Paul suggests that, it would be worth a try to emulate the needed parts of that config function to add that new non-cache region. As I read the startup.c code for the configure_cache() it seemed like altering the cache/MPU when already set...
    • R
      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.
    • R
      @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...
    • R
      Let's first make an effort to add it in the SDRAM_t4 library. Maybe disable interrupts, turn off the cache, add that extra region, then turn the caches back on. That is, if arm_decache_flush_delete() and arm_decache_flush() aren't enough...
    • R
      Rezo reacted to KurtE's post in the thread Call to arms | Teensy + SDRAM = true with Like Like.
      Forget to ask/mention in previous post. When you said before each buffer write: not sure what you meant here. That is what "Before" if it was before your code updated the buffer to the new contents. then flushing before this would not help. if...
    • R
      @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...
    • R
      Rezo reacted to KurtE's post in the thread Call to arms | Teensy + SDRAM = true with Like Like.
      For what is worth, back in T4 beta cycle, I was running into issues with the caching getting in the way. Sometimes the cache flush and/or delete could help, other times a royal PIA... That is why I found it sort of amusing that we used the...
    • R
      @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...
    • R
      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.
    • R
      Rezo reacted to jmarsh's post in the thread Call to arms | Teensy + SDRAM = true with Like Like.
      But that is using up memory space and bandwidth for a framebuffer. If the display was connected to the SEMC the CPU could write directly to the display's memory. All you would have to do is put values in RAM and the corresponding pixels would...
    • R
      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
    • R
      Which camera are you going to use @jmarsh ?
  • Loading…
  • Loading…
Back
Top