Страница 1 из 1
Управление MBI5039
Добавлено: Чт май 02, 2013 04:02:07
Janus
Столкнуюся с этим чудом природы - MBI5039 и не могу понять как им управлять.
Проблема следующая: после импульса LE светодиоды лишь кратковременоо моргают и тишина...
Кто имеет практический навык общения с этим зверем откликнитесь.
Re: Управление MBI5039
Добавлено: Сб май 04, 2013 09:16:14
BOB51
На форуме где-то уже такая тема была...
Поищи документацию на Polytex (
www.radiodetali.ru) , Macroblock Inc. (
www.macroblock.ru). Там есть нормальные даташиты и апноты (даже на русском).

Re: Управление MBI5039
Добавлено: Вс май 05, 2013 08:13:50
Lepehin Evgeniy
На неё есть несколько версий док с ошибками. Вот вроде по которой я пробовал MBI5039GF.
Re: Управление MBI5039
Добавлено: Пт май 17, 2013 17:27:52
san4esmc
Покажи код.
Я раньше работал с MBI5026 и MBI5030 - особых отличий от MBI5026 в управлении не вижу:
LE -> LOW
по SPI шлешь 2 байта (16 бит)
LE -> HIGH
Re: Управление MBI5039
Добавлено: Ср май 29, 2013 16:15:23
Janus
Вот фрагмент библиотеки
Код: Выделить всё
//LE - заменить на фактически подключеный пин
#define SET_LE(state) (PORTB.2 = state)
#define GET_LE PINB.2
#define DIR_LE(direction) DDRB.2 = direction
//CLK - заменить на фактически подключеный пин
#define SET_CLK(state) (PORTB.1 = state)
#define GET_CLK PINB.1
#define DIR_CLK(direction) DDRB.1 = direction
//SDI - заменить на фактически подключеный пин
#define SET_SDI(state) (PORTB.0 = state)
#define GET_SDI PINB.0
#define DIR_SDI(direction) DDRB.0 = direction
#define HIGH 0x01
#define LOW 0x00
#define OUT 0x01
#define IN 0x00
void MBI5039_Init(void) //инициализация
{
DIR_LE(OUT); //установка направления линии LE
SET_LE(LOW); //вывод 0 на линию LE, далее аналогично для остальных линий
DIR_CLK(OUT);
SET_CLK(LOW);
DIR_SDI(OUT);
SET_SDI(LOW);
}
void MBI5039_Light(unsigned char N) // зажигается нужное кол-во диодов
{
unsigned char i;
for (i=0;i<16;i++)
{
if (i<N) SET_DIO(HIGH);
else SET_DIO(LOW);
SET_CLK(HIGH);
SET_CLK(LOW);
}
SET_LE(HIGH);
SET_LE(LOW);
}
Мне кажеться что косяк где-то в помехах... (объяснить не могу, но одним местом чувствую). Кстати нет ли тут подводных камней? И не надо ли вешать мелкие кондеры на линии...
Re: Управление MBI5039
Добавлено: Сб авг 24, 2013 22:08:09
LedLamps.ru
Re: Управление MBI5039
Добавлено: Вс авг 25, 2013 15:22:27
woosterstring
Использую только MBI5026, SCT2026, STP16CP05 без диагностики.
C MBI5039 не работал, но раз написано Drop-In replacement, то должна работать, код правильный.
Я всегда разделяю питание микросхем и светодиодов, хоть это может показаться избыточным.
Ставлю на 10 драйверов на каждой плате отдельный LDO стабилизатор, запитанный от того же Vled светодиодов, и тантал 100 мкФ на выходе. У каждой микросхемы 100нФ керамика. На Vled платы вешаю дешёвые электролиты из расчёта 50 мкФ на 16 каналов/микросхему. Многие скажут конечно избыточно, но это позволяет не думать о том, как сборщики разведут питание в корпусе (иногда 20-30 А в сумме), проложат шлейфы. На линию обычно ставят буфер после МК, если висит больше 2-3 десятков миксросхем. А учитывая длину шлейфов, которая может достигать нескольких метров (у тех, кто обоснованно не любит очень длинных сдвиговых регистров и регенераторов CLK), буфер необходим.
Cчитаю, что дополнительными емкостями на шине SPI можно добиться отрицательного эффекта.
Вот вспомнил, в оставшемся коде точно нет функций, ссылающихся на те же ножки в обработчиках таймеров? Ато случаются артефакты.
В симуляторе пробовали прогнать код? Я в Proteus двумя 8-разрядными сдвиговыми регистрами моделирую 16-канальный драйвер.
Пробовали приндительные задержки между SET_x() и т.д.? Может медленно заработает.
Re: Управление MBI5039
Добавлено: Чт апр 28, 2016 10:32:30
blindpyu
Janus у меня такая же проблема. Не могу понять как управлять MBI. Ты смог разобраться?