Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ESP32 ADC utilizzando il DMA #3521

Open
Claudio-293 opened this issue Oct 22, 2024 · 0 comments
Open

ESP32 ADC utilizzando il DMA #3521

Claudio-293 opened this issue Oct 22, 2024 · 0 comments

Comments

@Claudio-293
Copy link

Mi sta capitando una cosa strana, stranissima.
In un piccolo sketch leggo il valore ADC1 utilizzando il DMA in modo continuous tramite la funzione adc_continuous_read(...).
.....
adc_config.max_store_buf_size = 2048,
adc_config.conv_frame_size = 256,
adc_pattern[0].atten = ADC_ATTEN_DB_0;
adc_pattern[0].channel = ADC_CHANNEL_0;
adc_pattern[0].unit = ADC_UNIT_1;
adc_pattern[0].bit_width = ADC_BITWIDTH_9;
....

La cosa strana è questa:

  • su ADC_CHANNEL_0 tutto ok
  • sugli altri canali, ho provato tutti quelli che mette a disposizione ADC1, succede questo:
  • si leggono dei valori fuori range di questo tipo
  • ADC1_CHANNEL_3 restituisce valori da 12799a 12288 (la differenza è circa 512)
  • ADC1_CHANNEL_6 restituisce valori da 24576 a 25087(la differenza è circa 512)
    Cosa analoga, con valori crescenti, per gli altri canali.

Visualizzando a byte i valori letti si vede che:

  • il byte LSB è sempre corretto (da 0 a 255)
  • al byte MSB viene stranamente sommato un valore che corrisponde a:
    value (in hex) del ADC1_CHANNEL_x moltiplicato per 0x10
    Ad esempio, ADC1_CHANNEL_3 ha value 3, ad MSB viene sommato 0x30
    e così via per gli altri canali.
    L'unico che funziona è ADC1_CHANNEL_0 il cui value è=0.
    Qualche suggerimento
    Ho già ridotto all'osso lo sketch, se serve lo posto
    grazie
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant