Πίνακας περιεχομένων:

ATMega1284 Quad Opamp Box Effects: 4 βήματα (με εικόνες)
ATMega1284 Quad Opamp Box Effects: 4 βήματα (με εικόνες)

Βίντεο: ATMega1284 Quad Opamp Box Effects: 4 βήματα (με εικόνες)

Βίντεο: ATMega1284 Quad Opamp Box Effects: 4 βήματα (με εικόνες)
Βίντεο: PID demo 2024, Νοέμβριος
Anonim
Κουτί εφέ ATMega1284 Quad Opamp
Κουτί εφέ ATMega1284 Quad Opamp

Το Stomp Shield για Arduino από τα Open Music Labs χρησιμοποιεί ένα Arduino Uno και τέσσερα opamps ως κιβώτιο εφέ κιθάρας. Παρόμοια με την προηγούμενη οδηγία που δείχνει πώς να μεταφέρετε το Electrosmash Uno Pedalshield, έχω μεταφέρει επίσης το κουτί Open Music Labs Guitar Effects στο ATMega1284P που έχει οκτώ φορές περισσότερη μνήμη RAM από το Uno (16kB έναντι 2kB).

Σε σύγκριση με το προηγούμενο με οδηγίες χρήσης της μονάδας εφέ ATMega1284, αυτό το πλαίσιο έχει τα ακόλουθα πλεονεκτήματα:

(1) Διαθέτει μίξερ που αναμειγνύει το μη επεξεργασμένο σήμα με το επεξεργασμένο σήμα MCU - αυτό σημαίνει ότι η ποιότητα του σήματος στην έξοδο είναι πολύ βελτιωμένη.

(2) Πραγματοποιεί επεξεργασία εξόδου 16 bit για τις δύο εξόδους PWM όπου το προηγούμενο πλαίσιο εφέ χρησιμοποιεί 8 bit για μερικά από τα παραδείγματα, όπως το εφέ καθυστέρησης.

(3) Διαθέτει ποτενσιόμετρο ανάδρασης που μπορεί να χρησιμοποιηθεί για την ενίσχυση των αποτελεσμάτων - ειδικά με το φαινόμενο φλάντζας/φάσης περίπου 30 τοις εκατό ανάδραση προσθέτει σημαντικά στην ποιότητα του αποτελέσματος.

(4) Η συχνότητα φίλτρου χαμηλής διέλευσης είναι 10 kHz σε σύγκριση με τα 5 kHz του προηγούμενου κουτιού εφέ - αυτό σημαίνει ότι το σήμα στην έξοδο ακούγεται σημαντικά "πιο τραγανό".

(5) Χρησιμοποιεί διαφορετική σκανδάλη διακοπής που μπορεί να εξηγήσει το σημαντικά χαμηλότερο επίπεδο θορύβου που εμφανίζεται σε αυτό το πλαίσιο εφέ.

Ξεκίνησα με την επιβίβαση στο Uno-based Open Music Labs Stompbox Shield και εντυπωσιάστηκα τόσο πολύ με την απόδοση αυτού του τεσσάρου κυκλώματος επεξεργασίας σήματος OpAmp (ακόμα και όταν χρησιμοποιούσα Arduino Uno), που το μετέφερα σε stripboard για πιο μόνιμη χρήση.

Το ίδιο κύκλωμα τεσσάρων opamp και ο κωδικός DSP μεταφέρθηκαν στη συνέχεια στο ATMega1284-και πάλι, εκπληκτικά εκτός από τις μη ουσιώδεις αλλαγές, όπως η εκχώρηση των διακοπτών και του LED σε διαφορετική θύρα και η κατανομή 7.000 kilo-λέξεων αντί για 1.000. kilo-word της μνήμης RAM για το buffer καθυστέρησης, μόνο δύο βασικές αλλαγές έπρεπε να γίνουν στον πηγαίο κώδικα, δηλαδή αλλαγή σε ADC0 από ADC2 και αλλαγή των εξόδων Timer1/PWM OC1A και OC1B από τη θύρα B στο Uno στη θύρα D (PD5 και PD4) στο ATMega1284.

Όπως αναφέρθηκε προηγουμένως, παρόλο που είναι διαθέσιμοι πίνακες ανάπτυξης για το ATMega1284 (Github: MCUdude MightyCore), είναι μια εύκολη άσκηση η αγορά του γυμνού (χωρίς bootloader) τσιπ (αγοράστε την έκδοση PDIP που είναι φιλική προς το ψωμί και το χαρτόνι), στη συνέχεια φορτώστε το πιρούνι Mark Pendrith του bootloader Maniacbug Mighty-1284p Core Optiboot ή το MCUdude Mightycore, χρησιμοποιώντας έναν Uno ως προγραμματιστή ISP και, στη συνέχεια, φορτώστε ξανά σκίτσα μέσω του Uno στο AtMega1284. Λεπτομέρειες και σύνδεσμοι για αυτήν τη διαδικασία δίνονται στο προσάρτημα 1 της προηγούμενης οδηγίας.

