PDA

Επιστροφή στο Forum : Επιλογέας Eprom M27C256B



cosecon
13-11-14, 12:43
Καλημέρα. Έχουμε και λέμε: Εγκέφαλος αυτοκινήτου έχει eprom M27C256B. Υπάρχουν 2 eprom.
Το ζητούμενο είναι αν μπορεί να φτιαχτεί adaptor που να έχει κουμπομένα και τα 2 και να επιλέγεις με διακόπτη. (με σβηστή μηχανή).
Μια λύση είναι ρελεδάκι με σύνολο 28 επαφών....δεν μου αρέσει ....
Παρακάτω είναι το pinout.

http://www.hlektronika.gr/forum/attachment.php?attachmentid=53552&stc=1

Επειδή από Εprom δεν έχω ιδέα, ρωτάω το εξής: θα μπορούσαν να συνδεθούν παράλληλα τα i/o pins και tο ground μόνιμα και η επιλογή να γίνεται με τα Chip enable, output enable supply voltage?????
Το Program supply φαντάζομαι το θέλει μόνο κατα τον προγραμματισμό????

klik
13-11-14, 13:25
Διακοπτάκι για τα chip enable, output enable. Το ασύνδετο, θα πρέπει να έχει pull up στις ακίδες αυτές. Το άλλο (σε χρήση) θα ελέγχεται από την πλακέτα.
Τώρα χωροταξικά, θέλει προσοχή για να μην έχεις θόρυβο. Θα χρειαστείς και πυκνωτές decoupling στην τροφοδοσία για το κάθε τσιπάκι.

cosecon
13-11-14, 15:38
Διακοπτάκι για τα chip enable, output enable. Το ασύνδετο, θα πρέπει να έχει pull up στις ακίδες αυτές.
Το άλλο (σε χρήση) θα ελέγχεται από την πλακέτα.
Τώρα χωροταξικά, θέλει προσοχή για να μην έχεις θόρυβο. Θα χρειαστείς και πυκνωτές decoupling στην τροφοδοσία για το κάθε τσιπάκι.

Ευχαριστώ πολύ.
Κάτι τέτοιο εννοείς; Pull-up 10K είναι οκ ή είναι μεγάλες;
decoupling 0.1uf????
στο program supply δεν βάζω τίποτα ή το συνδέω με ground?
http://www.hlektronika.gr/forum/attachment.php?attachmentid=53554&stc=1

dog80
13-11-14, 17:27
Δέν ξέρω αν είναι δυνατόν να τα βάλεις το ένα πάνω στο άλλο, όπως εδώ: https://www.youtube.com/watch?feature=player_detailpage&v=Engw6uxgpRg#t=429

cosecon
13-11-14, 17:33
Δέν ξέρω αν είναι δυνατόν να τα βάλεις το ένα πάνω στο άλλο, όπως εδώ: https://www.youtube.com/watch?feature=player_detailpage&v=Engw6uxgpRg#t=429

Δεν έχω πρόβλημα χώρου. Για την συνδεσμολογία αναρωτιέμαι.

klik
14-11-14, 00:02
Με τις PULL UP στο σχέδιο, δεν υπάρχει πρόβλημα αν οι αλλαγές θέσης στο διακόπτη γίνουν με σβηστή μηχανή (άραγε κόβεται η τροφοδοσία του "εγκεφάλου" όταν σβήνεις μηχανή; Έλεγξε το). Οι 10ΚΩ είναι ικανοποιητικές.

Όμως αν υπάρχει ενδεχόμενο, να πατηθεί ο διακόπτης ενώ υπάρχει ρεύμα, στιγμιαία θα είναι floating οι ακίδες αυτές (μέχρι να αλλάξει κατάσταση ο διακόπτης) και μπορούν να ενεργοποιηθούν οι έξοδοι και των δυο ic ταυτόχρονα. Αυτό παλιά που όλες οι έξοδοι ήταν opencollector και υπήρχαν pull up στα address bus και data bus δεν πείραζε, αλλά τώρα πολλά τσιπάκια είναι cmos με push-pull εξόδους (ώστε να μην υπάρχει κατανάλωση ρεύματος στις αντιστάσεις αλλά και μείωση όγκου υλικών), οπότε μπορεί να οδηγηθεί κάποια γραμμή data-bus σε overshoot κατάσταση (το cpu να προσπαθεί να το οδηγήσει high και η eprom low).
Θα μπορούσες να έχεις μόνιμα pull up 33KΩ και στα δυο τσιπάκια (τουλάχιστο στην ακίδα output enable) και ο διακόπτης να συνδέει όποιο τσιπάκι θέλεις με την πλακέτα.
Ο διακόπτης δηλαδή να μην επηρεάζει τα pull up τα οποία θα είνα μόνιμα συνδεδεμένα στα τσιπάκια).

Τα decoupling 0.1nF είναι αρκετά αν κολλήσεις τα τσιπάκια το ένα πάνω στο άλλο στη βάση. Αλλιώς ίσως να είναι καλύτερα να βάλεις τον 100nF και έναν μικρό ηλεκτρολυτικό 10μF.

Το Vpp θα έχει ότι έχει το socket (ίσως να γίνεται προγραμματισμός με software) ή ground (χωρίς δυνατότητα προγραμματισμου).

cosecon
14-11-14, 16:02
Ευχαριστώ πολύ για την απάντηση.
Για να αποφύγω την αλλαγή σε λειτουργία, αλλά να δώσω και χρόνο στην αλλάγη, σκέφτομαι να βάλω ένα arduino nano.
Θα ελέγχει ότι είναι σβηστός ο κινητήρας, θα κόβει ρεύμα στον εγκέφαλο απο το κεντρίκο ρελέ και 1 πρόσθετο ρελέ. (έχει 2 τροφοδοσίες, μια διακοπρόμενη και μια συνεχή από μπαταρία). Η αλλαγή θα γίνεται με 2 ρελεδάκια. Θα κόβει πρώτα το 1 και μετά από 1 μικρό χρόνο θα δίνει στο άλλο. (περιττο με κομμένες τροφοδοσίες αλλά δεν πειράζει, ρελεδάκια είναι αυτά καμιά φορά κολλάνε...)
Έτσι θα αποφευχθούν δυσάρεστες εκπλήξεις.

picdev
14-11-14, 16:57
τι σημαίνει "floating" ? αν μπεί optocoupler δεν μπορεί να λυθεί το πρόβλημα?

επίσης klik λές, όταν ειναι και τα 2 σε output,λές το χρόνο που μπορεί να θέλει ο μΕ για να κάνεις τις εισόδους εξόδους?

klik
14-11-14, 17:56
floating = ασύνδετο (απροσδιόριστη είσοδος)
output και τα δυο εννοώ τον μΕ (να οδηγεί high) και την eprom (να οδηγεί low) μέχρι να συνδέσει ο διακόπτης
την ακίδα output_enable στο κύκλωμα (όσο δηλαδή είναι floating)

chip
14-11-14, 18:10
προσοχή γιατί αν κολλήσει ο εγκέφαλος και κάνει τρελά.... έστω αν σβήσει τον κινητήρα.... το αυτοκίνητο μπορεί να μην ελέγχεται....

αν και δεν μου αρέσει να απαντάω σε ερωτήματα όπου μία μετατροπή θα μπορούσε να έχει απρόβλεπτα αποτελέσματα....
βλέποντας τον εγκέφαλο του αυτοκινήτου σαν ένα μικροϋπολογιστή... καλύτερα είναι να μπουν και τα δύο προγράμματα σε μια 27c512 και απλά να ελέγχεται το Pin a15 για το αν θα παίζει ο ένας κώδικας ή ο άλλος...

Οι μνήμες στο video του dave δεν μπήκαν η μία πάνω στην άλλη για θέμα χώρο αλλά για ποιο εύκολη υλοποίηση (λιγότερες συνδέσεις) και το βασικότερο γιατί έτσι είναι ποιο αξιόπιστο (δεν έχει καλώδια που θα μπορούσε να υπάρχει θόρυβος και ανακλάσεις στα σήματα). Αυτό ήταν λιγότερο πρόβλημα την εποχή της μνήμης ΜΜ2114 (το 1980...) αλλά είναι πολύ σημαντικότερο με τους σύγχρονους επεξεργαστές και μνήμες (αφού εργάζονται σε υψηλότερες συχνότητες).

cosecon
20-11-14, 15:23
προσοχή γιατί αν κολλήσει ο εγκέφαλος και κάνει τρελά.... έστω αν σβήσει τον κινητήρα.... το αυτοκίνητο μπορεί να μην ελέγχεται....

αν και δεν μου αρέσει να απαντάω σε ερωτήματα όπου μία μετατροπή θα μπορούσε να έχει απρόβλεπτα αποτελέσματα....
βλέποντας τον εγκέφαλο του αυτοκινήτου σαν ένα μικροϋπολογιστή... καλύτερα είναι να μπουν και τα δύο προγράμματα σε μια 27c512 και απλά να ελέγχεται το Pin a15 για το αν θα παίζει ο ένας κώδικας ή ο άλλος...

Οι μνήμες στο video του dave δεν μπήκαν η μία πάνω στην άλλη για θέμα χώρο αλλά για ποιο εύκολη υλοποίηση (λιγότερες συνδέσεις) και το βασικότερο γιατί έτσι είναι ποιο αξιόπιστο (δεν έχει καλώδια που θα μπορούσε να υπάρχει θόρυβος και ανακλάσεις στα σήματα). Αυτό ήταν λιγότερο πρόβλημα την εποχή της μνήμης ΜΜ2114 (το 1980...) αλλά είναι πολύ σημαντικότερο με τους σύγχρονους επεξεργαστές και μνήμες (αφού εργάζονται σε υψηλότερες συχνότητες).

Πολύ καλή ιδέα...
Οπότε αν κατάλαβα καλά η διαδικασία έχει ως εξής:

Διαβάζουμε το 1M27C256B, διαβάζουμε το 2 M27C256B και τα γράφουμε και τα 2 στο 27c512.
Το 1ο το γράφουμε με το A15 low και το δεύτερο με Α15 high και απλά δίνουμε με εξωτερική σύνδεση το low-high.

chip
20-11-14, 18:41
ακριβώς!
απλά θα χρειαστείς ένα προγραμματάκι που θα σου φιάξει το αρχείο προγραμματισμού με τον πρώτο κώδικα στα πρώτα 256Kbit και τον δεύτερο στα επόμενα 256Kbit...
πιστεύω θα βρεις εύκολα... υπάρχουν δωρεάν hex editor που νομίζω το κάνουν αυτό....

δοκίμασε το Hxd Hex editor... έχει μία λειτουργία που λέγεται concatenate και νομίζω είναι αυτό που χρειάζεσαι!
ίσως βέβαια να το κάνει και ο ίδιος ο προγραμματιστής που θα χρησιμοποιήσεις.

gsmaster
20-11-14, 19:00
Λογικά θα γίνεται να προγραμματίσεις το 512 σαν 256 έχοντάς το πιν Α15 την μια φορά στο "0" για το ένα πρόγραμμα και στο "1" για το δεύτερο, οπότε δεν χρειάζεται το ειδικά προγράμματα κτλ...
Δεν το έχω δοκιμάσει, απλά υποθέτω ότι γίνεται.

pantelisyzfr1
20-11-14, 19:27
Πολύ καλή ιδέα...
Οπότε αν κατάλαβα καλά η διαδικασία έχει ως εξής:

Διαβάζουμε το 1M27C256B, διαβάζουμε το 2 M27C256B και τα γράφουμε και τα 2 στο 27c512.
Το 1ο το γράφουμε με το A15 low και το δεύτερο με Α15 high και απλά δίνουμε με εξωτερική σύνδεση το low-high.

το low-high θα το κάνει ο προγραμματιστής μόνος

εννοείται οτι θα δηλώσεις στον προγραμματιστή μνήμη 27c512

cosecon
20-11-14, 19:38
το low-high θα το κάνει ο προγραμματιστής μόνος

εννοείται οτι θα δηλώσεις στον προγραμματιστή μνήμη 27c512
εχεις δικιο, οπως το εγραψα. ηταν λαθος .για την χρηση ελεγα για το Α15 οχι για τον πργραμματισμο.



Καμια προταση programmer οικονομικου; Να μπορει να τα διαβασει ομως. Δεν εχω το περιεχομενο, εχω μονο τις 2 μνημες.

chip
20-11-14, 19:38
δε γίνεται να κάνει προγραμματισμό 27c512 έχοντας ορίσει 27c256 γιατί έχουν το Vpp σε διαφορετικό ποδαράκι!
Επίσης ο προγραμματιστής (τουλάχιστον οι επώνυμοι το κάνουν) ελέγχει τον τύπο της μνήμης διαβάζοντας το chip id και αν δεν αντιστοιχεί σε αυτό που έχεις ορίσει οτι θα προγραμματίσεις δεν προχωρούν.....