PDA

Επιστροφή στο Forum : Interfacing MBI5042



acmilangr
27-06-12, 13:41
http://www.radiodetali.com/pdf/macroblock/MBI5042%20Preliminary%20Datasheet%20V1.00-English.pdf

Καλησπέρα. Θα ήθελα βοήθεια για αυτό τι IC. είναι ενα LED DRIVER. Η απορία μου είναι στο πώς μπορώ να αλάζω το brightness(pwm) σε κάθε έξοδο του.

Διάβασα το datasheet αλλα δεν έβγαλα άκρη

bchris
27-06-12, 16:03
Στο DCLK δινεις ενα σταθερο παλμο.
Στο SDI τωρα, στελνεις τα data σου. Οταν στειλεις 16bit, δινεις κι ενα παλμο στο LE οποτε τα 16 bit που εστειλες πριν, περναν στους εσωτερικους shift registers. --Σελ. 12

acmilangr
27-06-12, 20:25
Στο DCLK δινεις ενα σταθερο παλμο.
Στο SDI τωρα, στελνεις τα data σου. Οταν στειλεις 16bit, δινεις κι ενα παλμο στο LE οποτε τα 16 bit που εστειλες πριν, περναν στους εσωτερικους shift registers. --Σελ. 12
Αυτό το γνωρίζω. μιλάω για τα brightness της κάθε εξόδου

hlias0
27-06-12, 21:21
Στέλνεις 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
}

αυτό βοηθάει καθόλου? Μπορεί να λέω και μλκιες

acmilangr
27-06-12, 21:40
Στέλνεις 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? Δεν νομίζω

hlias0
27-06-12, 21:55
Ναι μέσω SDI. Δεν έχεις άλλο τρόπο επικοινωνίας με το chip. Έτσι δεν είναι?

acmilangr
27-06-12, 22:53
Ναι μέσω SDI. Δεν έχεις άλλο τρόπο επικοινωνίας με το chip. Έτσι δεν είναι?
Υπάρχει και το GCLK (Gray Scale Clock Terminal)

hlias0
28-06-12, 08:01
Στην σελίδα 2 (block diagram) το GCLK φαίνεται να χρονίζει το PWM και να μην έχει σχέση με data input. To GCLK πάει σε ένα 16-bit counter ο οποίος χρησιμοποιείται από τους 16 comparators για το Duty Cycle του κάθε PWM output.

Είναι ρολόι δηλαδή, δεν έχει σχέση με data input.

acmilangr
28-06-12, 09:24
Στην σελίδα 2 (block diagram) το GCLK φαίνεται να χρονίζει το PWM και να μην έχει σχέση με data input. To GCLK πάει σε ένα 16-bit counter ο οποίος χρησιμοποιείται από τους 16 comparators για το Duty Cycle του κάθε PWM output.

Είναι ρολόι δηλαδή, δεν έχει σχέση με data input.


τότε τελικά πως γίνεται;

bchris
28-06-12, 10:00
Η αληθεια ειναι οτι το datasheet του δεν ειναι και υποδειγμα αναλυτικοτητας...
Μια δοκιμη θα ξεδιαλυνει το τοπιο :)

hlias0
03-07-12, 14:52
Τι έγινε τελικά με αυτό το κατάφερες?

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