HY430 - Εργαστήριο Ψηφιακών Κυκλωμάτων

Εργαστηριακή Εργασία 2η - Υλοποίηση UART (Universal Asynchronous Receiver Transmitter - Γενικού Ασύγχρονου Δέκτη Αποστολέα)

25/10/2020 εως 18/11/2020

Χρήστος Σωτηρίου
  1. Στόχος της 2ης Εργασίας

  2. Ο στόχος της δεύτερης εργαστηριακής εργασίας είναι η υλοποίηση ενός συστήματος σειριακής επικοινωνίας, το οποίο θα χρησιμοποιεί το πρωτόκολλο UART (Universal Asynchronous Receiver Transmitter - Γενικού Ασύγχρονου Δέκτη Αποστολέα). Το σύστημα θα αποτελείται απο έναν UART Αποστολέα και έναν UART Δέκτη, οι οποίοι μεταφέρουν δεδομένα στην μια κατεύθυνση, απο τον Αποστολέα στον Δέκτη, μέσω μιας σειριακής σύνδεσης ενός σήματος.

    Το UART που θα υλοποιηθεί, θα χρησιμοποιηθεί για την σειριακή μεταφορά τουλάχιστον μιας αλληλουχίας τεσσάρων διαφορετικών συμβόλων των 8- bit, από τον Αποστολέα στον Δέκτη. Η προτεινόμενη αλληλουχία συμβόλων προς μεταφορά είναι τα εξής, σε δυαδικό και δεκαεξαδικό σύστημα:

    10101010(AA), 01010101(55), 11001100(CC) καί 10001001(89).

    Εναλλακτικά, μπορείτε να μεταφέρετε μια άλλη αλληλουχία τουλάχιστον τέσσερων συμβόλων, αρκεί να εμπεριέχουν αρκετά ανάμικτα 0 καί 1, έτσι ώστε να επαληθεύουν τον ορθό χρονισμό του κάθε ψηφίου που μεταδίδεται σειριακά κατά την αποστολή και λήψη. Προεραιτικά, το τελευταίο συμβόλο που παραλήφθηκε θα παρουσιάζεται στα δυο απο τα τέσσερα ψηφία ενδείξεων 7-τμημάτων.
  3. Το UART

  4. Το UART (Universal Asynchronous Receiver Transmitter - Γενικός Ασύγχρονος Δέκτης και Αποστολέας) είναι ενα σειριακό, ασύγχρονο πρωτόκολλο επικοινωνίας, και σχετικό κύκλωμα που το υλοποιεί, το οποίο επιτρέπει την μεταφορά δεδομένων μεταξύ δυο (ή περισσοτέρων γενικά) συσκευών, οι οποίες μπορεί να έχουν ανεξάρτητα και ασυσχέτιστα ρολόγια. Το UART είναι ευρύτατα διαδεδομένο (RS232), λόγω απλότητας στην υλοποίηση, πρακτική ευκολία στην χρήση και της γενικής του εφαρμογής.


    Η ασύγχρονη επικοινωνία του UART συντελείται μέσω μιας ενσύρματης σύνδεσης ενός bit, μεταξύ του Αποστολέα (TxD), ο οποίος την οδηγεί, και του Δέκτη (RxD), ο οποίος την δειγματοληπτεί και εξετάζει. Το δεδομένο προς επικοινωνία, συνήθως 8-bit ονομάζεται σύμβολο, και για να σταλεί σειριακά πρέπει να μετατραπεί στα συναποτελούντα του ψηφία, τα οποία θα σταλούν ενα πρός ενα, απο το μικρότερο (bit 0) στο μεγαλύτερο (bit 7). Στο παραπάνω σχήμα, φαίνεται αναλυτικά το χρονοδιάγραμμα επικοινωνίας ενός συμβόλου. Μια και δεν υπάρχει κάποια εγγύηση ως προς την σχετική συχνότητα και φάση των ρολογιών του Αποστολέα και Δέκτη, στην ασύγχρονη επικοινωνία τα δεδομένα πρωπορεύονται απο το bit Eκκίνησης (Start bit). Αυτό σηματοδοτεί για τον Δέκτη την έναρξη της επικοινωνίας. Επίσης, το πέρας του συμβόλου και η λήξη της επικοινωνίας σηματοδοτείται απο το bit Παύσης (Stop bit). Έτσι, όσο το κανάλι επικοινωνίας 1-bit του UART μένει αδρανές, και δεν χρησιμοποιείται για μεταφορά δεδομένων, θα πρέπει να βρίσκεται στο λογικό 1, την τιμή δηλαδή του Stop bit. Για επαλήθευση της ορθής επικοινωνίας των δεδομένων, αυτά συνοδεύονται επίσης απο ενα bit Ισοτιμίας (Parity), το οποίο καταδεικνύει αν το σύμβολο που μεταβιβάστηκε εμπεριέχει ζυγό ή μονό αριθμό άσσων. Για τον ορθό ρυθμό δειγματοληψίας, έτσι ώστε να μην χάνονται η να πολλαπλασιάζονται δεδομένα στο πρωτόκολλο UART, ο Αποστολέας και ο Δέκτης προσυμφωνούν την ταχύτητα της μεταξύ τους επικοινωνίας σε μονάδες Baud (bits/sec). Η προσυμφωνία αυτή δεν είναι μέρος του πρωτοκόλλου επικοινωνίας και γίνεται σε υψηλότερο επίπεδο. Στον παρακάτω πίνακα παρουσιάζονται οι ταχύτητες επικοινωνίας του UART, και η σχετική κωδικοποίηση τους απο το 3-bit σήμα BAUD_SEL, το οποίο και τις επιλέγει.

    BAUD_SEL Baud Rate
    000 300 bits/sec
    001 1200 bits/sec
    010 4800 bits/sec
    011 9600 bits/sec
    100 19200 bits/sec
    101 38400 bits/sec
    110 57600 bits/sec
    111 115200 bits/sec


    Η περίοδος του κάθε ψηφίου στο προηγούμενο Σχήμα αναλογεί σε Τ = 1/Baud Rate. Η λειτουργία και δειγματοληψία του UART γίνεται σε πολλαπλάσιο της συχνότητας του Baud Rate. Η πιο σύνηθης συχνότητα δειγματοληψίας είναι x16, δηλαδή το κάθε μεταδιδόμενο ψηφίο του Αποστολέα, εξετάζεται με 16πλάσιο ρυθμό απο τον Δέκτη, για την προσυμπεφωνημένη ταχύτητα. Δηλαδή, ο Δέκτης πρακτικά λειτουργεί σε ταχύτητα Baud Rate x 16. Επιπλέον, ο Δέκτης, αφού συγχρονιστεί με το Start bit, και με την κατάλληλη καθυστέρηση απο την δειγματοληψία του τελευταίου, θα πρέπει να ευθυγραμμίσει την δειγματοληψία του στο κέντρο της περιόδου, 1/Baud Rate.



    Στο παραπάνω Σχήμα, παρουσιάζεται αναλυτικά η κυκλωματική δομή ενός ζεύγους Αποστολέα, Δέκτη. Και τα δυο κυκλώματα έχουν δυο πλευρές, την πλευρά που επιτελείται η σειριακή επικοινωνία, δηλ. τα σήματα RxD και TxD, τα οποία συνδέονται μεταξύ τους για να δημιουργήσουν το σειριακό κανάλι, και την πλευρά ελέγχου/δεδομένων, στην οποία το οποιοδήποτε σύστημα επικοινωνεί με τις μονάδες του UART, και αποστέλει ή λαμβάνει τα (παράλληλα) δεδομένα των συμβόλων. Η κάθε μονάδα ενεργοποιείται για επικοινωνία με το σχετικό σήμα, Rx_EN, Tx_EN. Όπως φαίνεται στο Σχήμα, η κάθε μονάδα περιλαμβάνει εναν προγραμματιζόμενο ελεγκτή Baud Rate, ο οποίος θέτει τον ρυθμό μετάδοσης πρίν την έναρξη, και όχι κατά την διάρκεια, της επικοινωνίας. Ο ελεγκτής αυτός ορίζει σε ποιά ταχύτητα, δηλαδή ποιούς χρόνους και τελικά κύκλους ρολογιού, οι μονάδες είναι ενεργές.

    Όπως ειπώθηκε νωρίτερα, ο Αποστολέας υπολογίζει και στέλνει το ψηφίο Parity, ενω ο Δέκτης θα πρέπει να επαληθεύσει ότι η ισοτιμία του συμβόλου είναι σωστή. Σε περίπτωση που διαπιστωθεί σφάλμα στην ισοτιμία, o Δέκτης θα πρέπει να πληροφορήσει την πλευρά του συστήματος οτι τα δεδομένα που παρελήφθησαν δεν είναι σωστά, για να αγνοηθούν σε υψηλότερο επίπεδο. Αυτό επιτυγχάνεται με το σήμα Rx_PERROR. Επιπλέον, στην περίπτωση που ο Δέκτης δεν δειγματοληπτίσει το Stop bit στον χρόνο που το περιμένει ή δεν μπορεί να ευθυγραμμιστεί με την μέση του Start bit, οι οποίες δυο περιπτώσεις σημαίνουν οτι τα δεδομένα δεν έχουν πλαισιωθεί σωστά (λ.χ. το Baud Rate μπορεί να είναι διαφορετικό, ή o Δέκτης να ενεργοποιηθεί καθυστερημένα), θα πληροφορήσει το σύστημα για το σφάλμα με το σήμα Rx_FERROR.

    Επισημαίνεται ότι το πρωτόκολλο UART δεν περιλαμβάνει έλεγχο ροής μεταξύ Δέκτη-Αποστολέα, δηλαδή ο Δέκτης δεν μπορεί να σταματήσει τον Αποστολέα, έτσι και οι δυο θα πρέπει να είναι έτοιμοι για διαρκή επικοινωνία. Στην πλευρά του συστήματος, όπου και οι ταχύτητες μπορεί να είναι πολύ μεγαλύτερες, είναι απαραίτητο ενα απλό πρωτόκολλο επικοινωνίας που να καταδεικνύει: (1) ότι ο Αποστολέας βρίσκεται σε διαδικασία μετάδοσης και δεν μπορεί να λάβει το επόμενο σύμβολο, και (2) ότι ο Δέκτης έλαβε σύμβολο που πρέπει να αναγνωστεί. Αυτές οι δυο απαιτήσεις επιτυγχάνονται με τα σήματα Tx_BUSY καί Rx_VALID αντίστοιχα.
  5. Μέρος Α - Ελεγκτής Baud Rate

  6. Ο Ελεγκτής θα χρησιμοποιηθεί εσωτερικά στα κυκλώματα Αποστολέα και Δέκτη. Ο στόχος του είναι να παρέχει το καταλλήλο σήμα δειγματοληψίας, ανάλογα με τον επιλεγμένο Baud Rate. Το σήμα δειγματοληψίας σας προτείνεται να είναι θετικά ενεργό και να μένει ενεργό για ένα κύκλο, ενώ όπως επεξηγήθηκε παραπάνω θα πρέπει να έχει συχνότητα 16 x Baud Rate.

    Η προτεινόμενη μορφή του Ελεγκτή Baud Rate φαίνεται παρακάτω:

    module baud_controller(reset, clk, baud_select, sample_ENABLE);
    input reset, clk;
    input [2:0] baud_select;
    output sample_ENABLE;

    ...
    endmodule


    Για τον Ελεγκτή Baud Rate, σας προτείνεται να χρησιμοποιήσετε το ρολόι των 50 MHz της πλακέτας. Για την παραγωγή του σήματος δειγματοληψίας, σας προτείνεται να χρησιμοποιήσετε εναν μετρητή κύκλων ρολογιού των 50 MHz, όπου για κάθε απαιτούμενο Baud Rate, θα ορίσετε μια μέγιστη τιμή του μετρητή, η οποία θα μετράει, με το μικρότερο δυνατό ποσοστό λάθους, την ποσότητα T_sc = 1/(16 x Baud Rate), η οποία αντιστοιχεί στην περίοδο δειγματοληψίας, σε αριθμό κύκλων. Έτσι, ανάλογα με το απαιτούμενο Baud Rate, όταν ο μετρητής θα φτάνει την σχετική μέγιστη τιμή, το σήμα sample_ENABLE θα γίνεται 1, και ο μετρητής θα επιστρέφει στο μηδέν. Με αυτόν τον τρόπο, κάθε περίοδο T_sc = 1/(16 x Baud Rate), το σήμα sample_ENABLE θα γίνεται 1 για έναν κύκλο.

    Όταν υπολογίσετε τις απαιτούμενες τιμές του μετρητή, υπολογίστε και το σχετικό σφάλμα στο Baud Rate. Το τελευταίο θα πρέπει να το συμπεριλάβετε και να το σχολιάσετε στην εργαστηριακή αναφορά.

    Όταν θεωρήσετε οτι η υλοποίηση είναι ορθή, επιδείξτε τον κώδικα Verilog που γράψατε και τα αποτελέσματα της προσομοίωσης σε επιτηρητή του εργαστηρίου.
  7. Μέρος Β - Υλοποίηση UART Αποστολέα

  8. Ο UART Αποστολέας θα πρέπει, όπως εξηγήθηκε νωρίτερα, να είναι ενεργοποιήσιμος, να επικοινωνεί με το σύστημα για να παραλαμβάνει το σύμβολο προς μεταφορά, αλλά και να παράγει μια ένδειξη διαθεσιμότητας ή όχι, ανάλογα με το αν εκτελεί μεταφορά ή περιμένει επόμενο δεδομένο.

    Το σήμα Tx_EN αποτελεί το σήμα ενεργοποίησης του Αποστολέα. Το συγκεκριμένο σήμα θα πρέπει να μένει ενεργό, απο το σύστημα (ή το πλαίσιο δοκιμής), όσο ο Αποστολέας πρέπει να είναι ενεργός ή όσο δεν έχει ακόμα ολοκληρώσει την τρέχουσα μεταβίβαση. Το Baud Rate θα πρέπει να έχει τεθεί πρίν ενεργοποιηθεί ο Αποστολέας. Για την παραλαβή δεδομένων προς μεταβίβαση, σας προτείνετε να χρησιμοποιήσετε το σήμα Tx_WR, όπου το τελευταίο θα γίνεται 1 για ένα κύκλο, ενώ τα δεδομένα του συμβόλου προς μεταφορά θα βρίσκονται στο Tx_DATA[7:0]. Το σήμα Tx_BUSY, με κατεύθυνση απο τον Αποστολέα προς το σύστημα θα σηματοδοτεί, όσο μένει 1, ότι ο Αποστολέας βρίσκεται σε κατάσταση μεταβίβασης, έτσι (1) δεν επιτρέπεται να πέσει το Tx_EN καί (2) δεν επιτρέπεται να του μεταβιβαστούν νέα δεδομένα μέσω του ζεύγους Tx_WR, Tx_DATA[7:0].

    1. Δομή της Μονάδας

    2. Στην υλοποίηση του UART Αποστολέα, θα εμπεριέχεται ο Ελεγκτής Baud Rate που υλοποιήσατε στο πρώτο μέρος. Σας προτείνεται η εξής δομή:

      module uart_transmitter(reset, clk, Tx_DATA, baud_select, Tx_WR, Tx_EN, TxD, Tx_BUSY);
      input reset, clk;
      input [7:0] Tx_DATA;
      input [2:0] baud_select;
      input Tx_EN;
      input Tx_WR;

      output TxD;
      output Tx_BUSY;
      ...
      baud_controller baud_controller_tx_instance(reset, clk, baud_select, Tx_sample_ENABLE);
      ...

      endmodule
    3. Λειτουργία του Αποστολέα

    4. Ο Αποστολέας μπορεί να βρίσκεται σε μια απο δύο καταστάσεις, είτε θα είναι ανενεργός, είτε θα βρίσκεται σε διαδικασία μετάδοσης δεδομένων. Μετά την παραλαβή συμβόλου απο το σύστημα, όπως επεξηγήθηκε παραπάνω, και εφόσον είναι ενεργός, ο Αποστολέας θα πρέπει να μπεί στην κατάσταση μετάδοσης, και να ξεκινήσει την αποστολή στην σειριακή σύνδεση TxD, στέλνοντας το Start bit. Οι κύκλοι που το σήμα Tx_sample_ENABLE είναι 1, σηματοδοτούν ενεργούς κύκλους για τον Αποστολέα. Έτσι, η μετάδοση δεδομένων, συμπεριλαμβανομένου και του Start bit , θα γίνεται κάθε 16 κύκλους του Tx_sample_ENABLE, το οποίο και εξαρτάται απο το επιλεγμένο Baud Rate. Αλλάζοντας το τελευταίο, θα αλλάξουν και οι ενεργοί κύκλοι μετάδοσης του Αποστολέα, οπότε το σειριακό τρένο των δεδομένων είτε θα πλαταίνει, είτε θα συρρικνώνεται.

      Για την υλοποίηση του Αποστολέα, σας προτείνεται να χρησιμοποιήσετε εναν μετρητή δεδομένων, ο οποίος κάθε 16 παλμούς του Tx_sample_ENABLE, θα οδηγεί κατάλληλα το TxD. Συνολικά, θα πρέπει μεταδώσετε σειριακά 11 bit (8 δεδομένων, 1 αρχής, 1 τέλους και 1 ισοτιμίας). Ολοκληρώνοντας την διαδικασία, ο μετρητής δεδομένων μπορεί να επιστρέψει στο μηδέν, και ο Αποστολέας στην ανενεργή κατάσταση.

      Όταν το κύκλωμα λειτουργεί όπως πρέπει, επιδείξτε τον κώδικα Verilog που γράψατε για το κύκλωμα και το πλαίσιο δοκιμής, και τα αποτελέσματα της προσομοίωσης σε επιτηρητή του εργαστηρίου.
  9. Μέρος Γ - Υλοποίηση UART Δέκτη

  10. Ο Δέκτης, κατά αναλογία με τον Αποστολέα θα πρέπει να είναι ενεργοποιήσιμος με τον ίδιο τρόπο, και επιπλέον να επιδεικνύει στο σύστημα οτι υπάρχει διαθέσιμο σύμβολο προς ανάγνωση.

    Το σήμα Rx_EN αποτελεί το σήμα ενεργοποίησης του Δέκτη, με ανάλογη συμπεριφορά με του Αποστολέα. Ομοίως λειτουργεί η επιλογή Baud Rate. Κατά την ολοκλήρωση της λήψης απο τον Δέκτη, αν διαπιστωθεί σφάλμα στην ισοτιμία ή στην σειριακή πλαισίωση των δεδομένων (όπως εξηγήθηκε νωρίτερα), θα πρέπει να γίνουν 1 τα αντίστοιχα σήματα λάθους, Rx_PERROR καί Rx_FERROR. Εναλλακτικά, αν δεν υπάρχει σφάλμα, το σύμβολο που παρελήφθει θα πρέπει να εμφανιστεί στο Rx_DATA[7:0], και για 1 τουλάχιστον κύκλο να σηκωθεί το σήμα Rx_VALID, το οποίο σηματοδοτεί ότι τα δεδομένα είναι έγκυρα και μπορεί να διαβαστούν απο το σύστημα. Σας προτείνεται, για ευκολία στην επικοινωνία με το σύστημα, το τελευταίο ζεύγος σημάτων να μένει έγκυρο, έως ότου ξεκινήσει νέα επικοινωνία απο τον Αποστολέα, δηλ. δεν έχει παραλήφθει νέο Start bit. Ομοίως και για τα δυο σήματα σφάλματος.

    1. Δομή της Μονάδας

    2. Και στον Δέκτη, θα εμπεριέχεται ο Ελεγκτής Baud Rate που υλοποιήσατε στο πρώτο μέρος. Σας προτείνεται η εξής δομή:

      module uart_receiver(reset, clk, Rx_DATA, baud_select, Rx_EN, RxD,
      Rx_FERROR, Rx_PERROR, Rx_VALID);
      input reset, clk;
      input [2:0] baud_select;
      input Rx_EN;
      input RxD;

      output [7:0] Rx_DATA;
      output Rx_FERROR; // Framing Error //
      output Rx_PERROR; // Parity Error //
      output Rx_VALID; // Rx_DATA is Valid //
      ...
      baud_controller baud_controller_rx_instance(reset, clk, baud_select, Rx_sample_ENABLE);
      ...

      endmodule

    3. Λειτουργία του Δέκτη

    4. Ο Δέκτης επίσης έχει δυο καταστάσεις, την ανενεργή, οπου περιμένει δεδομένα, και την κατάσταση λήψης, όπου έχει ξεκινήσει και είναι ενεργή η σειριακή παραλαβή των bit. Ο Δέκτης μπαίνει στην κατάσταση λήψης με την ανίχνευση του Start bit. Μια και ο Δέκτης είναι ασύγχρονος ως προς τον Αποστολέα, θα πρέπει πρίν την οποιαδήποτε δειγματοληψία, να συγχρονίστει η ασύγχρονη σειριακή είσοδος.

      Είναι σημαντικό ο Δέκτης να δειγματοληπτεί σωστά τα σειριακά δεδομένα, έτσι, για μέγιστη αξιοπιστία, η δειγματοληψία του Δέκτη θα πρέπει να πραγματοποιείται στην προβλεπόμενη μέση του επομένου bit. Η συγκεκριμένη πρόβλεψη, και η κατάλληλη ευθυγράμμιση της δειγματοληψίας, γίνεται σε σχέση με το Start bit, μετρώντας τον κατάλληλο αριθμό ενεργών κύκλων, σύμφωνα με το Baud Rate. Στο Δέκτη, οι ενεργοί κύκλοι σηματοδοτούνται απο το σχετικό σήμα Rx_sample_ENABLE.

      Για την υλοποίηση του Δέκτη, σας προτείνεται να χρησιμοποιήσετε αναλόγως ενα μετρητή δεδομένων, όπου ανάλογα με το bit που αναμένεται, θα γίνονται οι κατάλληλες ενέργειες. Τα bit δεδομένων θα πρέπει να ολισθαίνουν ενα προς ενα σε εναν καταχωρητή, έτσι ώστε να παραδοθούν μετά παράλληλα στο σύστημα. Το πέρας της επικοινωνίας σηματοδοτείται απο την δειγματοληψία του Stop bit στον κατάλληλο κύκλο λήψης. Τότε, θα πρέπει να ενεργοποιείται η λειτουργία των Rx_VALID, Rx_DATA[7:0] , όπως εξηγήθηκε παραπάνω.

    Όταν το κύκλωμα λειτουργεί όπως πρέπει, επιδείξτε τον κώδικα Verilog που γράψατε για το κύκλωμα και το πλαίσιο δοκιμής, και τα αποτελέσματα της προσομοίωσης σε επιτηρητή του εργαστηρίου.
  11. Μέρος Δ - Σύστημα UART Αποστολέα-Δέκτη για Σειριακή Μεταφορά Δεδομένων

  12. Έχοντας υλοποιήσει τον Αποστολέα και Δέκτη, ο στόχος τώρα είναι να συννενωθούν σε ένα πλήρες κανάλι UART. Υλοποιήστε το ζεύγος Αποστολέα-Δέκτη, και το κατάλληλο πλαίσιο δοκιμής για να ελέγξετε ότι η μεταφορά των τεσσάρων διαδοχικών λέξεων γίνεται σωστά, και ότι τα απεσταλμένα δεδομένα παραλαμβάνονται σωστά στην πλευρά του Δέκτη. Η επικοινωνία του πλαισίου δοκιμής με τους Αποστολέα και Δέκτη, θα πρέπει να βασίζεται αποκλειστικά στο πρωτόκολλο των σχετικών σήματων, λ.χ. Rx_VALID, Tx_BUSY, και όχι σε μέτρηση κύκλων ή απόλυτες καθυστερήσεις.

    Προεραιτικά , μετατρέψτε το πλαίσιο δοκιμής σε δυο κυκλώματα τα οποία θα είναι συνθέσιμα στην FPGA. Το πρώτο, οδηγεί τον Αποστολέα με τον ίδιο τρόπο, δηλαδή του παρέχει την αλληλουχία των τεσσάρων δεδομένων. Το δεύτερο, λαμβάνει το δεδομένο που παρέλαβε ο Δέκτης, και χρησιμοποιεί μια κατάλληλη τροποποίηση του κυκλώματος του Οδηγού 7-τμημάτων που φτιάξατε στην πρώτη Εργαστηριακή Εργασία, για να απεικονίσει τα δυο δεκαεξαδικά ψηφία του. Επιπλέον, σας προτείνεται να χρησιμοποιείσετε τους σταθερούς διακόπτες της FPGA για επιλογή του Baud Rate.

    (Θα δωθεί μπόνους στην βαθμολογία για την υλοποίηση του προεραιτικού μέρους) Όταν το κύκλωμα λειτουργεί όπως πρέπει, επιδείξτε τον κώδικα Verilog που γράψατε, τα αποτελέσματα της προσομοίωσης, και προεραιτικά το κύκλωμα εν λειτουργία σε επιτηρητή του εργαστηρίου.
  13. Προθεσμία Παράδοσης, Υποβολή της Εργασίας και Αναφορά

  14. Η προθεσμία παράδοσης της 2ης εργασίας είναι η 18/11/2020.

    Μέχρι την προθεσμία της εργασίας θα πρέπει:
  15. Ερωτήσεις και Απορίες

  16. Για οποιεσδήποτε ερωτήσεις και απορίες εκμεταλλευτείτε τον χρόνο και τον χώρο του εργαστηρίου και ρωτήστε τους επιτηρητές.

Χ. Σωτηρίου - Tελευταία ενημέρωση - 1/11/2020.