Микроконтроллеры | Светодиодный сдвиговый регистр MBI5026GF |
|
---|---|---|
Делаю динамическую индикацию с применением сдвигового регистра MBI5026GF, у которого есть стабилизация тока. Регистры подключены цепочкой, выход первого SDO соединяется с входом второго SDI. Сигнал CLK подается одновременно на все микросхемы. Заметил, что они работает немного не так, покопавшись с лог. анализатором я заметил, что сигнал на выходе микросхемы не соответствует входному: Черным показан сигнал клока, далее сигнал с выхода МК, красным и желтым - сигнал после первой и второй микросхемы. Судя по даташиту, MBI5026GF "записывает" байт в момент перехода клока с "0" в "1". Это первое мое общение со сдвиговыми регистрами, поэтому не знаю, куда копать дальше. Между байтами выход МК на SDI пребывает в "0", а на выходе первой и последующих микросхем в "1". Частота клока 160 кГц, кроме первого импульса, который имеет длительность 1 мкс (хотя и в допусках даташита на регистр), но я пока не понимаю, почему аппаратный SPI микроконтроллера NUC220LE3AN дает первый короткий импульс. Передаю с МК байт 0x55FF. Вот так выглядит передача байта 0x81 (первый и последний бит "1", остальные "0"): |
|
|
Сергей К: Сергей Квчера, 23:41 (вчера, 23:51) Судя по даташиту, MBI5026GF "записывает" байт в момент перехода клока с "0" в "1". Клок никуда байт не записывает. Он только сдвигает содержимое сдвигового регистра, вдвигая очередной бит с SDI во внутрь. После передачи всех битов (16*N) подаётся записывающий импульс на вход LE. Переданные данные после импульса LE появляются на выходах микросхемы (при условии, что уровень на ОЕ низкий). |
|
|
На этих регистрах: http://ucprog.ucoz.ru/publ/chasy_termometr_s_bolshimi_led_s_radiodatchikom/1-1-0... |
|
|
Tadas: После передачи всех битов (16*N) подаётся записывающий импульс на вход LE. Переданные данные после импульса LE появляются на выходах микросхемы (при условии, что уровень на ОЕ низкий). Дополню... Но если честно, я так и не понял, в чём проблема... |
|
|
DWD: Но если честно, я так и не понял, в чём проблема... Мне нужно загрузить, например, байт 0x81 во второй 16-ти битный регистр, я передаю в первый 0x81 0xFF 0xFF 0xFF (т.е. 4 байта), после загрузки первых двух байт в первую микросхему, она должна с каждым следующим клоком выгружать на свой выход "лишние" биты, которые были загружены первыми (сдвигать). Но на выходе вместо "0х81" я получаю "0х01" (т.е. левый бит пропал). Если посмотреть на эту осциллограмму, то видно, что на входе первого регистра первый бит был "1" (коричневая осциллограмма), а на ее выходе он уже пропал (красная). У меня 6 регистров соединены последовательно, работают с динамической индикацией. Tadas: Переданные данные после импульса LE появляются на выходах микросхемы (при условии, что уровень на ОЕ низкий). Это работает. |
|
|
Сергей К: на ее выходе он уже пропал (красная). А почему на "ее выходе" держится высокий уровень, даже между байтами? Входы у микрух ведь идентичные, значит на вход должен подаваться идентичный сигнал. |
|
|
Сергей К: Это работает. Т.е. на выходах появляются правильные данные ? Сергей К: а на ее выходе он уже пропал (красная). Никуда он не пропал. После шестнадцатого клока 1 и стоит на выходе. При следующем клоке она вдвинется в следующий регистр. Чудес не бывает. Чтобы проще разобраться было, перед подачей исследуемого байта вгоните в цепочку регистров серию нулей чтбы стереть то, что там раньше было. Тогда ясней будет видно что входит и что выходит. |
|
|
Должна стоять на 17ом |
|
|
Все, как всегда. Пропаял выводы SDI/SDO и все заработало. Tadas: Т.е. на выходах появляются правильные данные ? На первом регистре - да, а на остальных не все биты выставлялись верно. Причиной оказалась плохая пайка. |
|
|
Сергей К: Причиной оказалась плохая пайка. Еще бы картинку приложить правильно транслируемых битов. Для закрытия вопроса ;) Как пример для разбирательства: |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |