Υλοποίηση preamplifier PGA23xx

Γειά σου Μανώλη (ελπίζω να τα πούμε και απο κοντά κάποια στιγμή).
Το κοπτικό που χρησιμοποιώ είναι αυτό, είναι τύπου V 20 μοιρών και έχει μύτη 0,2mm (υπάρχει και 0,1mm).
Άρα η ακρίβεια σε εμένα είναι 0.2mm αλλά με άλλο κοπτικό μπορεί να κατέβει παρακάτω.
Για τη προστασία της πλακέτας θα χρησιμοποιήσω το PLASTIK της cramolin αλλά θέλω πρώτα να βρω ένα
τρόπο να την καθαρίσω από τις δακτυλιές που άφησα κατά τη διαδικασία κόλλησης.
Με ψιλό σύρμα κουζίνας θα κάνω δουλειά ή να την περάσω όλη με κόλληση;
 
Τελικά το CNC αποδίδει και μπράβο.

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

Αυτό εννοούσα που λέει ο Μανόλης. Έχουμε χάσει και το Rosol 3 που ήταν γιαυτή τη δουλειά. Το έχεις ξαναβρεί κάπου;

--- Αυτόματη συγχώνευση μηνύματος ---

Αυτό τα εξαφανίζει όλα Κώστα (ακόμα και τα γράμματα απο τα εξαρτήματα )
https://www.emimikos.gr/FLUX-OFF/
 
Στέλιο ακόμη έχω το πρώτο Rosol, δεν μου έχει τελειώσει οπότε δεν το έψαξα για το εάν είναι διαθέσιμο.

Τελευταία με τις smd πλακέτες έχω σταματήσει να φτιάχνω ντιούικες πλακέτες, εξαιτίας της αδυναμίας επίτευξης των via μεταξύ των διάφορων ground plane αλλά και ότι πολλά λιλιπούτεια smd θέλουν ποδαράκια της τάξης των 0,12mm...μπρρ...δεν βγαίνουν με τίποτα!

Saganakis, ευχαρίστως να συναντηθούμε θα βάλουμε ως ενδιάμεσο το Στέλιο και θα μας φέρει κοντά...

Συνήθως τις ντιούικες πλακέτες ή τις καλύπταμε με Rosol ή ρίχναμε πλαστικοποιητή. Και τα δύο έχουν τα + και -, κανένα δεν είναι το 100% της επίλυσης του θέματος.
Για να καθαρίσεις το χαλκό από δακτυλιές, πέρασέ το είτε με ασετόν είτε ακόμη και με συνδυασμό με πολύ ψιλό γιαλόχαρτο...αλλά αμέσως μετά το στέγνωμα θέλει επίστρωση ή προστασία του χαλκού.

--- Αυτόματη συγχώνευση μηνύματος ---

Για το flux remover που έβαλε ο Στέλιος, μάλλον έχω πιο προσιτή λύση που τη χρησιμοποιώ χρόνια.
Εάν χρησιμοποιείς αρκετό flux και ειδικά RA flux εταιριών όπως της Chip-Quik, ενώ κάνουν άψογη δουλειά στις κολλήσεις κάνουν μια εντελώς κολλώδη επιφάνεια με μπόλικα δακτυλικά αποτυπώματα.

H λύση που έχω βρει, αντί των σπρέι που μπαίνουν μέσα στη μύτη, είναι να τα βαπτίζω ολικώς σε μια μικρή επιφάνεια με ισοπροπυλική αλκοόλη για κανένα 5λεπτο και αραιά και που λίγο τρίψιμο με μικρό πινελάκι μέσα στο διάλυμα...συνήθως τα κάνει αόρατα!
 
Re: Απάντηση: Re: Υλοποίηση preamplifier PGA23xx

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


[snip.....snip....snip]


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

View attachment 125608

View attachment 125607

Στις φωτογραφίες, το χρώμα της οθόνης δεν αποδίδεται σωστά. Στη πραγματικότητα έχει πορτοκαλί αποχρώσεις ενώ στις φωτογραφίες φαίνεται κίτρινη
(από κοντά είναι πολύ όμορφη).

Πολύ καλή δουλειά! Και η οθονούλα αστέρι.. Παρήγγειλα και εγώ μια να έρχεται (σε άσπρο)..

Καλή φάση το ότι υποστηρίζει διαβαθμίσεις του γκρι. Είναι ένας καλός τρόπος να κάνεις (έμμεσα) dim την οθόνη.

Το project προχωράει.. τώρα δοκιμάζω τον κώδικα για τον επιλογέα εισόδων.
 
