Управление MBI5039

Обсуждаем цифровые устройства...
Ответить
Аватара пользователя
Janus
Родился
Сообщения: 3
Зарегистрирован: Вс окт 24, 2010 10:42:14

Управление MBI5039

Сообщение Janus »

Столкнуюся с этим чудом природы - MBI5039 и не могу понять как им управлять. :oops:
Проблема следующая: после импульса LE светодиоды лишь кратковременоо моргают и тишина...
Кто имеет практический навык общения с этим зверем откликнитесь.
Вложения
Lamp.pdf
Схема подключения
(15.45 КБ) 403 скачивания
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15545
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Управление MBI5039

Сообщение BOB51 »

На форуме где-то уже такая тема была...
Поищи документацию на Polytex (www.radiodetali.ru) , Macroblock Inc. (www.macroblock.ru). Там есть нормальные даташиты и апноты (даже на русском). :tea:
Lepehin Evgeniy
Открыл глаза
Сообщения: 72
Зарегистрирован: Вс сен 07, 2008 13:17:31
Откуда: Город Невест

Re: Управление MBI5039

Сообщение Lepehin Evgeniy »

На неё есть несколько версий док с ошибками. Вот вроде по которой я пробовал MBI5039GF.
Вложения
MBI5039_2009.RAR
(274.3 КБ) 343 скачивания
san4esmc
Родился
Сообщения: 12
Зарегистрирован: Вт апр 30, 2013 17:29:16

Re: Управление MBI5039

Сообщение san4esmc »

Покажи код.
Я раньше работал с MBI5026 и MBI5030 - особых отличий от MBI5026 в управлении не вижу:
LE -> LOW
по SPI шлешь 2 байта (16 бит)
LE -> HIGH
Аватара пользователя
Janus
Родился
Сообщения: 3
Зарегистрирован: Вс окт 24, 2010 10:42:14

Re: Управление MBI5039

Сообщение 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);
}


Мне кажеться что косяк где-то в помехах... (объяснить не могу, но одним местом чувствую). Кстати нет ли тут подводных камней? И не надо ли вешать мелкие кондеры на линии...
LedLamps.ru
Родился
Сообщения: 1
Зарегистрирован: Сб авг 24, 2013 21:28:20
Контактная информация:

Re: Управление MBI5039

Сообщение LedLamps.ru »

Друзья, вот ещё документация по этой микросхеме, которая у нас имеется:

http://ledlamps.ru/MBI5039_Application_ ... .01-EN.pdf
http://ledlamps.ru/MBI5039__Datasheet_VA.00-English.pdf
http://ledlamps.ru/Product_Datasheet_Re ... _VA.00.pdf
http://ledlamps.ru/Application_Note-_To ... nglish.pdf

Возможно, что-то в ней будет вам полезно.
woosterstring
Нашел транзистор. Понюхал.
Сообщения: 192
Зарегистрирован: Чт сен 16, 2010 19:47:01
Откуда: Украина

Re: Управление MBI5039

Сообщение 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() и т.д.? Может медленно заработает.
blindpyu
Родился
Сообщения: 1
Зарегистрирован: Вт авг 24, 2010 09:31:14

Re: Управление MBI5039

Сообщение blindpyu »

Janus у меня такая же проблема. Не могу понять как управлять MBI. Ты смог разобраться?
Ответить

Вернуться в «Цифровая техника»