Υλοποίηση preamplifier PGA23xx

Τί εννοείς δουλεύει συνέχεια? Αν εννοείς ότι σου κάνει συνέχεια refresh την οθόνη είναι λογικό διότι δεν έχει κάποιο if για να δει πότε αλλάζει.


Αντικατέστησε την void loop() με το παρακάτω κομμάτι κώδικα.
Μην ξεχάσεις την πρώτη γραμμή last_encoderValue αλλιώς θα σου βγάλει πρόβλημα.

Code:
int last_encoderValue = -1;
void loop(){ 
  if (last_encoderValue != encoderValue) {
    last_encoderValue = encoderValue;
    lcd.setCursor(5, 3);
    lcd.print(encoderValue);
    //Serial.println(encoderValue);
    
  }
  delay(10); //just here to slow down the output, and show it will work  even during a delay
}
 
Το Σ/Κ πέρασε με παραγωγικές εργασίες.. :smile:

Δοκίμασα το αναλογικό μέρος της πλακέτας εισόδων και φαίνεται να είμαστε σε καλό δρόμο. Διαπίστωσα 2 μικρά bugs της πλακέτας (ανάποδη σήμανση της τάσης τροφοδοσίας του τελεστικού και λάθος θέση 2 αντιστάσεων) αλλά και τα δυο τους είναι εύκολο να διορθωθούν οπότε IMHO δεν δικαιολογούν παραγγελία διορθωμένων πλακετών.

2016-02-05 00.38.03.jpg

Συγκεκριμένα η σήμανση "+15V/GND/-15V" πρέπει να γίνει "-15V/GND/+15V" και οι αντιστάσεις RAI & RBI (φαίνονται τοποθετημένες στο λάθος σημείο στην παραπάνω φωτό, είναι από πριν διορθώσω το πρόβλημα) πρέπει να κολληθούν στο κάτω μέρος της πλακέτας, όπως φαίνεται εδώ:

2016-02-06 00.35.29.jpg

Το buffer με το LM4562 βγάζει συνολικά ~1mV DC στην έξοδο, οπότε θεωρώ ότι είναι ΟΚ για DC coupling.

Μένει να δοκιμαστεί και το κομμάτι ελέγχου των ρελέδων, με το shift register (το περιμένω να έρθει μέσα στην εβδομάδα).

Στη συνέχεια είπα να ασχοληθώ λίγο με το (παραμελημένο από εμένα) κομμάτι του κώδικα ελέγχου του PGA. Είπα για αρχή να κάνω τις δοκιμές μου με τον πιο απλό κώδικα που μπορούσα να βρω / γράψω, οπότε δεν χρησιμοποίησα τον κώδικα του Στέφανου.. Θα έρθει και η δικιά του σειρά, λίγο αργότερα.

Όλα φαίνονται μια χαρά. Έβαλα πρόχειρα ένα rotary encoder με το οποίο άλλαζα την ένταση του PGA και έβλεπα τις αλλαγές μέσω της σειριακής του Arduino.

2016-02-06 02.19.45.jpg

Μετά είπα να δοκιμάσω και 1-2 οθονίτσες που είχα πρόχειρες.. Οπότε, εδώ έχουμε την κλασική OLED (σύνδεση I2C):

2016-02-08 00.22.42.jpg

Κι εδώ μια TFT 2.4" που είχα πρόχειρη (σύνδεση SPI):

2016-02-08 00.47.46.jpg

Ο στόχος ήταν να δω ότι μπορούσα να τις συνδέσω & οδηγήσω σωστά από το "χειροποίητο" Arduino μας, πράγμα που αποδείχτηκε πολύ εύκολο. :smile:

Οπότε και πάλι προχωράμε.. Είμαστε πια πολύ κοντά!
 
Ο πάγκος είναι σωστός.
Αλλοιώς είναι πάγκος έκθεσης και οχι εργασίας.
 
Έλα ρε Δημήτρη, βλέπω καθάρισες το πάγκο και άφησες στα δεξιά χώρο για άλλο πρότζεκτ!
Θα σου ανεβάσω φώτο αφιέρωσης...
 
Καθότι οι περισσότερες δοκιμές έχουν πια γίνει, έφτιαξα ένα πρώτο BoM για τα απαιτούμενα εξαρτήματα της κατασκευής.

Το συνημμένο XLS περιλαμβάνει 3 sheets, όσες και οι πλακέτες μας. (Σημείωση: το αρχείο είναι XLSX αλλά το έχω μετονομάσει σε XLS για να το δεχτεί η πλατφόρμα). View attachment PGA_PreAmp_BOM_v1.xls

Στο BoM δεν περιλαμβάνονται τα γνωστά ψιλολόγια (ακιδοσειρές, κονέκτορες, κτλ).


Όσο αφορά την τροφοδοσία του προενισχυτή, η βέλτιστη λύση είναι τα παρακάτω:

1) 5V στα ~200mA για την πλακέτα του Controller και την (όποια) οθόνη. Είναι μη-κρίσιμης ποιότητας, μπορεί να είναι από ένα απλό 7805.

2) 5V σε κάποια λίγα mA (TBD..) για την ψηφιακή πλευρά του PGA2311/10. Η ποιότητά της είναι κάπως σημαντική, δεν είμαι σίγουρος ακριβώς πόσο.