Re: Απάντηση: Re: Υλοποίηση preamplifier PGA23xx

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

View attachment 125606

Ωπ, μόλις παρατήρησα ότι οδηγείς την οθόνη με σήματα 5V ενώ περιμένει 3.3V! Βάλε έναν level shifter άμεσα.. π.χ. 74LVC245
 
Απάντηση: Re: Απάντηση: Re: Υλοποίηση preamplifier PGA23xx

Είσαι απίστευτος, που το σκέφτηκες? Δεν θα πήγαινε καθόλου το μυαλό μου.
Χρωστάω κέρασμα (μεγάλο), ελπίζω να μην της έχω κάνει ζημιά...
 
Είναι κλασικό πρόβλημα τα διαφορετικά levels στα Arduino.. έχω γίνει λίγο ψυχαναγκαστικός με αυτά, παρότι δεν έχω φτάσει να κάψω κάτι ακόμα.. :p

Αφού δουλεύει ακόμα η οθόνη, είσαι εντάξει.. Απλά μη το ρισκάρεις άλλο..
 
Ένα μυστήριο bug με την πλακέτα επιλογής εισόδων μας πήγε μερικές μέρες πίσω αλλά τελικά λύθηκε.

Ήταν από τα πιο εκνευριστικά bugs, αφού το ίδιο κύκλωμα υλοποιημένο σε breadboard δούλευε κανονικά ενώ πάνω στην πλακέτα απλά δεν.

Τελικά βρέθηκε η λύση, η οποία είναι αυτή:

IMG_20160317_020849_resize.jpg

Ουσιαστικά συνδέουμε το pin 7 στο Vcc.

Οπότε τώρα έχουμε και λειτουργική πλακέτα εισόδων.

Όσο αφορά το λογισμικό / κώδικα έχει συμβεί το αναμενόμενο: Ο καθένας μας έχει κάνει τα δικά του ώστε να καλύψει τις δικές του ανάγκες. :p

Οπότε θα προσπαθήσουμε να παρουσιάσουμε εδώ όλες τις εναλλακτικές, παράλληλα προσπαθώντας να περιορίσουμε την πολυπλοκότητα.

Δεν θα είναι εύκολο αλλά λογικά άκρη θα βρεθεί.

Επίσης υπάρχει και ένα rev. 1 βασικής τεκμηρίωσης των πλακετών, με BoMs, σχηματικά και τυπωμένα.

Για τον φόβο των αντιγραφέων του μπέι θα την δίνουμε on demand σε όσους σκοπεύουν να υλοποιήσουν τον προενισχυτή.
 
Στις δοκιμές της πλακέτας εισόδων προέκυψε ένας πινακας τιμών παραμέτρων για την ενεργοποίηση των εισόδων μέσω SPI που πιστεύω ότι θα διευκολύνει όποιον θέλει να γράψει δικό του κώδικα. Επίσης θα μπορεί να ορίζει μία είσοδο ως έξοδο.

View attachment SPI_TPIC6C595.doc
 
ΜΙά και το έφτειαξα και λειτουργεί ένα μικρο κομμάτι κώδικα για τον επιλογέα εισόδων με encoder.



Code:
// -----
// SimplePollRotator.ino - Example for the RotaryEncoder library.
// This class is implemented for use with the Arduino environment.
// Copyright (c) by Matthias Hertel, http://www.mathertel.de
// This work is licensed under a BSD style license. See http://www.mathertel.de/License.aspx
// More information on: http://www.mathertel.de/Arduino
// -----
// 18.01.2014 created by Matthias Hertel
// -----


#include <SPI.h>




// This example checks the state of the rotary encoder in the loop() function.
// The current position is printed on output when changed.

// Hardware setup:
// Attach a rotary encoder with output pins to A2 and A3.
// The common contact should be attached to ground.

#include <RotaryEncoder.h>

// Setup a RoraryEncoder for pins A2 and A3:
RotaryEncoder encoder(10, 11);

int input = 1;
int newInput = 1;
const int selectButton = 13;
int lastButtonState = 1;
int latchPin = 3;
int  drain;
  
void setup()
{
  Serial.begin(57600);
  Serial.println("SimplePollRotator example for the RotaryEncoder library.");
  
  pinMode(selectButton, INPUT);
  digitalWrite(selectButton, HIGH);
  
  pinMode(latchPin, OUTPUT);        //set latch pin to output
  SPI.begin();

  
} // setup()


