0577: Arduino DUE Cortex M3 32bit - Generazione sinusoidi con DAC integrato

แชร์
ฝัง
  • เผยแพร่เมื่อ 8 พ.ย. 2024

ความคิดเห็น • 49

  • @PierAisa
    @PierAisa  4 ปีที่แล้ว +3

    ATTENZIONE: Grazie a Davide Dellapasqua, che se ne è accorto. Segnalo un errore nei cicli for : ho dimenticato il

  • @leonardogambaretto4905
    @leonardogambaretto4905 4 ปีที่แล้ว

    Sempre grazie mille Pier , certo è un mondo affascinante tutto da scoprire per me 👍☺️👋

  • @iw0hex
    @iw0hex 4 ปีที่แล้ว

    Complimenti Pier, seguo sempre con grande interesse. Un abbraccio. 73, Pasquale IW0HEX

  • @moscje
    @moscje 4 ปีที่แล้ว

    Grandissima lezione.

  • @albertomora4462
    @albertomora4462 4 ปีที่แล้ว

    Finalmente qualcuno parla in modo professionale ed approfondito del super Arduino DUE!!! Bravo Pier, tema super interessante.

    • @PierAisa
      @PierAisa  4 ปีที่แล้ว +1

      Grazie, anche se meriterebbe tanto spazio in più quel Cortex ... ci rifaremo con i prossimi video anche sulla mia schedina MicroPierino32 :-)

  • @MarcoRizzinelli
    @MarcoRizzinelli 4 ปีที่แล้ว

    Grazie! Cadrò dal pero dato che non sono elettronico di formazione, ma volevo dire che è fantastico come la misura diretta del periodo dell'onda sia ancora importante perché quella automatica non fornisce valori stabili. Ecco un elemento molto importante per me che sono alle prime esperienze con l'oscilloscopio. Altri video così con arduino e oscilloscopio pleaseee sia per digitale che analogico :)

    • @PierAisa
      @PierAisa  4 ปีที่แล้ว +1

      Ciao, forse la conosci già, ecco la mia video list. Cerca con parole chiave oscillo arduino misura pwm forse troverai dei video che fanno a caso tuo www.pieraisa.it/opensource/Channelvideolist.php

  • @ifaber68
    @ifaber68 4 ปีที่แล้ว

    Come sempre super esaustivo. ...Le basi per la sintesi digitale :-)

  • @pacomassa1379
    @pacomassa1379 4 ปีที่แล้ว

    Bello come sempre Piero! ☺✌

  • @MarcoFranceschini1971
    @MarcoFranceschini1971 4 ปีที่แล้ว

    Presente...

  • @lucianodipaolo2428
    @lucianodipaolo2428 4 ปีที่แล้ว

    ottimo tutorial ......

  • @marcomilanese598
    @marcomilanese598 4 ปีที่แล้ว

    Fantastico!
    Come posso fare un foglio di calcolo come il tuo ma per un'onda triangolare?

    • @PierAisa
      @PierAisa  4 ปีที่แล้ว +1

      Guarda qui avevo creato l'onda triangolare per ricostruire il PWM in Excel th-cam.com/video/EcitbW0OPGw/w-d-xo.html

  • @leonardochiruzzi7642
    @leonardochiruzzi7642 4 ปีที่แล้ว

    Bene, oramai appare evidente che la generazione della forma d'onda debba essere affidata a qualche altro sistema, visto che neanche un 80Mhz riesce ad impressionarmi. Per ora mi concentrerò sul generatore vecchio stile (con gli operazionali) e quello DDS lo riprenderò non appena avrò recuperato maggiori informazioni. Grazie Pier per il video

    • @PierAisa
      @PierAisa  4 ปีที่แล้ว +2

      Ciao Leonardo, dipende sempre che requisiti ha il sistema di generazione e che tecniche si possono sfruttare. In questo semplice video volevo mostrare la risoluzione a 12 bit. Potremmo apporfondire il discorso con la tecnica DDS, con integrati dedicati o con artifizi software :-)

    • @leonardochiruzzi7642
      @leonardochiruzzi7642 4 ปีที่แล้ว

      @@PierAisa Sarebbe fantastico. Tra l'altro io ho acquistato tempo fa un AD9850 proprio per ottenere un generatore DDS da 0-40MHz, per cui avevo pensato a un STM32 che mi generasse matematicamente la forma d'onda e che la "riversasse" in una memoria. Quest'ultima verrebbe "spazzolata" usando un contatore binario ed inviando i dati letti al mio DAC. Ho anche recuperato un display di fotocopiatrice a matrice di punti veramente notevole, per cui verrebbe una bella realizzazione.

    • @sandrogugle4940
      @sandrogugle4940 4 ปีที่แล้ว

      ​@@PierAisa spero di vedere presto video su tecniche DDS "con integrati dedicati o con artifizi software", i like arriveranno a go go!!! :)

  • @MarcoFranceschini1971
    @MarcoFranceschini1971 4 ปีที่แล้ว +1

    Incongruenze tecnologiche...in orgine uno dei dettami delle ISA RISC (e spesso fino a tutti gli anni '90 del ventesimo secolo, motivo anche di vanto da brandire) era proprio il numero relativamente ma in sostanza, "ridotto" di codici operativi associati ad altrettante istruzioni con relativi, pochi, modi di indirizzamento e grande numero di registri con le gloriose architetture MIPS, ARM ecc. ecc. Ricordo benissimo però in una trasmissione televisiva che vedevo in Toscana su RTV38 ed andava in onda, quasi ovviamente da Milano un intervento dell'allora responsabile stampa Intel per la presentazione delle cpu Intel, teoricamente CISC Pentium (post noto bug sulla istruzione di divisione FDIV). Allora Pentium cercava di contrapporsi con buoni risultati versante istruzioni al secondo intere, meno per quelle in virgola mobile contro mostri come Alpha ad esempio della Digital. Ebbene all'epoca il suddetto rappresentante disse chiaramente che all'aumentare delle possibilità microelettroniche di integrazione di transistor (MOSFET) su singola scheggia di silicio (aborro l'anglofilia esasperata), i RISC ed i CISC sarebbero andati incontro ad un processo di convergenza. Con i CISC che avrebbero avuto sistemi di traduzione "al volo" in microistruzioni simil-RISC (verificato questo a partire dal Pentium PRO) ed i RISC che avrebbero perduto il loro vantaggio temporaneo con aumento paradossalmente del numero di istruzioni per sopperire al numero esagerato richiesto per completare ciò che una istruzione di una ISA "complessa" portava a termine.

    • @PierAisa
      @PierAisa  4 ปีที่แล้ว +1

      Grazie Marco per l'interessante dissertazione !!!

    • @MarcoFranceschini1971
      @MarcoFranceschini1971 4 ปีที่แล้ว

      Grande Pier...a locale Computer Discount a Lucca mi ricordo comperai opsculetto tecnico proprio sul processore Pentium che ho e proprio con i "discorsi" fatti in trasmissione.

  • @fabriziobrutti1205
    @fabriziobrutti1205 4 ปีที่แล้ว

    Ciao Pier!!
    I tuoi video sono un'ottimo modo per iniziare la giornata!! 😃
    Stj usando Arduino uno è ho scoperto da poco il metodo di comunicazione I2c..... Esiste un DAC che supporti l'I2c e/o un modo per pilotarlo con tale metodo (sempre usando l'arduino uno)?
    Grazie e tanti saluti 👍

    • @PierAisa
      @PierAisa  4 ปีที่แล้ว

      Buongiorno ! NE esistono tanti, ma per Arduino ti consiglio la MCP4725 Breakout Board

    • @fabriziobrutti1205
      @fabriziobrutti1205 4 ปีที่แล้ว

      @@PierAisa ok grazie mille del consiglio!!
      20:53 .....ecco la risposta al quiz del microcon!😂😃
      Comunque è interessante ciò che si ottiene con la tabulazione a char di 8 bit letti da un DAC che se ne aspetta 12...

    • @PierAisa
      @PierAisa  4 ปีที่แล้ว

      @@fabriziobrutti1205 esatto stavo preparando questo video proprio il giorno prima di MicroCon e lo ho usato come quiz ... la saturazione dei dispositivi digitali ha delle interessantissime proprietà matematiche, che si possono sfruttare, ma questo lo vedremo più avanti

    • @fabriziobrutti1205
      @fabriziobrutti1205 4 ปีที่แล้ว

      @@PierAisa ok bene!!!

    • @davidedellapasqua2
      @davidedellapasqua2 4 ปีที่แล้ว

      @@fabriziobrutti1205 Credo il problema stia nel fatto che il compilatore invece di troncare i LSB tronca i MSB del dato a 12 bit, quindi si perde gran parte della dinamica e la ricostruzione salta da un punto all'altro senza senso

  • @FRANCOSUM
    @FRANCOSUM 4 ปีที่แล้ว

    Ciao Pier ...vorrei esporti un problema di un generatore elettrico voltaggio e frequenza...dove posso contattarti?grazie

  • @lamiaterra9477
    @lamiaterra9477 4 ปีที่แล้ว +1

    Bellissimo video :)
    Per richiesta, possibile un video riepilogativo sulla trigonometria "di base" (finalizzata all'elettronica ovviamente)?
    Chiedo perché avendo fatto scuola di elettronica tanti anni fa riconosco i concetti ma fatico a ricordarne l'applicazione (e personalmente odio applicare formule a pappagallo senza capirne appieno il motivo).
    Grazie!

    • @PierAisa
      @PierAisa  4 ปีที่แล้ว +1

      Bella idea. Ultimamente se non ricordo male il video che cominciava a parlare un po' più in dettaglio della generazione almeno della funzione seno è questo th-cam.com/video/GqghJ1M6gTc/w-d-xo.html

  • @davidedellapasqua2
    @davidedellapasqua2 4 ปีที่แล้ว

    Perchè hai scritto unsigned char invece di unsigned int quando definisci l'array della sinusoide a 12 bit?
    Nel ciclo for il controllo dovrebbe essere su i

    • @PierAisa
      @PierAisa  4 ปีที่แล้ว

      Non so se hai seguito la conferenza MicroCon th-cam.com/video/_EEz3_3K2ZY/w-d-xo.html . Abbiamo fatto un QUIZ che riguardava la rappresentazione non corretta di una grandezza a 12bit .... volutamente. Ok ho dimenticato il

    • @davidedellapasqua2
      @davidedellapasqua2 4 ปีที่แล้ว +1

      @@PierAisa Sì l'ho vista ;-). Allora ok se era un errore voluto. Sì o scrivi i

    • @PierAisa
      @PierAisa  4 ปีที่แล้ว +1

      @@davidedellapasqua2 Era voluto, perchè nel QUIZ abbiamo fatto vedere i segnali a pezzi di sinusoide dovuti al troncamento e non era così ovvio, capirne la causa ...

  • @giovanni.roberto
    @giovanni.roberto ปีที่แล้ว

    Ciao Pier. Ormai è ovvio che bisogna generare la sin esternamente, ma perché non farla calcolare da Arduino preventivamente nel setup? Così poi metterli nell'array

    • @PierAisa
      @PierAisa  ปีที่แล้ว

      una bella sinusoide tabulata

    • @giovanni.roberto
      @giovanni.roberto ปีที่แล้ว

      @@PierAisa bisognerebbe solo capire quanto tempo ci mette all'avvio. Ma non credo sia esagerato. Devo provare con un arduino poco potente come un nano

  • @siriokds
    @siriokds 4 ปีที่แล้ว

    Ciao Pier. Mi spieghi perché per plottare 1024 valori, fai un ciclo for tra 0 e 1022?

    • @PierAisa
      @PierAisa  4 ปีที่แล้ว +1

      perchè andavo un po' di fretta e ho commesso un errore. Grazie per la segnalazione che poi ho messo in un commento in evidenza :-D

    • @siriokds
      @siriokds 4 ปีที่แล้ว

      @@PierAisa Ah ok. Non volevo fare il professorino ma mi sfuggiva qualcosa. 😁

  • @ivanomatrisciano3828
    @ivanomatrisciano3828 4 ปีที่แล้ว

    Ciao Pier!
    Prova con:
    register unsigned int i = 0;
    analogWrite(DAC0, sine1k[ i++ % 1024 ]);
    Sarà più vicina alla velocità dell'assembler? Solo l'oscilloscopio saprà rispondere!

    • @PierAisa
      @PierAisa  4 ปีที่แล้ว

      Ottima osservazione !! Di sicuro più efficiente della mia scrittura di primo pelo

    • @siriokds
      @siriokds 4 ปีที่แล้ว

      Ciao Ivano, sarà efficiente se il compilatore tradurrà il tuo codice in: sine1k[i++ & 1023]

    • @ivanomatrisciano3828
      @ivanomatrisciano3828 4 ปีที่แล้ว

      @@PierAisa A tal proposito ti consiglio questo sito godbolt.org/ che mostra in tempo reale il codice assembler generato da un compilatore C. Proprio grazie a questo strumento ho notato che la variabile i veniva messa sullo stack, quindi ho specificato la keyword "register". In più, scegliendo i come unsigned vengono generate un paio di istruzioni in meno, probabilmente questo ha a che fare con l'operatore modulo

  • @paolof.7051
    @paolof.7051 4 ปีที่แล้ว

    Sul mio camper ho una parabola con la ricerca della posizione manuale, nel senso che devo ruotarla seguendo un'indicazione approssimativa e aiutandomi con il suono di un cicalino per centrare il satellite. Voglio realizzare una bussola digitale da applicare alla base dell'antenna in modo da avere su un display la giusta posizione in gradi. Per l'elevazione la cosa e' piu' semplice, visto l'antenna ha gia' un display che me la visualizza. Per fare questo ho acquistato su Amazon un Modulo sensore magnetico a 3 assi, un nano Arduino e un display 2x16. Mio figlio si occupera' del software. Ci riusciro' ?

    • @PierAisa
      @PierAisa  4 ปีที่แล้ว

      Ne sono sicuro, 73 de IZ4OXX