Search results

  1. J

    Call to arms | Teensy + SDRAM = true

    That looks pretty much the same as Dogbone's devboard to me - 16 bits of data, 2 bank pins, row and column addresses are sent multiplexed on A0-A12.
  2. J

    Call to arms | Teensy + SDRAM = true

    Those values use SEMC clock ticks as units, they don't care about the CPU's clock.
  3. J

    Crash when putting FlexCAN objects in RAM2

    You could potentially have problems with memory alignment if you used a uint8_t buffer like that though.
  4. J

    Crash when putting FlexCAN objects in RAM2

    I guess in theory it should work if the objects don't contain any static data, or possibly also no const data depending on how the compiler decides to optimize things. The main point is that only the space will be reserved for it, any pre-initialized data won't be handled correctly (possibly...
  5. J

    Potential Issue with OVERCLOCK_MAX_VOLT in clockspeed.c for Teensy 4.0

    Do you put any sort of cooling (heatsink and/or fan) on your units?
  6. J

    Call to arms | Teensy + SDRAM = true

    I don't think that's always accurate, especially for non-sequential writes - tile / character based rendering for example, would greatly benefit from writes to separate lines being collected in the cache before being flushed to RAM.
  7. J

    Crash when putting FlexCAN objects in RAM2

    You can only put uninitialized objects in RAM2 / DMAMEM.
  8. J

    Recording video in Teensy

    The Teensy does have a CSI peripheral, but not many of the pins for it are broken out as I/O pins. Alternatively you could connect it to a FlexIO port and access it that way but it requires a fair bit of coding work.
  9. J

    Call to arms | Teensy + SDRAM = true

    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 long as the code is flushing when required; I had...
  10. J

    Software reboot for the T4

    _reboot_Teensyduino_();
  11. J

    "multiple definition of" error when using std::function with argument (teensy41, platformio)

    That's not the correct fix for this situation. They are replaceable in the standard library. Teensy's core is attempting to replace them. You just have the libraries in the wrong order in your linker command line.
  12. J

    "multiple definition of" error when using std::function with argument (teensy41, platformio)

    The comment says they are replaceable, which is true if the replacement functions are linked first. The logs you've posted don't show the link command line but it seems libstdc++ is being specified before the Teensy's core library instead of the other way around.
  13. J

    Call to arms | Teensy + SDRAM = true

    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 appear on the screen, no SDRAM even required.
  14. J

    Call to arms | Teensy + SDRAM = true

    Random thought for the day: the SEMC interface (the part of the IMXRT1062 that talks to the SDRAM chip) also supports 8080 display interface (DBI) mode, letting the CPU write directly to a display's memory rather than updating a framebuffer in RAM and then sending it using LCDIF/FlexIO - don't...
  15. J

    Call to arms | Teensy + SDRAM = true

    I have an OV2460 that's currently sitting around doing nothing.
  16. J

    Call to arms | Teensy + SDRAM = true

    I thought these cameras only sampled one channel per pixel, so they get away with using an 8 (or 10 for higher quality) bit data bus. I'm waiting on an FFC breakout board to connect mine, figuring out the pins will be fun...
  17. J

    USB interface for multi channel outputs, not just stereo

    There is an open pull request for adding multiple USB channels as well as configurable sample rates.
  18. J

    Teensy 4.1 "dual boot" capability?

    So the IMXRT chip in the Teensy has a built-in ROM, which is the first thing that runs when it boots. It's capable of loading program images from various sources (Flash, SD, Serial etc.) based on how the fuses are set, so I would guess the default Teensy config restricts it only to a flash chip...
  19. J

    troubleshooting simple project

    Was DOG.WAV created using the right parameters? It has to be 16-bit PCM with a sampling rate of 44100Hz.
  20. J

    RESOLVED - T4.1 using Bounce2, boolean operators not working as expected.

    You're going to have to be clearer than "it doesn't work how I want it to." What do you expect to happen and what is happening instead?
  21. J

    Teensy 2.0 hi-Z outputs?

    Setting a pin to input mode effectively makes it hi-z.
  22. J

    Call to arms | Teensy + SDRAM = true

    malloc() already guarantees 8 byte alignment. It's defined this way in the C standard - any dynamically allocated memory must have alignment suitable for any native datatype e.g. 8 bytes for a double. smalloc is deficient in this regard. And that's why I'm saying the changes should be in...
  23. J

    Call to arms | Teensy + SDRAM = true

    Not really sure what you mean, any pointer returned by an allocation function has to be able to be directly passed to the equivalent release function (the same ways pointers returned by aligned_alloc() can be passed to free() when using stdlib). The simplest way to do it with smalloc would...
  24. J

    Call to arms | Teensy + SDRAM = true

    I think I may have been wrong about that and the LCDIF alignment requirement is only 64 bits rather than bytes. Then the usual DMA alignment requirement would take precedence (32 bytes). The default alignment of the smalloc library is still an issue (in both the sdram library and core), it...
  25. J

    Teensy 4.1 - Arduino nano ESP32 Comunication

    The boards don't appear to have a common ground connection.
  26. J

    Call to arms | Teensy + SDRAM = true

    AFAIK that was a host driver for a non-standard UVC (it used bulk endpoints rather than isochronous), rather than having the Teensy act as a UVC device.
  27. J

    Call to arms | Teensy + SDRAM = true

    I'm at a bit of a loose end trying to decide which direction to go forward for video output. I really don't want to get a screen with an RGB interface, would rather have generic output which means VGA or DVI/HDMI. VGA requires either R2R ladders, which are reasonably cheap but messy (roughly 50...
  28. J

    The power consumption of Teensy's processor?

    The systick timer can be kept running if the right register pokes are done. I was just mentioning it because the test was assuming it was active by default, which it isn't.
  29. J

    The power consumption of Teensy's processor?

    A "wfi" instruction on the Teensy 4 stops systick from running, by default.
  30. J

    Is a SEREMU or CDC interface required for every Teensy USB Device?

    What if you provide an alternative implementation of _write() that doesn't reference Serial? It's declared as weak in Print.cpp so applications can override it with their own if necessary.
  31. J

    Call to arms | Teensy + SDRAM = true

    What I was trying to remember earlier: The LCDIF_CTRL2 register has two fields (ODD_LINE_PATTERN and EVEN_LINE_PATTERN, page 1888 of the IMXRT1060 pdf) that specify the RGB component order, so you could just change those values rather than rewiring.
  32. J

    Issues with USB hub IC

    I don't see anything wrong with the log you've posted. The hub is identified at the top: *** Device Hub1 424:2412 - connected *** and then the drive is enumerated (twice: once at the device level and then at the interface level) but nothing claims it because the HIDDeviceInfo sketch doesn't...
  33. J

    Call to arms | Teensy + SDRAM = true

    The resolution doesn't seem to be limited (at least up to 1080p) but the issue with VGA is that it's analog... so you either need a lot of resistors for an R2R ladder (roughly 17 for an 8-bit channel, times three channels) or a 3-channel high speed DAC... in which case you may as well go the...
  34. J

    Call to arms | Teensy + SDRAM = true

    I would to. Like something based around the ADV7513, that takes basic RGB signals and I2S/SPDIF audio and outputs HDMI up to 1080p. But apparently there's issues getting HDMI encoders without a HDMI license, due to the mandatory content protection rubbish. DVI doesn't have that restriction and...
  35. J

    Call to arms | Teensy + SDRAM = true

    The chips to convert RGB to DVI/HDMI seem surprisingly rare. There's a couple from Analog Devices but they're fairly expensive. Most projects seem to go for an FPGA instead.
  36. J

    Deport USB port to the case

    The USB Host port on the Teensy 4.1 uses an extra chip to protect against ESD (among other things).
  37. J

    Call to arms | Teensy + SDRAM = true

    Not without an external encoder, the pins aren't fast enough to do TMDS (like the pi pico can) to output DVI directly.
  38. J

    attachInterrupt priority clarification

    If multiple interrupts have the same priority the lower numbered one will execute first.
  39. J

    attachInterrupt priority clarification

    Interrupts can pre-empt other interrupts that have lower priority, otherwise they have to wait until the current interrupt has finished.
  40. J

    TeensyDAQ: Communicating experimental data over USB

    Start of Frame doesn't indicate arrival of data, it just indicates a new bus cycle. This occurs every 125ms for high speed devices. Even if it did, incoming data may not necessarily be for the serial interface; it may be for a different endpoint (e.g. a control transfer or one of the other...
  41. J

    TeensyDAQ: Communicating experimental data over USB

    There's no default implementation of the serialEvent functions because they're weak symbols; they don't exist unless the user program implements them. If you do implement them, the yield() function (executed when loop() returns and in a few other places) will check for pending data and call...
  42. J

    Call to arms | Teensy + SDRAM = true

    I have an OV2640 that can do 1600x1200... it also does onboard MJPG compression, so the framerate isn't absolutely terrible at high resolutions. Supposedly the CSI can handle this. Currently don't have any way to connect it to the devboard though since it's designed for an ESP32.
  43. J

    T4.1: DMA for asynch memory copy from EXTMEM?

    It does. DMA can access anywhere the CPU can (besides the CPU cache - which isn't directly addressable anyway). Start with a DMASetting instance, set the misc settings that aren't going to change between calls. For the actual transfers use a DMAChannel instance (which allocates a channel...
  44. J

    Arduino 2 - serial port disappears

    You have to set the pin mux (IOMUXC_SW_MUX_CTL_PAD_GPIO_*) and the pin pad configuration (IOMUXC_SW_PAD_CTL_PAD_GPIO_*).
  45. J

    Call to arms | Teensy + SDRAM = true

    If the only thing being changed is the location of the pixel buffer (DMAMEM vs SDRAM) so all the other code is exactly identical... maybe it's those BMCR0/BMCR1 register settings causing reads/writes to happen in the wrong order?
  46. J

    Call to arms | Teensy + SDRAM = true

    Does the camera deliver YUV data (rather than RGB) ? It looks like chroma/UV values are being significantly rounded somehow.
  47. J

    Call to arms | Teensy + SDRAM = true

    Another idea occurred to me while I was digging through old VGA cards looking for a DAC. It was pretty common for video cards "back in the day" to have a VESA feature connector. They were mostly intended for connecting to accelerator cards, which would overlay their 3D rendering on the 2D frame...
  48. J

    Call to arms | Teensy + SDRAM = true

    It doesn't. The USB Host library resets the port and replaces the interrupt handler.
  49. J

    Call to arms | Teensy + SDRAM = true

    Yes it works just like the Teensy 4.1 host port. Except I'm very careful not to hot plug since there's no protection IC.
  50. J

    Call to arms | Teensy + SDRAM = true

    I sent a pull request for cores to support multiple startup hook functions: https://github.com/PaulStoffregen/cores/pull/734 The reason I need this is because both the SDRAM library and a threading library that my USB Host implementation uses, rely on overriding startup_middle_hook(). Without it...
Back
Top