Giter VIP home page Giter VIP logo

Comments (4)

sehraf avatar sehraf commented on June 19, 2024

SPI0/1: GPIO12-17 are usually used for SPI flash and PSRAM and not recommended for other uses.

https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/api-reference/peripherals/gpio.html

from esp-idf-hal.

jessebraham avatar jessebraham commented on June 19, 2024

I have some changes that I'll be PRing soon making a few small small corrections in the GPIO module. During my time digging through the various datasheets, I realized that all of the chips have a range of GPIO with the same recommendation made:

"The pins used for embedded flash are not recommended for other uses.".

I have listed the applicable pins below:

Chip GPIOs
ESP32 6 - 11, 16 - 17
ESP32-C3 12 - 17
ESP32-S2 26 - 32
ESP32-S3 26 - 32, 33 - 37*

* When using Octal Flash and/or Octal PSRAM

Presently these pins are unmapped when using the ESP32-C3, but for the remaining chips some or all of these pins are mapped. So my question is, do we want to:

  1. include all of these pins for every chip
  2. include none of these pins for for every chip
  3. include or exclude these pins on a per-chip basis

There also seem to be a number of unmapped GPIOs already for the ESP32, ESP32-S2, and ESP32-S3. I have not been able to find much information on why these are presently unmapped. Is there a specific reference which was used for these, or can they be added in as well?

from esp-idf-hal.

ivmarkov avatar ivmarkov commented on June 19, 2024

There also seem to be a number of unmapped GPIOs already for the ESP32, ESP32-S2, and ESP32-S3. I have not been able to find much information on why these are presently unmapped. Is there a specific reference which was used for these, or can they be added in as well?

I've just used a few sample boards as a reference without digging into the ESP32 data sheets

These pins were unmapped for that boards.
I know realize, that specific boards may not map some pins also due to missing space etc.

Given that modeling specific board layouts is not realistic, we should just map all of these missing pins.

Now, regarding what to do with the pins used for flash, I guess either (1) or (2), but definitely not (3).

I have a preference for (1) because if somebody wants to use those, I guess we should allow that, despite the strings attached?

from esp-idf-hal.

jessebraham avatar jessebraham commented on June 19, 2024

I've just used a few sample boards as a reference without digging into the ESP32 data sheets

These pins were unmapped for that boards.
I know realize, that specific boards may not map some pins also due to missing space etc.

Given that modeling specific board layouts is not realistic, we should just map all of these missing pins.

Sounds good, I will add all pins covered in the Pin Description sections of each datasheet.

Now, regarding what to do with the pins used for flash, I guess either (1) or (2), but definitely not (3).

I have a preference for (1) because if somebody wants to use those, I guess we should allow that, despite the strings attached?

I tend to agree, I don't feel it's our responsibility to hold people's hands too much. Breaking rules is fun sometimes :)

I have added comments in the source indicating the recommendations, and will add a note in the README as well. At least we'll have mentioned it.

from esp-idf-hal.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.