// Read the current position of the encoder and print out when changed.
void loop()
{
  static int pos = 0;  //static 
  encoder.tick();

  int newPos = encoder.getPosition();
  if (pos != newPos) {
  
    pos = newPos;
         
    if (pos >= 0){    
      newInput = (pos % 8)+1;
    }else{
      newInput = ((pos+1) % 8)+8;
    }

 
   
 
    //pos = newPos;
  } // if
  if (input != newInput && (digitalRead(selectButton)== 0)) {
    input = newInput;
    
    changeInput();

    Serial.print(newPos);
    Serial.println();
    
  
  }
    
} // loop ()

// The End

void changeInput()
  {
    
   switch(input){
    case 1:             //input0 on PCB
       drain = 8;
    case 2:             //input1 on PCB
      drain = 4;
      break;
    case 3:             //input2 on PCB
      drain = 2;
      break;
    case 4:             //input3 on PCB
      drain = 1;
      break;
    case 5:             //input4 on PCB
      drain = 16;
      break;
    case 6:            //input5 on PCB
      drain = 32;
      break;
    
    
  }

    digitalWrite(latchPin, LOW);
    delay(100);
    SPI.beginTransaction(SPISettings(4000000, MSBFIRST, SPI_MODE0));
    SPI.transfer(drain);    
    
  
    digitalWrite(latchPin, HIGH);
    SPI.endTransaction();
    delay(250);
  
  }

Για ευκολία σε δοκιμές. Ενσωμάτωση ανάλογα με τις ανάγκες. Μελλοντικά επέκταση για δύο πλακέτες εισόδων.

Επίσης οι δύο τρύπες που περισσευουν μετά την αλλαγή σύνδεσης των RAI και RBI είναι ότι πρέπει για σύνδεση του σήματος όταν χρησιμοποιηθούν δύο πλακέτες εισόδων και μάλιστα η μία πάνω από την άλλη.
 
Ωραίοι, το προχωράτε μεθοδικά και ουσιαστικά. :a0210:

Πλέον η diy κατηγορία, παίζει σε άλλο ταμπλό!
 
Είναι ίδια με του Saganakis; Γιατί βλέπω πιο ομαλή γραμματοσειρά εδώ...
 
Προχωράμε..

https://youtu.be/On8bTvxIjjQ

Θέλει αρκετή δουλίτσα ακόμα αλλά τα βασικά έχουν μπει στις θέσεις τους.

Επίσης προσπαθούμε να κάνουμε κάτι για να βελτιώσουμε την ταχύτητα ανανέωσης της οθόνης.
 
Δημήτρη αυτό το refresh rate που εμφανίζεται στο βίντεο, οφείλεται από την οθόνη ή είναι θέμα ελεγκτή ή πρωτοκόλλου;
 
Πάνω που θα σε ρώταγα, γιατί δείχνει ένα συγκεκριμένο αργό τρεμόπαιγμα που υποδηλώνει πολύ αργό refresh.
Tελικά ήταν λόγω της σχέσης real refresh rate/recording refresh rate.

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

Χαιρετώ. Παρακολουθώ εδώ και λίγο καιρό το συγκεκριμένο post και το μόνο που έχω να πω είναι ένα μεγάλο ΜΠΡΑΒΟ! Το DIY έχει περάσει σε άλλα επίπεδα μέσα από την προσπάθειά σας. Αν και ο ελευθερος χρόνος μου είναι πρακτικά ανύπαρκτος λόγω ασφυκτικών επαγγελματικών υποχρεώσεων, δηλώνω ένθερμος οπαδός και υποστηρικτής του project και θα χαρώ να το υλοπιήσω όταν αυτό ολοκληρωθεί.
Καλή συνέχεια και ΕΠΙΤΥΧΙΑ!.
Φιλικά,
Γιάννης
 
Να είσαι καλά Γιάννη και ευχαριστούμε για την επιβράβευσή σου.

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

Δεν είναι σκοπός να είμαστε ημιμαθείς και να κρατάμε ότι μισό-μάθαμε κλειστό σε εμάς ή σε ένα μικρό περίγυρο. Το θέμα είναι να ανοίξουμε ορίζοντες να μοιράσουμε τη σκέψη μας, τις ιδέες μας και μέσα από αυτή τη διαδικασία να μάθουμε, να βελτιωθούμε.
Είναι και ο λόγος που ίσως φαίνεται ότι το diy μας αρχίζει και περνά σε άλλο επίπεδο.
Συνεχώς δημιουργούνται νέα project που μοιράζονται αφιλοκερδώς μεταξύ όσων μελών ενδιαφέρονται.