Βήμα 1: Λίστα μερών

Λίστα μερών
Λίστα μερών
Λίστα μερών
Λίστα μερών

ATMega1284P (έκδοση πακέτου PDIP 40 ακίδων) Arduino Uno R3 (χρησιμοποιείται ως ISP για τη μεταφορά του φορτωτή εκκίνησης και σκίτσα στο ATMega1284) OpAmp MCP6004 quad OpAmp (ή παρόμοιο RRIO (Rail to Rail Input and Output) OpAmp όπως TLC2274) 1 x Κόκκινος LED πυκνωτής 1 x 16 MHz 2 x 27 pF πυκνωτής 1 x 3n9 πυκνωτής 1 x 1n2 πυκνωτής 1 x 820pF πυκνωτής 2 x 120 pF πυκνωτής 4 x 100n πυκνωτές 3 x 10uF 16v ηλεκτρολυτικοί πυκνωτές 4 x 75k αντιστάσεις 4 x 3k9 αντιστάσεις 1 x 36k αντίσταση 1 x 24k αντίσταση 2 x 1M αντιστάσεις 1 x 470 ohm αντίσταση 3 x 1k αντιστάσεις 2 x 50k Ποτενσιόμετρα (γραμμικά) 1 x 10k Ποτενσιόμετρο (γραμμικά) 3 x διακόπτες με κουμπιά (ένας από αυτούς πρέπει να αντικατασταθεί με 3-πόλο 2- τρόπος ποδοδιακόπτης εάν το πλαίσιο εφέ πρόκειται να χρησιμοποιηθεί για ζωντανή εργασία)

Βήμα 2: Κατασκευή

Κατασκευή
Κατασκευή

Το κύκλωμα 1 δείχνει το κύκλωμα που χρησιμοποιείται και το Stripboard 1 είναι η φυσική του αναπαράσταση (Fritzing 1) με τη φωτογραφία 1 το πραγματικό κύκλωμα με ψωμί που λειτουργεί. Έγιναν τρεις μικρές αλλαγές κυκλώματος: Η κοινή προκατάληψη ημι-τροφοδοσίας opamp χρησιμοποιείται για τρία στάδια OpAmp, οι παράλληλες αντιστάσεις 3 x 75k και 2 x 75k ohms αντικαταστάθηκαν με μονές αντιστάσεις 24k και 36k και οι πυκνωτές ανάδρασης αυξήθηκαν σε 120pF για αυτά τα δύο στάδια OpAmp. Το περιστροφικό χειριστήριο αντικαταστάθηκε με δύο κουμπιά που χρησιμοποιούνται για την αύξηση ή τη μείωση των παραμέτρων εφέ. Η σύνδεση τριών καλωδίων στο ATMega1284 εμφανίζεται στο κύκλωμα ως ADC στο pin 40, PWMlow από τον πείρο 19 και PWMhigh από τον πείρο 18. Τα τρία κουμπιά συνδέονται με τους πείρους 1, 36 και 35 και γειώνονται στο άλλο άκρο. Ένα LED συνδέεται μέσω αντίστασης 470 στην ακίδα 2.

Στάδια εισόδου και εξόδου OpAmp: Είναι σημαντικό να χρησιμοποιείται RRO ή κατά προτίμηση RRIO OpAmp λόγω της μεγάλης ταλάντευσης τάσης που απαιτείται στην έξοδο OpAmp στο ADC του ATMega1284. Η λίστα μερών περιλαμβάνει έναν αριθμό εναλλακτικών τύπων OpAmp. Το ποτενσιόμετρο 50k χρησιμοποιείται για να ρυθμίσει το κέρδος εισόδου σε ένα επίπεδο ακριβώς κάτω από οποιαδήποτε παραμόρφωση και μπορεί επίσης να χρησιμοποιηθεί για να ρυθμίσει την ευαισθησία εισόδου για μια πηγή εισόδου διαφορετική από μια κιθάρα όπως ένα πρόγραμμα αναπαραγωγής μουσικής. Το δεύτερο στάδιο εισόδου OpAmp και το πρώτο στάδιο εξόδου opamp έχει φίλτρο RC υψηλότερης τάξης για την αφαίρεση του ψηφιακά δημιουργούμενου θορύβου MCU από τη ροή ήχου.