3) +/-5V σε ~20mA για την αναλογική πλευρά του PGA2311 (ή +/-15V σε περίπτωση που έχουμε επιλέξει το PGA2310). Η ποιότητά της είναι κρίσιμη.

4) +/-15V σε ~30mA για τον τελεστικό της πλακέτας εισόδων. Μπορεί να τροφοδοτήσει και το PGA2310 (αν έχουμε πάει σε αυτό) αυξάνοντας τις δυνατότητες ρεύματός του στα ~100mA. Η ποιότητά της είναι κρίσιμη.


Τα παραπάνω τροφοδοτικά καλό θα ήταν να προκύπτουν από ανεξάρτητα μεταξύ τους τυλίγματα μετ/τη ή μετ/των ώστε να τηρείται η γαλβανική απομόνωση μεταξύ controller και λοιπών κυκλωμάτων.

Σχόλια του στυλ "ξέχασες το τάδε εξάρτημα" ή "τι ακριβώς είναι το τάδε εξάρτημα;" είναι ευπρόσδεκτα. :smile:
 
Ενδιαφέρον... λογικά είναι trivial να συνδεθεί με το υπόλοιπο project.
Το πρωτόκολλο επικοινωνίας όμως είναι λίγο περίεργο δεν είναι compatible
με τα PGA
 
Απάντηση: Re: Υλοποίηση preamplifier PGA23xx

Ακολουθώντας τις προδιαγραφές του Δημήτρη (Δημητρακούδη) σχεδίασα τα παρακάτω τροφοδοτικά.
Με απλά υλικά σε πρώτη φάση χωρίς κάτι εξωτικό (ίσως κάποιο Salas στην πορεία).

SUPPLY1.jpg

SUPPLY2.jpg

και η αντίστοιχη πλακέτα

SUPPLYPCB.jpg

Τη πλακέτα δοκίμασα να την κάνω με το CNC μου. Υπάρχει ειδικό πρόσθετο πρόγραμμα στο eagle ( PCB-GCode ) το οποίο μετατρέπει την PCB πλακέτα
σε αρχείο GCODE (το πρόγραμμα που διαβάζει το MACH3 του CNC).

20160304_123427.jpg


Το πρόσθετο πρόγραμμα εκτός από τις διαδρομές που πρέπει να ακολουθήσει το CNC
εξάγει και ένα δεύτερο αρχείο που κάνει το τρύπημα της πλακέτας

20160307_105232.jpg

20160307_105228.jpg

Αφού συναρμολόγησα τη πλακέτα, ρύθμισα τις τάσεις (όλα πήγαν καλά) και σύνδεσα την οθόνη αυτή,

DSC00164.jpg

Η οθόνη αυτή είναι OLED και θέλει κάποιες ειδικές βιβλιοθήκες για να δουλέψει, τις οποίες τις βρίσκει κανείς εδώ.

DSC00170.jpg

DSC00171.jpg

Στις φωτογραφίες, το χρώμα της οθόνης δεν αποδίδεται σωστά. Στη πραγματικότητα έχει πορτοκαλί αποχρώσεις ενώ στις φωτογραφίες φαίνεται κίτρινη
(από κοντά είναι πολύ όμορφη).
 
Ωραία δουλειά γίνεται και στις πλακέτες με το cnc. Πόση ώρα έκανε να χαράξει τη πλακέτα το μηχάνημα; Τι κάνεις για την οξείδωση της πλακέτας μετά;
Ήρθε η ώρα να σχεδιάσουμε κουτί, ή δεν τελείωσες ακόμα τα τμήματα;
 
Στέλιο ήταν η πρώτη πλακέτα που χάραξα με το CNC, οπότε στη αρχή της χάραξης έβαλα μικρή ταχύτητα και σταδιακά την αύξανα.
Περίπου πήρε μιάμιση ώρα. Επίσης να πω ότι το eagle σού δίνει την δυνατότητα να επιλέξεις να περάσει μόνο μία φορά τον κάθε διάδρομο( εγώ διάλεξα το πολλαπλό πέρασμα).
Η επιλογή αυτή μειώνει μάλλον κατά πολύ τον χρόνο αλλά δεν ξέρω το αποτέλεσμα της ποιότητας.
Επίσης πρέπει να τοποθετήσω το CNC σε μία εντελώς επίπεδη βάση χωρίς κλίση γιατί εδω το βάθος χάραξης παίζει καθοριστικό ρόλο,
μιας και μιλάμε για βάθος κοπής 0,1-0,15mm. Θα πρέπει επιπλέον η πλακέτα να είναι εντελώς ίσια.

Δεν χρειάζεται καμία οξείδωση μετά, άλλωστε αυτός είναι ο λόγος που το κάνεις με το CNC.

Για το κουτί έχουμε πολύ δρόμο μιας και ο κώδικας, που προέχει, έχει αρχίσει να γίνεται πολύπλοκος ( και ο ελεύθερος χρόνος λιγοστός).
 
Τελικά το CNC αποδίδει και μπράβο.

Γνωρίζεις πόσο είναι το ελάχιστο φάρδος διαδρομής που μπορεί να χαράξει;
Ο Στέλιος με τον όρο οξείδωση αναφέρεται στην επιφάνεια του χαλκού. Ο χαλκός γυμνός πάντα οξειδώνεται και μαυρίζει, για αυτό και ρωτάει τι είδους προφύλαξη θα πάρεις για αυτό.