проблемка с аппаратным SPI

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

  1. Salk

    Salk Гик

    Не подскажите, есть ли выход из положения - использую аппаратный SPI на Nano (SS - 5, CLK - 13, MOSI - 11). Пин MISO (12) не использую для SPI, но он нужен для другого дела, однако при подключенной библиотеки SPI.h и при команде digitalWrite(12, HIGH) на пине около 1.2В, а не 5В.
    Что можно сделать, кроме как переписать код под программный SPI?
    Заранее спасибо :)
     
  2. rkit

    rkit Гуру

    Не нагружать пин сверх номинала. Так вы повредите микроконтроллер, если уже не повредили.
     
  3. Salk

    Salk Гик

    Да, как нестранно, Вы, оказались правы, я думал, что виной всему библиотека SPI.h, но все оказалось банальнее. 12 пин у меня управляет маломощным мосфетом, через затворный резистор 100 Ом, а сам затвор притянут к массе через 10 кОм резистор, считалось что большой роли, как делитель напряжения он не сыграет, но гарантированно закроет мосфет при лог. "0". Но почему-то именно резистор 10 кОм просаживал напряжение с пина до 1.2 В :confused: С другими пинами подобного не замечалось, и с такими номиналами все прекрасно работало. Ведь ток через оба этих резистора меньше 1 мА, а ток затвора мосфета не более 50 мА. Почему же так?
    Выход: поменял резистор с 10 кОм до 1 МОм, напряжение повысилось почти до 5 В, мосфет стал открываться. :eek:
     
  4. rkit

    rkit Гуру

    Вы пин в режим OUTPUT вообще перевели?
     
  5. Salk

    Salk Гик

    Конечно.
     
  6. mcureenab

    mcureenab Гуру

    Библиотека переводит пин в режим INPUT а digitalWrite в этом случае подключает или отключает pullup резистор. Вот и получается делитель напряжения на встроенном pullup резисторе и внешнем резисторе.
     
    Salk нравится это.
  7. Salk

    Salk Гик

    Так вот в чем собака зарыта, а ведь правда, MISO используется для обратной связи от ведомого устройства к ведущему в режиме INPUT. Как то можно поправить это, и убрать 12 пин из библиотеки?
    Или можно оставить так, вроде тока хватает для открытия транзистора, даже через этот подтягивающий резистор, при этом на работоспособность самого пина, этот момент практически не влияет?