нет реакции от max7219

Тема в разделе "Arduino & Shields", создана пользователем Navi, 6 июл 2017.

  1. Navi

    Navi Нуб

    подключаю Arduino Uno micro-usb к max7219 к двум четырехразрядным индикаторам. подключение проверял; менял чип на запасной; писал скетчи в arduino ide с использованием стандартной библиотеки spi, с использованием библиотеки ledcontrol; но нет реакции, а точнее в любом случае горят все сегменты. help)
     
  2. Igor68

    Igor68 Гуру

    Простите заранее… Вы пример именно для этого устройства испытывали? (я spi именно для ардуино не трогал). Но использовал для at91sam3u4. Сталкивался с тем, что разные режимы для разных устройств встречаются. А именно касательно тактирования:
    1) высокий уровень-фронт низкого уровня
    2) высокий уровень-тыл низклгл уровня
    3) низкий уровень-фронт высокого уровня
    4) низкий уровень-тыл высокого уровня
    Имею ввиду, что каждый бит сопровождается переходом по одному из четырех по тактированию. (Чип селект на индикаторе думаю тоже прсаживаете портом на корпус)
    Попробуйте найти пример именно для этого устройства.
    Еще раз извините!
     
  3. Igor68

    Igor68 Гуру

    Посмотрите осциллографом что на данных и на тактировании.
     
  4. Karabas

    Karabas Гик

    Если все 100% верно, загружайте пример для ledcontrol.
    А самое главное, сам на этом попадал, поставьте по питанию керамику и электролит на 470мкф.
    Есть у китайских клонов косяк при включении.

    Это не шутка из 10 штук без кондера запустилась одна раз-через-раз, с кондером работают все.
     
    arkadyf нравится это.
  5. Navi

    Navi Нуб

    режим выставлял согласно требованиям из даташита. (старший бит вперед + настройки режимов передачи данных) сейчас переберу их все по очереди.. посмотрим. а так еще такой момент.. в даташите указана частота 10 mhz, а в arduino стандарт spi на 4. можно и это, конечно, проверить, но причина должна быть иная
     
  6. Navi

    Navi Нуб

    Arduino работает. кондер по питанию положение не исправил
     
  7. Navi

    Navi Нуб

    вот подробная картина [​IMG]

    Код (C++):
    #include <SPI.h>

    // What pin on the Arduino connects to the LOAD/CS pin on the MAX7219/MAX7221
    #define LOAD_PIN 10

    /**
    * Transfers data to a MAX7219/MAX7221 register.
    *
    * @param address The register to load data into
    * @param value   Value to store in the register
    */

    void maxTransfer(uint8_t address, uint8_t value) {

      // Ensure LOAD/CS is LOW
      digitalWrite(LOAD_PIN, LOW);

      // Send the register address
      SPI.transfer(address);

      // Send the value
      SPI.transfer(value);

      // Tell chip to load in data
      digitalWrite(LOAD_PIN, HIGH);
    }
     

    void setup() {
     
      // Set load pin to output
      pinMode(LOAD_PIN, OUTPUT);

      // Reverse the SPI transfer to send the MSB first
      SPI.setBitOrder(MSBFIRST);
     
      // Start SPI
      SPI.begin();

      // Run test
      // All LED segments should light up
      maxTransfer(0x0F, 0x01);
      delay(1000);
      maxTransfer(0x0F, 0x00);
     
      // Enable mode B
      maxTransfer(0x09, 0xFF);
     
      // Use lowest intensity
      maxTransfer(0x0A, 0x00);
     
      // Only scan one digit
      maxTransfer(0x0B, 0x00);
     
      // Turn on chip
      maxTransfer(0x0C, 0x01);
     
     
     
    }

    void loop() {
     
      // Loop through each code
      for (uint8_t i = 0; i < 0x10; ++i)
      {
        maxTransfer(0x01, i);
        delay(500);
      }
     
    }
     
  8. Ardubino Tupo

    Ardubino Tupo Нерд

    А где "два четырехразрядных индикатора" на схеме ?
    1 ногу отцепить от контроллера и прицепить к нулю чего происходит?
    12 и 13 ноги поднять и потыкать туда пальцем ?
     
    9xA59kK нравится это.
  9. Navi

    Navi Нуб

    В общем, оказалось, что распиновка моего индикатора SMA410364 с общим анодом. думаю как теперь изменить схему подключения
     
    Последнее редактирование: 7 июл 2017
  10. Karabas

    Karabas Гик

    Есть специальная библиотека, позволяющая такое извращение.
     
    Igor68 нравится это.
  11. Igor68

    Igor68 Гуру

    Простите идиота (меня)! Но разве инвертировать сигналы (без библиотеки) нельзя? Как по сигналам A,B,C.... , так и по выбору разрядов индикатора.
     
  12. Igor68

    Igor68 Гуру

    Я имел ввиду(инверсию):
    Согласно ссылки:
    https://pro-diod.ru/electronica/max7219-max7221-drajver-dlya-svetodiodnoj-indikacii.html
    Тое сть выбор знакоместа не (0001...1000), а (1110...0111) ну и соответственно все сегменты светятся при 00000000 и не светятся при 11111111
    Ну и:
    MAX7219 интерфейс Serial 3-Wire
    MAX7221 — Serial SP