Στάδιο ADC: Το ADC έχει ρυθμιστεί ώστε να διαβάζει μέσω διακοπής χρονοδιακόπτη. Ένας πυκνωτής 100nF πρέπει να συνδεθεί μεταξύ του πείρου AREF του ATMega1284 και της γείωσης για να μειωθεί ο θόρυβος καθώς μια εσωτερική πηγή Vcc χρησιμοποιείται ως τάση αναφοράς - ΜΗΝ συνδέετε τον πείρο AREF στα +5 volt άμεσα!

Στάδιο DAC PWM: Καθώς το ATMega1284 δεν έχει δικό του DAC, οι κυματομορφές εξόδου ήχου δημιουργούνται χρησιμοποιώντας μια διαμόρφωση πλάτους παλμού ενός φίλτρου RC. Οι δύο έξοδοι PWM σε PD4 και PD5 ορίζονται ως τα υψηλά και χαμηλά byte της εξόδου ήχου και αναμιγνύονται με τις δύο αντιστάσεις (3k9 και 1M) σε αναλογία 1: 256 (χαμηλό byte και υψηλό byte) - που παράγει την έξοδο ήχου Το

Βήμα 3: Λογισμικό

Το λογισμικό βασίζεται στα σκίτσα των πεταλίδων του stompbox των Open Music Labs, και δύο παραδείγματα περιλαμβάνονται, δηλαδή ένα εφέ φλαντζέρας/φάσης και ένα εφέ καθυστέρησης. Και πάλι όπως και με το προηγούμενο οδηγό, οι διακόπτες και το LED είχαν μεταφερθεί σε άλλες θύρες μακριά από εκείνες που χρησιμοποιούσε ο προγραμματιστής ISP (SCLK, MISO, MOSI και Reset).

Το buffer καθυστέρησης έχει αυξηθεί από 1000 λέξεις σε 7000 λέξεις και το PortD έχει οριστεί ως έξοδος για τα δύο σήματα PWM. Ακόμη και με την αύξηση του buffer καθυστέρησης, το σκίτσο εξακολουθεί να χρησιμοποιεί μόνο περίπου το 75% της διαθέσιμης μνήμης RAM ATMega1284 16 kB.

Άλλα παραδείγματα όπως το tremolo από τον ιστότοπο Open Music Labs για το πεντάλ SHIELD Uno μπορούν να προσαρμοστούν για χρήση από το Mega1284 αλλάζοντας το αρχείο κεφαλίδας συμπερίληψης Stompshield.h:

(1) Αλλαγή DDRB | = 0x06; // ορίστε εξόδους pwm (καρφίτσες 9, 10) σε outputtoDDRD | = 0x30;

και

ADMUX = 0x62; // αριστερή προσαρμογή, adc2, εσωτερικό vcc ως αναφορά στο ADMUX = 0x60; // αριστερή προσαρμογή, adc0, εσωτερικό vcc ως αναφορά // Αυτές οι αλλαγές είναι οι ΜΟΝΟ βασικές αλλαγές κώδικα // κατά τη μεταφορά από το Uno στο ATMega1284

Για τα δύο παραδείγματα που περιλαμβάνονται εδώ, το αρχείο κεφαλίδας περιλαμβάνεται στο σκίτσο - δηλαδή δεν χρειάζεται να χρησιμοποιηθούν αρχεία κεφαλίδας

Τα κουμπιά 1 και 2 χρησιμοποιούνται σε μερικά από τα σκίτσα για να αυξήσουν ή να μειώσουν ένα εφέ. Στο παράδειγμα καθυστέρησης αυξάνεται ή μειώνεται ο χρόνος καθυστέρησης. Όταν το σκίτσο φορτώνεται για πρώτη φορά ξεκινά με το μέγιστο εφέ καθυστέρησης. Για το σκίτσο flanger phaser προσπαθήστε να αυξήσετε τον έλεγχο ανατροφοδότησης για βελτιωμένο αποτέλεσμα.

Για να αλλάξετε την καθυστέρηση σε εφέ ηχώ (προσθέστε επανάληψη) αλλάξτε τη γραμμή:

buffer [location] = input? // αποθήκευση νέου δείγματος

προς το

buffer [location] = (input + buffer [location]) >> 1; // Χρησιμοποιήστε αυτό για echo effct

Ο ποδοδιακόπτης πρέπει να είναι τριπολικός αμφίδρομος διακόπτης

Βήμα 4: Σύνδεσμοι

Electrosmash

Ανοίξτε τα εργαστήρια μουσικής Μουσική

Πεντάλ εφέ ATMega

Συνιστάται: