Επιστροφή στο Forum : Interfacing MBI5042
http://www.radiodetali.com/pdf/macroblock/MBI5042%20Preliminary%20Datasheet%20V1.00-English.pdf
Καλησπέρα. Θα ήθελα βοήθεια για αυτό τι IC. είναι ενα LED DRIVER. Η απορία μου είναι στο πώς μπορώ να αλάζω το brightness(pwm) σε κάθε έξοδο του.
Διάβασα το datasheet αλλα δεν έβγαλα άκρη
Στο DCLK δινεις ενα σταθερο παλμο.
Στο SDI τωρα, στελνεις τα data σου. Οταν στειλεις 16bit, δινεις κι ενα παλμο στο LE οποτε τα 16 bit που εστειλες πριν, περναν στους εσωτερικους shift registers. --Σελ. 12
Στο DCLK δινεις ενα σταθερο παλμο.
Στο SDI τωρα, στελνεις τα data σου. Οταν στειλεις 16bit, δινεις κι ενα παλμο στο LE οποτε τα 16 bit που εστειλες πριν, περναν στους εσωτερικους shift registers. --Σελ. 12
Αυτό το γνωρίζω. μιλάω για τα brightness της κάθε εξόδου
Στέλνεις 16 φορές ένα 16-bit gray scale code. Αυτό αποθηκεύεται στους 16 εσωτερικούς register. Το chip μετά αναλαμβάνει να μετατρέψει αυτό το code σε PWM (δλδ σε ένα brightness level) για το κάθε output. Απ' ότι καταλαβαίνω για να αλλάξεις το brightness σε ένα output πρέπει αναγκαστικά να ξαναστείλεις τα codes για όλα τα outputs.
Στον κώδικά σου δλδ:
unsigned int codes[16] = { ... };
for( i=0 to 15 )
{
SendCode( codes[i] );
}
void SendCode( unsigned int code )
{
// auto pou eipe o bchris
}
αυτό βοηθάει καθόλου? Μπορεί να λέω και μλκιες
Στέλνεις 16 φορές ένα 16-bit gray scale code. Αυτό αποθηκεύεται στους 16 εσωτερικούς register. Το chip μετά αναλαμβάνει να μετατρέψει αυτό το code σε PWM (δλδ σε ένα brightness level) για το κάθε output. Απ' ότι καταλαβαίνω για να αλλάξεις το brightness σε ένα output πρέπει αναγκαστικά να ξαναστείλεις τα codes για όλα τα outputs.
Στον κώδικά σου δλδ:
unsigned int codes[16] = { ... };
for( i=0 to 15 )
{
SendCode( codes[i] );
}
void SendCode( unsigned int code )
{
// auto pou eipe o bchris
}
αυτό βοηθάει καθόλου? Μπορεί να λέω και μλκιες
πως τα στέλνω όμως μέσω του SDI? Δεν νομίζω
Ναι μέσω SDI. Δεν έχεις άλλο τρόπο επικοινωνίας με το chip. Έτσι δεν είναι?
Ναι μέσω SDI. Δεν έχεις άλλο τρόπο επικοινωνίας με το chip. Έτσι δεν είναι?
Υπάρχει και το GCLK (Gray Scale Clock Terminal)
Στην σελίδα 2 (block diagram) το GCLK φαίνεται να χρονίζει το PWM και να μην έχει σχέση με data input. To GCLK πάει σε ένα 16-bit counter ο οποίος χρησιμοποιείται από τους 16 comparators για το Duty Cycle του κάθε PWM output.
Είναι ρολόι δηλαδή, δεν έχει σχέση με data input.
Στην σελίδα 2 (block diagram) το GCLK φαίνεται να χρονίζει το PWM και να μην έχει σχέση με data input. To GCLK πάει σε ένα 16-bit counter ο οποίος χρησιμοποιείται από τους 16 comparators για το Duty Cycle του κάθε PWM output.
Είναι ρολόι δηλαδή, δεν έχει σχέση με data input.
τότε τελικά πως γίνεται;
Η αληθεια ειναι οτι το datasheet του δεν ειναι και υποδειγμα αναλυτικοτητας...
Μια δοκιμη θα ξεδιαλυνει το τοπιο :)
Τι έγινε τελικά με αυτό το κατάφερες?
καλά τα λέει ο bchris με μία δοκιμή θα καταλάβεις περισσότερα από αυτά που λέει το datasheet.
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions Inc. All rights reserved.