Espressiv API without FreeRTOS

ESP_Sprite
Posts: 9739
Joined: Thu Nov 26, 2015 4:08 am

Re: Espressiv API without FreeRTOS

Postby ESP_Sprite » Sun Oct 02, 2022 12:55 am

If you need one bit, you can also use I2S in the non-parallel mode; it'll serialize it and dump it into memory for you. 10MHz should be doable for it.

mvaragao
Posts: 5
Joined: Mon Sep 12, 2022 5:04 pm

Re: Espressiv API without FreeRTOS

Postby mvaragao » Tue Oct 04, 2022 1:16 pm

I apologize if I keep using this post to talk about a problem that is not the initial topic.
I don't really know the rules of this forum and why I'm not allowed to create a specific post about my question.

I'm developing a product that reads the R channel from a VGA interface and it doesn't matter the analog level, just 0 or 1, using a comparator to do so.
Both vertical and horizontal sync signals are used to generate interrupts and this is working fine, to capture a monochrome frame.
But I need is to increase the sampling rate.
The maximum I could get with the code below was 160 pixels wide.
Is there a way to use I2S to get faster sampling around 20MHz?
Another possibility would be to use assemby to capture the bits, a language that I'm easy to use, but I haven't found a way to implement it into C code as ASM { nop; } for example.
Here is the code I currently use and atached an image of a capture:

Code: Select all

void IRAM_ATTR sync_horizontal() {
  noInterrupts();
  if ( vsync_line>2 && vsync_line<7  ) {
    for ( pos_array=0; pos_array<160; pos_array++ ) {
      mem[lyne_horizontal+(pos_array>>3)] |= ((GPIO.in >> 4) & 0x1)<<(8-pos_array&7);
    }
    line_horizontal += 20;
  }
  interrupts();
}
Attachments
forum.jpg
forum.jpg (28.1 KiB) Viewed 1572 times

ESP_Sprite
Posts: 9739
Joined: Thu Nov 26, 2015 4:08 am

Re: Espressiv API without FreeRTOS

Postby ESP_Sprite » Wed Oct 05, 2022 1:23 am

Yep, I2S goes up to 80MHz, so 20MHz should be a piece of cake.

Who is online

Users browsing this forum: No registered users and 109 guests