PDA

Επιστροφή στο Forum : SERIAL EEPROM σε PIC



DT200
25-07-06, 17:14
Έχει χρησιμοποιήσει κάποιος Serial eeprom σε συνεργασία με pic?
Θα ήθελα να ρωτήσω αν μπορούμε να κάνουνε επιλεκτική εγγραφή ή
Θα πρέπει κάθε φορά να την σβήνουνε όλη και πάλι εγγραφή από την αρχή

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

DT200
29-07-06, 19:31
Από ότι φαίνεται θα είμαι ο πρώτος σε αυτό το φόρουμ που θα επικοινωνήσω PIC με serial EEPROM ,
ήδη έχω κάνει μεγάλη πρόοδο , δηλαδή, έχω φτιάξει έναν programmer
και έχω γράψει τα δεδομένα μέσα στην EEPROM αυτή τη στιγμή σχεδιάζω το PCB
που θα φιλοξενήσει τον PIC, την απαιτούμενη LCD, την EEPROM και μερικά πλήκτρα
για να εκτελεστή κάποιο πρόγραμμα που να απαιτεί επιπλέον μνήμη.

Θα σας κρατάω ενήμερους και ελπίζω να έχω της απαντήσεις σε μελλοντικά παρόμοια θέματα

Επιστήμων
29-07-06, 23:41
Αν και δεν έχω ασχοληθέί με σειριακή μνήμη αυτό που ξέρω
είναι ότι για να γράψεις σε ένα επιλεγμένο σημείο
της μνήμης κάνεις πρώτα ανάγνωση μέχρι το σημείο που
θέλεις και έπειτα κάνεις εγγραφή.
Ελπίζω να βοήθησα .

hardcode
30-07-06, 01:03
Η απάντηση που ψάχνεις βρίσκεται στο datasheet της EEPROM που θες να χρησιμοποιήσεις. Ποιά ακριβώς eeprom έχεις?

DT200
31-07-06, 08:55
Έχω την πασίγνωστη 24C04

chip
31-07-06, 23:08
Μάλλον ναι θα είσαι ο πρώτος!
Η οποία είναι της Microchip? ή της ST? (απλά από περιέργεια)
Ο τρόπος προγαρματισμού ενός byte περιγράφεται στο pdf της microchip στην παράγραφο 5.0 και δεν πρόσεξα να λέει κατι για ανάγνωση της διεύθυνσης αυτής πρώτα.
Άλλωστε θα ήταν παράξενο να μην γραφονταν/σβήνονται ένα byte την φορά στις EEPROM αφού αυτό είναι το κατεξοχήν χαρακτηριστικό της τεχνολογίας EEPROM σε σχέση με την τεχνολογία flash και το οποίο χαρακτηριστικό τις κάνει πιο ακριβές. (για την ακρίβεια ο τρόπος κατασκευής τους τις κάνει πιο ακριβές αφού καταλαμβάνουν σχεδόν τριπλασιο μέγεθως chip για ίδια χωρητικότητα με τις flash)

DT200
31-07-06, 23:30
Χρησιμοποιώ την 24C04 της ST.
Πολύ ενδιαφέρων αυτά που ανέφερες περί του τρόπου
κατασκευής τον διάφορων τύπων μνημών :wink:

DT200
27-08-06, 00:57
Τελικά κύριοι συνάδελφοι , μετά από αρκετές ώρες διαβάσματος και πειραμάτων
ο pic 16f876 πραγματοποίησε εγγραφή και ανάγνωση από την 24C04 EEPROM
μέσο το δίαυλου I2C και το αποτέλεσμα εμφανίσθηκε σε μια LCD 2Χ16 . \:D/

Έχω προσθέσει και ένα RS 232 για να μπορέσω να έχω και συριακή επικοινωνία
μέσο του PC αλλά κάτι δεν πάει , καλά διότι μου στέλνει ασταμάτητα τα δεδομένα
που έχει να στείλει μόνο μία φορά και γεμίζει η οθόνη μου από τους ίδιους χαρακτήρες.
Καμία ιδέα ?

Υ.Γ τον Αύγουστο δεν μπορείς να συγκεντρωθείς με τίποτα
λίγο οι διακοπές λίγο τα γκομενάκια στις παραλίες χάζεψα ! :wink:

gsmaster
27-08-06, 17:49
Τελικά κύριοι συνάδελφοι , μετά από αρκετές ώρες διαβάσματος και πειραμάτων
ο pic 16f876 πραγματοποίησε εγγραφή και ανάγνωση από την 24C04 EEPROM
μέσο το δίαυλου I2C και το αποτέλεσμα εμφανίσθηκε σε μια LCD 2Χ16 . \:D/

Έχω προσθέσει και ένα RS 232 για να μπορέσω να έχω και συριακή επικοινωνία
μέσο του PC αλλά κάτι δεν πάει , καλά διότι μου στέλνει ασταμάτητα τα δεδομένα
που έχει να στείλει μόνο μία φορά και γεμίζει η οθόνη μου από τους ίδιους χαρακτήρες.
Καμία ιδέα ?

Υ.Γ τον Αύγουστο δεν μπορείς να συγκεντρωθείς με τίποτα
λίγο οι διακοπές λίγο τα γκομενάκια στις παραλίες χάζεψα ! :wink:

Απο που στέλνεις? που εμφανίζεις? Υπάρχει αμφίδρομη επικοινωνία?

Αυτό που υποψιάζομαι ότι έχεις κάνει είναι ότι στο Loop που κάνει ο μικροελεκτής, έχεις βάλει να στέλνει και σειριακά στο pc, οπότε αυτό κάνει ότι του λες δλδ στέλνει συνέχεια στο pc.

