Let's be clear: You CAN NOT collect and plot data faster than about 300 samples per second and plot it in real time. Neither the IDE plotting routines nor the human visual system can respond to more than about 30 data frames per second. You...
Perhaps to keep the USB transfers as efficient as possible, create two 2D buffers
Each buffer will store timestamps and readings.
You can read as fast as needed using the ADC libraries built in quad timer, then just switch buffers when one is...
I can only assume here:
Your function gen is generating a sine wave that goes from +3v to -3v
The teensy ADC cannot read negative voltages, the pin can go as low is -0.5v from what I recall.
You need some conditioning circuit on the input of A0...
Ok folks. While testing what I had with different size images than the flexio_teensy_mm found that there were several issues with rotation and scaling. So for the past few days been working on resolving those issues and finally found the...
Soon I will be out again doing more yard/garden work...
But thought I would mention that I wanted to get all of the cameras to work on T4.1 on the CSI pins, that worked on the Micromod with
FlexIO. The main problem child is the Arducam HM01b0...
Quick update, I am now actually capturing some of the JPG images using DMA :D
More or less along the line I mentioned. A few wrong turns here and there but the
MATCH shifter finds the match, and it's callback enables the main shifters Interrupt...
Would agree as long as the edge pin connectors are suitable to add a adapter on top it would be better. This is the adapter I made for the sdram board (note positions are off for the display and camera - have to move them fo the next iteration).
Ok all been at it some more with trying out scaling and rotation took most of yesterday to figure out.
Did find that just using a macro to set the corners never changed the actual registers so initially things were screwy, so added a function to...
The PXP can be very useful for some applications. A little over 3 years ago, I used it to manipulate images for a slide show app. The PXP made possible things like fade-in, fade-out, moving transitions, and Ken Burns effect (combination of...
The only real problem with on-screen rotation such as the ILI9341/9488 is that while we can rotate by changing the MADCTL register on the display, the actual pixels are still displayed in portrait mode, top to bottom (bottom being where the...
@KurtE the partial output buffers only work with the eLCDIF handshake.
The only way to use this on a non SDRAM Teensy is to use one screen size source buffer and two partial destination buffers
I was able to rotate a landscape frame generated...
Have to swap the values for the OUT_LRC register - didn;t register (pardon the pun) that this was different than PXP_OUT_PS_LRC. PXP_OUT_LRC appears to set the display LRC, hence the need for:
if(r == 0 || r == 2) {...
Got it !!! Found it by accident:
solution:
void pxp_rotation(int r) {
if(!pxpStarted) {
Serial.println("You forgot to start PXP, use 's' to start.....");
} else {
memset((uint8_t *)d_fb, 0, sizeof_d_fb);
PXP_rotate_position(0)...
I had a very had time with the rotation. But eventually got it working using a frame sized destination buffer and two 1/10th source buffers - not a standard implementation at all.
With SDRAM can go full sized frame buffers and let it do its...
Trying to figure out how PXP works but it is giving me a headache - I posted something on the PXP thread. Trying to figure out how scaling works to say downsize an image. But all in good time - examples are few and far in between
Know this is more than a year later but started playing with the PXP library using a OV5640 camera. The basic setup is:
1. ILI9488 on SPI using ILI9488_t3 library
2. Framesize = 480x320 (HXGA) yes this works.
3. Framebuffers setup in the...
Here's the problem
For Rotation 0 - seems to be working but image is not centering as specified in the writeRect function
Rotation 1 - notice it draws it on the top have of the screen as what looks like a wrapped image:
Rotation 2 - see...
Well it's pretty much finished. Modified the SDRAM Dev board /RD signal to use manual pulse generation. Bus speeds are about the same as the T4.1:D The FlexIO /RD signal generation seems to have been the main issue for stability. It kind of makes...
Just realized pin AD_B1_03 isn't routed so the board doesn't have SPDIF_IN... could we add that to the list for gen5? With Kurt's additions that would complete all of the AD_B1_XX pins which make up consecutive halves of GPIO1 / FlexIO3.
You will get a faster WR pulse if you use direct port manipulation and some NOPs to delay, but, it won't be easy to control the speeds.
That's where the FlexIO timers and shifters have the advantage.
Unless you have a WFI (Wait For Interrupt) instruction somewhere in your code, adding or removing interrupts shouldn't change power dissipation significantly. Adding more peripheral devices to your program can increase power dissipation if...
@mborgerson that's not a bad idea at all.
I can also spare the interval timer and just add an else{} to if(fftindex < FFTBUFFERSIZE) and change the histogram buffer in the ADC interrupt
The only real reason I was thinking of going DMA route is...
I'm not sure you need to add the complexity of DMA to do this. If 25000 samples (what you get at 250K sampling for
1/10th second), you only need 50KBytes for the ADC samples. You could put those in DMAMEM, standard ITCM or in EXTMEM, if you...
So I am looking at more options on signal analysis and I have some code that fills a histogram buffer and calculates mean, standard deviation and kurtosis
It works well, but its all interrupt based, and I also want to do some FFT on the samples...
I think which new pins could/should be added to support has been shown now in a few threads including:
Question, what do you mean by complete? That is I have not seen what I would consider a complete one for DB4 or DB4.5. That is one
that...
I received my 74LVC245 chips and had some fun wiring this rat's nest up:
This took care of the bad image when loading from FLASHMEM. Both FLASHMEM and SDRAM are working using 8-bit DMA. The image is correct and repeatable at 20MHz. I only...
@mjs513 I think the PXP can help you with the color conversion, and it might be faster as well. But either way it will be done async and won’t require any CPU for it.
Was playing around jpegdec library and did a comparison of using PROGMEM vs SDRAM (running at 198Mhz)
FLash TEST
full sized decode in 28350 us
half sized decode in 21260 us
quarter sized decode in 7320 us
eighth sized decode in 6104 us
SDRAM...
Sorry, I did not go all the way up on the SS to those pins... I have now...
Exactly.
Pushed up current version to fork of defragsters github project and issued PR
https://github.com/Defragster/EVKB_1060/pull/1
LCDIF, CSI, and PXP all have their own masters. Their priorities (against each other) are controlled by the SIM_MAIN NIC registers. The documentation hints that LCDIF has a bunch of cache memory tucked away inside of it, that isn't directly...
@KurtE the dev board has all the eCLDIF pins exposed. Starting from B0_00 to B1_13 I believe.
I posted here a few weeks back that I got it working on a 24 bit display with SDRAM.
I find it odd that SDRAM is not working well with FlexIO & DMA..
On the original version of the devboard, @Dogbone06 has just standard T4.1 PSRAM, and I was able to use a frame buffer in there with my Micromod 8080 library without any issues...
We finally have DMA working properly on the MicroMod and presumably the SDRAM Dev Board (not tested yet). My MicroMod quit while testing the 8080 mode for the ER-TFTM101-1 display. Had to reposition the MCU board in the connector. It's working...
I think it might have more to do with the ER-TFTM101-1 display as I am using the same length wires as well. I do not have any other displays to test with...
@wwatson echoing @mjs513 - great work getting the driver ported to the different boards!
FlexIO is a bit confusing at first, but the 8080 stuff is fairly simple to setup and debug compared to other protocols.
The place it gets messy and really...
Note: that is simply a print to pdf of one of the pages in the excel document:
https://github.com/KurtE/TeensyDocuments/blob/master/Teensy4x%20Pins.xlsx
Note: @mjs513 did a modified version of this that I think is in @defragster github project...
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...
@KurtE can we get an original excel copy of this so that we can edit it?
https://github.com/KurtE/TeensyDocuments/blob/master/Teensy4%20MicroMod%20Pins.pdf
A couple of questions and things I am playing with...
With the 4.5 and SD adapter: guessing you used SDIO pins? (Same ones as defined for Micromod?) of if SPI which IO pins?
CSI pins - I am in the process of integrating in some CSI support...
@KurtE and I have been at it again. This time creating a library that supports a number Arducam/Arduino camera modules:
Model
FrameSizes
Pixel Formats
Omnivision OV2640
FRAMESIZE_VGA //640x480
FRAMESIZE_QQVGA, // 160x120...
So I decided to make a facelift, adding SDCARD and USB-PD which supports the PD protocol up to 12V. There are pads to solder if you just want to use the second port as a pass through with 5V. Meaning, it will deliver the same 5V coming into the...
I did not bring out any special ports. All that was done was SDCARD and USB-PD. But ofc we can keep going and make a gen5 that has more stuff. But it needs coordinating, Rezo and KurtE together could make a full pin mapping, that would be ideal...
It's hard to troubleshoot these things online, but can yo do a simple test with a logic analyzer? similar to what I did here?
We need to verify that the data is being sent out in the correct order.
The DMA is set up specifically to accept a 16...