SD Card - "ERROR: Unable to mount media : NOT_READY"

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем russish, 16 сен 2017.

Метки:
  1. russish

    russish Нерд

    Не могу подключить SD карту. Перепробовал штук 5 от 1 до 32 ГБ. Форматировал в разные файловые системы (FAT, FAT32, NTFS). Почитал espruino форум. Прошил Искру последней версией "Based on Espruino 1v92.194".
    Код:

    var spi = new SPI();
    spi.setup({mosi:B15,miso:B14,sck:B12});
    E.connectSDCard(spi,P11);
    console.log(require("fs").readdirSync());
    Подключал ко всем пинам по очереди.

    В чём может быть дело?
     
  2. sys

    sys Злобный Буратино Модератор

    Код (Javascript):
    SPI2.setup({mosi:B15, miso:B14, sck:B13});
    E.connectSDCard(SPI2,P8);
     
  3. russish

    russish Нерд

    Не работает... Возможно дело в кривой работе офлайн режима... Попробую другой способ инсталяции офлайн режима...
     
  4. russish

    russish Нерд

    Попробовал новый способ инсталяции офлайн режима, та же ситуация. Выдает warning что не найден fs и пишет
    ERROR: Unable to mount media : NOT_READY.
    Эта ошибка возникает так же, если я вообще не подключаю модуль к пину, т.е. такое ощущение, что просто не работчий модуль. Никакие диоды на платке не загораются. Что делать?
     
  5. sys

    sys Злобный Буратино Модератор

  6. Nitro77rus

    Nitro77rus Гик

    у меня походу таже проблема...
    При загрузки примера с ВиКи
    Код (Javascript):
    // Подключим SD картридер, кнопку и пьезопищалку.
    var sdCard = require('@amperka/card-reader').connect(P8);
    // создадим новый файл с именем «new_data.txt» и запишем в него строку «IoT will save the world».
    sdCard.writeFile('new_data.txt', 'IoT will save the world.');
    // допишем в файл «new_data.txt» строку «Iskra JS».
    sdCard.appendFile('new_data.txt', 'Iskra JS');
    // прочитать содержимое файла «new_data.txt».
    console.log(sdCard.readFile('new_data.txt'));
    Выдаёт: ERROR: Unable to mount media : NOT_READY, аж три раза

    А при загрузки кода из буклета йодо
    Код (Javascript):
    var sdCard = require('@amperka/card-reader').connect(P8);
    var player = require('@amperka/ringtone').create(A2);
    var shuffle = require('@amperka/button').connect(P12);

    shuffle.on('click', function() {
      player.stop();
      var melody = sdCard.readRandomFile('/music');
      player.play(melody);
    });

    shuffle.on('hold', function() {
      player.stop();
    });
    после нажатия на кнопку, вот чего:
    Код (Text):
    Based on Espruino 1v92.194
    (c) 2016 G.Williams, Amperka LLC
    Support the work of core developers:
    http://espruino.com/Donate
    >Erasing Flash....
    Writing........
    Compressed 87200 bytes to 5994
    Checking...
    Done!
    Loading 5994 bytes from flash...
    =undefined
    ERROR: Unable to mount media : NOT_READY
    Uncaught Error: Field or method "length" does not already exist, and can't create it on undefined
    at line 1 col 34
    ...this._fs.readdirSync(a),c=b.length;"."===b[0]&&c--,".."===b[...
                                  ^
    in function "readRandomFile" called from line 2 col 46
      var melody = sdCard.readRandomFile('/music');
                                                 ^
    in function called from system
    >
    Карту несколько раз проверил и отформатировал в fat32, на разных ОС (на всякий случай)

    Вопрос, куда копать, что делать?


    P.S.: Сейчас проверил на Ардуине, кодом от сюда, результат во:
    Код (Text):
    Initializing SD card...
    Card failed, or not present
    Unknown error
     
    Последнее редактирование: 4 дек 2017
  7. ИгорьК

    ИгорьК Гуру

    upload_2017-12-4_18-6-52.png

    Это же ответ.
     
  8. Nitro77rus

    Nitro77rus Гик

  9. ИгорьК

    ИгорьК Гуру

    Точнее - проблемы с железом. А что так не рабочее - шут его знает. Может провод перетерся.
     
  10. null

    null Гик

    А библиотеку @amperka/cart-reader не пробовали? Я ее использую, всё работает
     
  11. Nitro77rus

    Nitro77rus Гик

    Что то не нашёл такой библиотеки в репозитории, только та, что в моём примере...

    А в техподдержке, сегодня сказали, что проблема аппаратного характера и сейчас ищут решение
     
  12. null

    null Гик

    http://wiki.amperka.ru/js:card-reader там оказалась card reader.
     
  13. studentIvan

    studentIvan Нерд

    SD карта у меня работает через SPI2. Через другие SPI была такая же проблема. Посмотрите схему Iskra JS и убедитесь что к SPI все правильно подключено
     
    Dobryy нравится это.
  14. Nitro77rus

    Nitro77rus Гик

    Это та что у меня в коде...
     
  15. Dobryy

    Dobryy Нуб

    заработало, удивительно....
     
  16. Kuzmit4

    Kuzmit4 Нерд

    Код (Javascript):
    var sdCard = require('@amperka/card-reader').connect(P8);

    var f = sdCard.readFile('race.html');
    console.log(f);
     
    Код (Text):
    Uncaught Error: Unable to mount media : NOT_READY
    at line 1 col 20
    this._fs.readFile(a)
                                ^
    in function "readFile" called from line 4 col 36
    var f = sdCard.readFile('race.html');
                                                         ^
     
    прошивка 1v96.43
     
  17. Vitaliy-Sh

    Vitaliy-Sh Нерд

    Значит так. С Troyka Shield у SD картридера пин CS работает только на пинах P0-P7. SPI подключается на отдельные три контакта на шилде. Это SPI2.

    З.Ы. Промучился с P8 (как в примерах) и ставил на P9. Думал испорченный SD картридер пока не поставил на Troyka Slot Shield v2 на и удивление там на P8 работает.

    И сюда пропишите это, где упоминается Troyka Shield https://amperka.ru/product/troyka-sd#docs , кстати, там ссылка неправильная на Troyka Shield LP.

    Пример проги (при запуске создает файл на карту с рамдомным именем и каждые 5 секунд записывает подмигивая 13-м светодиодом в файл показания с датчика BME280 )

    Код (Javascript):
    I2C1.setup({scl:B8,sda:B9});


    var sdCard = require('@amperka/card-reader').connect(P7);

    var bme = require('BME280').connect(I2C1);

    var file = 'data' + Math.random() + '.txt';

    //console.log(file);

    sdCard.writeFile(file, 'IoT will save the world.' + '\r\n');

    setInterval(function() {
      bme.readRawData();
      var temp_cal = bme.calibration_T(bme.temp_raw);
      var press_cal = bme.calibration_P(bme.pres_raw);
      var hum_cal = bme.calibration_H(bme.hum_raw);

      var temp_act = (temp_cal / 100.0).toFixed(1);
      var press_act = (press_cal * 0.0075).toFixed(0);
      var hum_act = (hum_cal / 1024.0).toFixed(0);

    //  console.log('Pressure: ' + press_act + ' mm Hg' + '\r\n');
    //  console.log('Temperature: ' + temp_act + ' C');
    //  console.log('Humidity: '+ hum_act +' %');
    //  console.log('---------------------------');

      sdCard.appendFile(file, 'Давление: '+ press_act + ' mm Hg' + '\r\n');
      sdCard.appendFile(file,'Температура ' + temp_act + ' C' + '\r\n');
      sdCard.appendFile(file,'Влажность: '+ hum_act +' %' + '\r\n');
      sdCard.appendFile(file,'---------------------------' + '\r\n');

      digitalPulse(P13, 1, 200);

    }, 5000);
     
    Последнее редактирование: 15 мар 2020
    arkadyf нравится это.
  18. Барсик

    Барсик Нуб

    Я пробовал с Troyka Slot Shield v2 и у меня не работает.