ΥΓ. Σε τι γλώσσα γράφεις κώδικα για τον pic??

DT200
28-08-06, 00:08
Το πρόγραμμα το γράφω σε mikrobasic .
την υποψία ότι φταίει το loop την έχω αποκλείσει διότι έγραψα για δοκιμή ένα μικρό πρόγραμμα
το οποίο είχε σαν αποστολή να στείλει έναν μόνο χαρακτήρα και μετά να
σταματήσει την εκπομπή.
Έχω αντικαταστήσει το RS 232 με ένα άλλο (που στην πραγματικότητα μου έχουν δώσει το SP232A CP της SIPEX ).
Έχω δοκιμάσει να μην του έχω καθορίσει από πριν τον χαρακτήρα αλλά να του τον στέλνω εγώ από το PC και να μου τον επιστρέφει πίσω.
Το αποτέλεσμα πάντα ίδιο ο PIC μου στέλνει ασυναρτησίες (κινέζικα).
Κάτι ενοχοποιητικό που παρατήρησα για SP232A CP είναι ότι αφού απελπίστηκα με την συριακή επικοινωνία έγραψα ένα άσχετο πρόγραμμα που περιλάμβανε οθόνη
LCD και δεν χρησιμοποιούσα καθόλου την θύρα C, όταν έτρεξα το πρόγραμμα δεν
Δούλευε και έφταιγε SP232A CP χωρίς καν να είναι συνδεμένο το 9πινο καλώδιο

gsmaster
28-08-06, 00:42
Το Baud rate το έχεις ρυθμίσει ποντού το ίδιο? σε λογική τιμή? πχ 9600, no parity κτλ...?

EDIT: Το SP232A που έχεις είναι Α που σημαίνει ότι θέλει 100nF πυκνωτές.

DT200
28-08-06, 00:53
Δυστυχώς ναι και έχω βάλει από 300 – 9600
Με όσους πιθανούς συνδυασμούς μπορούσα σε όλες τις ρυθμίσεις
Αυτή τη στιγμή διαβάζω διάφορα μήπως και βγάλω καμία άκρη

The Sipex SP231A, SP232A and SP233A will
operate with capacitors ranging from
0.1 to 100F, either polarized or non–polarized, and
feature several improvements in both performance
and ease of use

Eγώ χρησιμοποιώ 10μF και στους τέσσερις

DT200
28-08-06, 17:00
Έχω κάποια νέα στοιχεία να παραθέσω,
1ον αν έχω κουμπωμένο το SP232A δεν τρέχει σωστά κανένα πρόγραμμα
έχω τσεκάρει με παλμογράφο ότι έχω κανονικά ταλαντώσεις στον κρύσταλλο
και δεν βρίσκω τίποτα ενοχοποιητικό (π.χ. παράσιτο ) σε όλο το κύκλωμα.

2ον έβαλα πυκνωτές 100nF (και τους τέσσερις )

3ον άλλαξα εισόδους και εξόδους , δηλαδή χρησιμοποιούσα r2 in , r2 out , t2 in, t2 out
και πήγα r1 in , r1out , t1 in , t1 out.

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

Καμιά ιδέα ?

gsmaster
28-08-06, 19:13
Άλλαξε τα πιν του μικροελεκτη που χρησιμοποιείς για την σειριακή. Πιστεύω να μπορεί να κάνει softwarικα σειριακή η Basic

DT200
28-08-06, 23:45
Λοιπόν κύριοι ήρθε η ώρα να απολογηθώ … :oops:
Όσοι έχετε διαβάσει τα παραπάνω θα έχετε καταλάβει ότι είχα ένα μεγάλο πρόβλημα.
Αφού βρέθηκα ποια σε αδιέξοδο , χωρείς άλλες ιδέες για λύση , αποφάσισα
να πάρω τον ωραίο μου παλμογράφο και να παίρνω μετρήσεις μέχρι να βρω το παράσιτο ή το πρόβλημα .

Τελικά έχοντας φτάσει στην κλίμακα των 50ns παρατηρώ ότι από την αρχή του κυκλώματος έως το τέλος , ο χαλκός της γείωσης είχε 300mV p-p AC τάση (παίξιμο)
Βέβαια τα 5V υπήρχαν κανονικά αλλά αυτό το παράσιτο τρέλαινε τον PIC.
Αυτή η κυμάτωση προερχόταν από το SP232A.
Το SP232A έχει εσωτερικά μία παλμογεννήτρια που εργάζεται στα 200ΜΗΖ και φορτίζει τους πυκνωτές που θα παράγουν τις τάσης +- 10V.
Το πρόβλημα λύθηκε με την κλασική λύση της τοποθέτησης ενός πυκνωτή 100nF στην είσοδο του κυκλώματος.

Ελπίζω να τα βρείτε ενδιαφέρων όλα αυτά , καλή επιτυχία . :P

gsmaster
29-08-06, 16:04
Έλα ρε συνονόματε, στους μΕ ΠΑΝΤΑ βάζουμε 100nF στα πιν τοροφοδοσίας. Το θεώρησα αυτονόητο...

DT200
29-08-06, 18:14
Και εγώ , από σήμερα όμως ! :D
διότι μέχρι χτες δεν είχα ποτέ τέτοια προβλήματα.
Την τάση των 5V την έπαιρνα μέσω ενός usb hub που έχω συνδέσει πάνω ποντίκι , modem , τροφοδοσία της συσκευής προγραμματισμού δηλαδή τέσσερις συσκευές , είναι πολλές ? :hammer:

Υ.Γ. Σε ευχαριστώ για το ενδιαφέρων φίλε.