MAX7219 --- не работает

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
shtela
Родился
Сообщения: 18
Зарегистрирован: Ср авг 01, 2012 05:14:12

MAX7219 --- не работает

Сообщение shtela »

Привет всем.
Помогите пожалуйста решить следующую проблему.

Вот уже третий день пытаюсь завести MAX7219, но стабильно ничего не получается. В Протеусе все работает, а в железяках ни фига. Схема и программа во вложении. Программа написана на микропаскале.

Я купил четыре MAX7219. Замена одну на другую эффекта не дает. Может быть подсунули бракованные - я их купил на OLX по цене 25грн за штуку. Можно ли проверить работоспособность MAX7219 без МК???

Подскажите пожалуйста.
Вложения
AT Mega16 + MAX7219_program.txt
(681 байт) 417 скачиваний
AT Mega16 + MAX7219_proteus.pdf
(16.72 КБ) 278 скачиваний
AT Mega16 + MAX7219.pdf
(47.04 КБ) 296 скачиваний
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15546
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: MAX7219 --- не работает

Сообщение BOB51 »

Без МК не проверить.
Разве что набросать тест-программу "от фонаря" - но у меня такой пакости (MAX7219) в наличии нету, а делать "просто прикидку"... :sleep:
x8973
Встал на лапы
Сообщения: 99
Зарегистрирован: Чт мар 08, 2012 18:05:49
Откуда: Пермь

Re: MAX7219 --- не работает

Сообщение x8973 »

Помню, долго бился с этой микрухой. У вас неправильный порядок инициализации. Сначала надо вывести микросхему из сна.

Код: Выделить всё

// Init display
SPI_transmit(0x0F, 0x00); // Тест дисплея выключен
SPI_transmit(0x0C, 0x01); // Выйти из сна
SPI_transmit(0x0B, 0x07); // 8 символов
SPI_transmit(0x09, 0xFF); // Дешифраторы включены
SPI_transmit(0x0A, 0x0F); // Максимальная яркость
MAX7219_show("--------");
Аватара пользователя
levaclaus
Потрогал лапой паяльник
Сообщения: 302
Зарегистрирован: Пн янв 07, 2008 16:56:28
Откуда: Минск

Re: MAX7219 --- не работает

Сообщение levaclaus »

Мой max7221 работает с этим кодом. cvavr

Код: Выделить всё

    //CS      3  // Выбор ведомого
    //MOSI    4  // Передатчик ведущего, приемник ведомого
    //SCK     0  // Тактовый сигнал



 void spi(unsigned char data_h,unsigned char data_l) {
   unsigned char f;
    PORTB.0=0; // SCK = 0
    PORTB.3=0; // CS = 0

    for(f = 0; f<8; f++) {
     
     if (data_h&(1<<7))  {
     PORTB.4=1;  // MOSI = 1                   
      }
       else  { PORTB.4=0;  // MOSI = 0   
     };                 
       
      PORTB.0=1; // SCK = 1
      data_h = (data_h << 1);
      PORTB.0=0; // SCK = 0
    }


    for(f = 0; f<8; f++) {
     
     if (data_l&(1<<7))  {
     PORTB.4=1;  // MOSI = 1                   
      }
       else  { PORTB.4=0;  // MOSI = 0   
     };                 
       
      PORTB.0=1; // SCK = 1
      data_l = (data_l << 1);
      PORTB.0=0; // SCK = 0
    }
      PORTB.3=1;   // CS = 1
  }

***

    spi(9,0b00001111);   //дешифраторы включены первые 4 мест
    spi(10,15);   //яркость //максимальная
    spi(11,6);   //разряды 6 символов 
    spi(15,0);   //Тест дисплея выключен
    spi(12,1);   //Выйти из сна  // если успешно долны зажечься точки


//      spi(1,1);   // зажечь цифру 1 в первом месте
//      spi(2,2);   // зажечь цифру 2 во втором месте
//      spi(3,(128+0));   // зажечь цифру 0 и точку в третьем месте
//      spi(4,8);   // зажечь цифру
//      spi(5,99);   // зажечь сегменты
//      spi(6,13);   // зажечь сегменты
Тимофеич
Родился
Сообщения: 2
Зарегистрирован: Ср июл 20, 2016 14:53:18
Откуда: Москва

Re: MAX7219 --- не работает

Сообщение Тимофеич »

А точнее какая проблема, можете расписать?
1) Начиная с банального, как тут уже упоминали, может на вход Load (ChipSelect) приходить лог. единица и тогда микросхема будет спать.
2) Резистор, определяющий пиковый ток на сегмент, на первой схеме как будто 200 Ом. На второй же рекомендованные 9.53кОм. Проверьте, а то можно сжечь дисплей.
3) На входе по питанию поставьте алюм. электролит этак 47мкФ 16В. У меня были сбои, когда кондера не было. Впрочем, оговорюсь, помимо него был только один другой электролит по ту сторону от платки с MAX7219 и дисплеем.
Аватара пользователя
bafomet911
Открыл глаза
Сообщения: 76
Зарегистрирован: Чт янв 31, 2019 18:49:04
Откуда: Воронежская область

Re: MAX7219 --- не работает

Сообщение bafomet911 »

Блин... А как это у вас PORTB.0? Непонятен именно момент .0

Добавлено after 1 minute 40 seconds:
Aaa ... Все.. это же кодевижн.. понял
Изображение
Аватара пользователя
Vovan555
Мучитель микросхем
Сообщения: 428
Зарегистрирован: Вс мар 12, 2006 14:53:26
Откуда: Вологда

Re: MAX7219 --- не работает

Сообщение Vovan555 »

Кстати.. При работе с MAX7219-7221( и не только с ними) следует паузу выдерживать для стабилизации напряжения питания.
Столкнулся с такой оказией. МК PIC. Выдержка была(PWRT), но маловато. Добавил ёмкость и по питанию и... Всё. Индикаторы не горят, хоть лопни. Пришлось в п/п инициализации контроллера вводить программную задержку.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15546
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: MAX7219 --- не работает

Сообщение BOB51 »

Vovan555
В случае с ПИКами при больших номиналах емкостей(470uF и более) на линии питания иная проблема -
медленное наростание/спад напряжения при критичных перепадах.
Надо и собаку и BOD активировать и контроль типа сброса.
Это "обратная сторона" их мизерного энергопотребления.
Возможно подобные неприятности и для других микропотребляющих МК/СБИС будут актуальны
8)
Аватара пользователя
Vovan555
Мучитель микросхем
Сообщения: 428
Зарегистрирован: Вс мар 12, 2006 14:53:26
Откуда: Вологда

Re: MAX7219 --- не работает

Сообщение Vovan555 »

Собака у меня всегда "живая", а вот сброс по питанию я и упустил в тот момент..
Ответить

Вернуться в «Периферия»