Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

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

Чт окт 27, 2016 08:32:02

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

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

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

Подскажите пожалуйста.
Вложения
AT Mega16 + MAX7219_program.txt
(681 байт) Скачиваний: 303
AT Mega16 + MAX7219_proteus.pdf
(16.72 KiB) Скачиваний: 258
AT Mega16 + MAX7219.pdf
(47.04 KiB) Скачиваний: 264

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

Чт окт 27, 2016 11:15:43

Без МК не проверить.
Разве что набросать тест-программу "от фонаря" - но у меня такой пакости (MAX7219) в наличии нету, а делать "просто прикидку"... :sleep:

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

Пт ноя 25, 2016 17:12:05

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

Код:
// 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("--------");

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

Пт дек 30, 2016 17:17:27

Мой 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);   // зажечь сегменты

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

Сб янв 21, 2017 20:16:22

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

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

Пт апр 19, 2019 16:51:11

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

Добавлено after 1 minute 40 seconds:
Aaa ... Все.. это же кодевижн.. понял

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

Вт май 07, 2019 01:35:00

Кстати.. При работе с MAX7219-7221( и не только с ними) следует паузу выдерживать для стабилизации напряжения питания.
Столкнулся с такой оказией. МК PIC. Выдержка была(PWRT), но маловато. Добавил ёмкость и по питанию и... Всё. Индикаторы не горят, хоть лопни. Пришлось в п/п инициализации контроллера вводить программную задержку.

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

Вт май 07, 2019 06:14:06

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

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

Вт май 07, 2019 07:33:18

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