J
Reaction score
138

Latest activity Postings About

    • J
      jmarsh replied to the thread Freertos with teensy 4.0.
      printf is (as is any access to stdin or stdout) assuming the proper newlib hooks have been implemented (which they have). Serial.printf and other Serial member functions are completely different.
    • J
      jmarsh replied to the thread Freertos with teensy 4.0.
      You are not checking the values returned by xTaskCreate(), start by doing that.
    • J
      My main question would be, what do you even need the Teensy/Arduino pin numbers for when writing code for modules like CSI and FlexIO? You can use IOMUXC_SW_MUX_CTL_PAD_GPIO_x and IOMUXC_SW_PAD_CTL_PAD_GPIO_x to initialize them (which works...
    • J
      You have B1_12 and B1_15 available for pixclk and mclk. I would recommend using the pins shared with FlexIO2 wherever possible (for example hsync and vsync are on B1_14 and B1_13), since that's better at handling variable-length (compressed)...
    • J
      Most of those pins are already there, iirc the only missing ones were some of the data pins around CSI 2 to 5.
    • J
      Try this: extern "C" const uint8_t usb_config_descriptor_480[]; extern "C" const uint8_t usb_config_descriptor_12[]; const uint8_t bMaxPower_480 = usb_config_descriptor_480[8]; const uint8_t bMaxPower_12 = usb_config_descriptor_12[8]; void...
    • J
      I can see how this is useful for supporting the existing different boards (4.x vs. micromod) that redefine arduino pin numbers to different IMXRT pins but I don't see how it would help with custom boards due to this: if (pin >...
    • J
      The SDRAM_EXTMEM github repository is the same (alternative to mjs513's) repository that I've been working all along, because I prefer the different initialization method (using startup_middle_hook without needing to be explicitly called) and the...
    • J
      Pushed the "DCD" intialization example to github: https://github.com/A-Dunstan/SDRAM_EXTMEM/tree/master/examples/DCD_Init The magic is in dcd.cpp: DeviceConfigurationData is basically a uint32_t array of registers and values to be put in them...
    • J
      Correct me if I'm wrong but the Uno uses 5V? Do not connect 5V signals to the Teensy! It can only handle 3.3V and will be permanently damaged.
    • J
      No. The OV2460 runs off three different voltages: 2.8V for the analog sensors, 1.2V for the core and 3.3V for the I/O portion. The ArduCam boards have two regulators on the back to generate the lower voltages from 3.3V but I just have the camera...
    • J
      Was hoping you'd included the voltage regulators for the OV2640's additional requirements... you don't want to see the mess I've got with LM317s.
    • J
      You can manually change the FlexRAM config (in the linker script) to assign some of the 512KB to OCRAM2, which exists in memory directly after regular OCRAM (DMAMEM)... effectively enlarging it.
    • J
      Made an interesting discovery: it's possible to initialize the SDRAM even before any code gets executed, by filling out a DCD (Device Configuration Data) struct. The ROM processes it and takes care of programming all the SEMC registers when the...
    • J
      Doesn't the LUT need to be unlocked to modify commands? Or is it just left unlocked forever after startup (which kind of defeats the purpose of it being lockable...)?
    • J
      The FS class, designed as an interface to be implemented by a derived class, has no virtual destructor. If an address of a derived class object is cast down to FS* and deleted, the destructor of the derived object will not be called. This makes...
    • J
      GCC has an annoying habit of throwing warnings about ABI changes, e.g. this simple code: #include <vector> std::vector<uint64_t> foo; void setup() { foo.push_back(42); } void loop() {} will produce these warnings: In file included from...
    • J
      syscall::halt() was literally just: while (1) yield(); I don't see any reason for this to exist as an exposed function in any library.
    • J
      I'm not really sure why this is necessary? Both boards have B1_12 & B1_13 and they're not referred to by Teensy pin number (only their pin matrix code and FlexIO ID), so making them dependent on the platform doesn't make much sense to me...
    • J
      jmarsh reacted to WMXZ's post in the thread Schematic different with Like Like.
      @AndyA. The prev message (WillimamsimC) seems ChatGPT generated an should, MHO, be considered Spam
    • J
      That doesn't show much except that the Teensy has been permanently damaged, the voltage regulator has failed / shorted.
    • J
      I also tried getting the monitor's EDID info over DDC (which is just I2C), to auto-choose the best resolution... turns out VGA monitors have 5V pull-ups built-in meaning voltage shifters are needed, and mine didn't want to work properly at the...
    • J
      I ended up just "brute forcing" the pin mux initializations using the IMXRT pin names, so it doesn't matter what their Teensy pin numbers are: IOMUXC_SW_MUX_CTL_PAD_GPIO_B0_02 = 4; // FLEXIO2_D2 RED IOMUXC_SW_MUX_CTL_PAD_GPIO_B0_01 = 4; //...
    • J
      So it's returning a value when the "if" statement is true. But when it's false, all that code gets skipped and the function ends without returning anything. It needs to return something in both cases.
    • J
      'byte RTC_WriteByte(int, byte)' means the function should be returning a byte value. There is either no return statement before the end of the function, or there is only "return;" with no value, or the function definition should be changed to not...
    • J
      Viewable with a third-party program... not exactly web-friendly. Then something is wrong. Every Teensy 4.x ships with a card that labels VIN as "3.6 to 5.5 Volts". The main voltage regulator is probably underpowering the IMXRT, causing reverse...
    • J
      My understanding is that it will use DMA by default as long as the source/destination buffers are suitably aligned, which I assume you've taken care of (since otherwise the speed would be reduced/cpu utilization would be increased). I think SdFat...
    • J
      This sounds all sorts of wrong. VIN is meant to be 5V and it should be the only way the Teensy is powered - do not attempt to feed in 3.3v to the Teensy's 3.3v pins. (The diagram you have attached is too blurry to be readable.)
    • J
      That's a little bit concerning because I wonder how you are going to tell the sticks apart (e.g. which one to interpret as "left" and which one as "right") without relying on which ports they are connected to. The obvious way would be if they had...
    • J
      The ARM cache isn't the issue. Both the USB Host controller and the SD controller use DMA, the data never goes through the CPU.
    • J
      I didn't realize this was a recent change to Teensy's code, I thought it was a change in compiler behavior (from upgrading gcc) that didn't get picked up until now. I guess reverting to char* would bring the warning back with LTO?
    • J
      I had a quick look, I think I know what the cause is but I'm not sure of a few details. If you look at the memory allocated immediately before the ClocklessController there should a 4-byte guard variable. Guards are generally used for local...
    • J
      True, I'd imagine pretty much every program would be dying on the 3.2 if that were the case.
    • J
      Incorrect data being written to PSRAM shouldn't be happening under any circumstances. The USB Host controller has its own internal buffers and won't initiate read transactions from devices if they're full (due to not being able to flush to RAM...
    • J
      What about the stack? I'm not familiar with the memory layout on Teensy 3.x so clutching at straws a bit, but consider: This post says it is possible to call init() but then the call to addLeds never returns, presumably because the call to...
    • J
      This has come up a few times recently with PlatformIO. It seems the toolchain they include (specifically the libstdc++ library) isn't built properly to work with Teensyduino overriding the default new/delete functions. Edit: Actually, I remember...
    • J
      I suspect this sustained speed may simply be too fast for the PSRAM chip to constantly maintain. At the default clock speed of 88MHz, 30MB/s is the rough upper sustained limit for mixed reads and writes. There are a couple of simple options for...
    • J
      I would start by checking what other software is installed on the windows 11 machine - specifically things like virtualization software (e.g. vmware, hyper-v based products), third-party anti-virus or even wireshark, anything that can hook into...
    • J
      What if you put that same code (to dump the vtable address and init function pointer) in the ClocklessController constructor? Since we've seen that constructor is being executed, and it's where the relevant vtable should be getting assigned to...
    • J
      Given init() is a virtual function, maybe try printing its address to see where it's pointing (just before calling it) - may require a bit of gcc-specific hackery since taking the address of a virtual function isn't really defined behaviour...
    • J
      Are you sure this is really done dynamically when multiple sticks are connected? It doesn't seem possible since a device shouldn't be able to know what other devices are connected to the host, especially so if they're connected to different root...
    • J
      Regardless of fixing the crash in followup_Error() you're still going to be facing the problem that a transfer is failing/stalling when it shouldn't be, which will likely cause the controller to not be recognized. Given that it seems to operate...
    • J
      jmarsh replied to the thread USB Serial.rts() and Serial.dtr().
      Are you perhaps getting them confused with CTS and DSR?
    • J
      PlayMode::myNoteOn is a member function so you can't use it as a callback like that... I'm surprised it even compiles without an error. Edit: my mistake, didn't see that it was static... you've declared the synth object inside setup(), as soon...
    • J
      jmarsh replied to the thread Teensy 4.1 serial USB crash.
      I would strongly recommend reading 5 bytes at a time (one complete packet) rather than reading as much as possible and then parsing it in chunks of 5. Otherwise there's likely to be a split packet due to usb transfer boundaries that will throw...
    • J
      jmarsh replied to the thread Generating a Clock at 20 MHz.
      That's the CPU clock. The main peripheral clock is (typically) 150MHz, regardless of the chosen CPU speed.
    • J
      Wouldn't that be too large for VIN though? The ATP schematic says "VIN Range 2.2-6.0V". If you were using your own carrier board (with a different voltage reg.), you could just use different divider resistors.
    • J
      jmarsh replied to the thread High temperature shutdown T4.1.
      It's not all commented out - it calls unused_interrupt_vector() which (ultimately) restarts the Teensy.
    • J
      What I'm wondering is why would Sparkfun connect the pin that way (on the micromod) in the first place though? Since it can't be used as a regular IO pin if it's hardwired to a constant voltage... nor can it be used in analog mode to monitor VIN...
    • J
      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...
  • Loading…
  • Loading…
Back
Top