Не работает SPI в Arduino ProMicro

Ответить
rusland57
Рядовой
Сообщения: 19
Зарегистрирован: 18 окт 2017, 20:18

Не работает SPI в Arduino ProMicro

Сообщение rusland57 »

К Arduino Pro Micro подключаю семисегментный индикатор. Для управления использую сдвиговый регистр 74HC595 и, соответственно, шину SPI. В FLProg для RCK выбираю 14-ый вывод. При выводе на индикатор каких-либо значений (например, секунд из RTC или счётчика) значение на индикаторе не меняется.
Сделал переходную плату для возможности подключения к схеме вместо Arduino Pro Micro контроллера Arduino Nano. С Arduino Nano всё работает отлично.
В чём может быть проблема?
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 152 раза

Не работает SPI в Arduino ProMicro

Сообщение ecoins »

rusland57 писал(а): 15 янв 2021, 11:45 В чём может быть проблема?
Там контроллер не atmega328, а atmega324u4.
Там есть существенные отличия - преодолимые, но надо заниматься.
Рекомендую использовать Arduino Pro или Arduino Pro mini.
Габариты маленькие, пины на 5в, дешевле и не будет проблем переноса с Nano.
rusland57
Рядовой
Сообщения: 19
Зарегистрирован: 18 окт 2017, 20:18

Не работает SPI в Arduino ProMicro

Сообщение rusland57 »

ecoins писал(а): 15 янв 2021, 13:04
rusland57 писал(а): 15 янв 2021, 11:45 В чём может быть проблема?
Там контроллер не atmega328, а atmega324u4.
Там есть существенные отличия - преодолимые, но надо заниматься.
Рекомендую использовать Arduino Pro или Arduino Pro mini.
Габариты маленькие, пины на 5в, дешевле и не будет проблем переноса с Nano.
Я сразу сделал несколько плат под ProMicro. Неожидал, что будут такие проблемы. Получается в FLProg эти отличия не учтены?
Ардуино ProMicro вроде самый маленький.
Если подскажите что сделать, буду благодарен.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Не работает SPI в Arduino ProMicro

Сообщение Sancho »

rusland57 писал(а): 15 янв 2021, 13:47 Если подскажите что сделать
Для начала Ваш проект - повторить и убедится.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 152 раза

Не работает SPI в Arduino ProMicro

Сообщение ecoins »

rusland57 писал(а): 15 янв 2021, 13:47 Ардуино ProMicro вроде самый маленький.
Вы уверены, что у Вас Micro? Такая, в размер Nano?
arduinomicrofront-380x171 (1).jpg
Такие не встречал, но есть Arduino Pro mini.
Посмотрите по ссылке.
http://arduino.ru/Hardware
----------
Если все же Micro, то может быть из-за того, что не соответсвующее подключение?

SPI: на разъеме ICSP. Данные выводы поддерживают связь по SPI с использованием библиотеки SPI. Обратите внимание, что выводы SPI не подключены ни к каким цифровым вход/выходам, как на Arduino Uno, они доступны только на соединителе ICSP и ближайших выводах, маркированных MISO, MOSI и SCK.
RX_LED/SS. Это дополнительный вывод по сравнению с Leonardo. Он подключен к RX_LED, который показывает активность передачи по шине USB, но также может использоваться как вывод выбора подчиненного устройства (SS) для связи по SPI.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
rusland57
Рядовой
Сообщения: 19
Зарегистрирован: 18 окт 2017, 20:18

Не работает SPI в Arduino ProMicro

Сообщение rusland57 »

Sancho писал(а): 15 янв 2021, 14:20 Для начала Ваш проект - повторить и убедится.
Проект рабочий, т.к. с Nano всё работает (чтобы Nano установить по месту на основную плату я распаял переходник и соединил соответствующие выводы).

Отправлено спустя 7 минут 58 секунд:
av писал(а): 15 янв 2021, 18:26 [ref]rusland57[/ref], при использовании Arduino Pro Micro нужно выбирать Arduino Leonardo. Не знаю с чем это связанно но если выбирать про микро не вся переферия работала. В новой версии не проверял.

Отправлено спустя 2 минуты 49 секунд:
Кстати 14-й вывод про микро это пин MISO а не SCK.

Отправлено спустя 3 минуты 6 секунд:
При выборе контроллера есть информационные вкладки. Выберете "Выводы" и посмотрите на каких пинах у Arduino Pro Micro SPI.
При программировании выбираю именно Leonardo.
14-ый вывод да, но FLProg позволяет его выбрать для RCK.

У Arduino Pro Micro SPI на 14,15 и 16 выводах, но линия SS на 8-ом пине самого микроконтроллера, а на плате выхода нет, выход только на резистор светодиода RX. Пробовал подпаяться к этой линии, выпаяв резистор, но не помогло. Перед компиляцией в Arduino IDE я вручную исправляю пин 14, который прилетает из FLProg, на 8-ой.
rusland57
Рядовой
Сообщения: 19
Зарегистрирован: 18 окт 2017, 20:18

Не работает SPI в Arduino ProMicro

Сообщение rusland57 »

av писал(а): 15 янв 2021, 21:03
rusland57 писал(а): 15 янв 2021, 20:12 14-ый вывод да, но FLProg позволяет его выбрать для RCK.
Что значит позволяет.... Вы для чего используете SPI ? Если аппаратный SPI, то вы не можете изменить пины интерфейса, но вы их меняете вручную в IDE отсюда и проблемы. Пины аппаратного SPI задаются в библиотеке. Другое дело если это программный SPI тогда да можете поменять пины.
Chip74HC595Scheme1.png
Сейчас у меня реализована вот такая схема (схема взята из справки FLProg к расширителю выходов 74HC595) с той лишь разницей, что линия RCK микросхемы подключена не к 8-ому (как на схеме), а к 9-ому выходу Arduino Nano. В настройках 74HC595 в FLProg для линии RCK я выбирал 9-ый пин. И всё работает, не смотря на то, что линия RCK подключена не к линии SS (пин 10) платы.
Тоже самое должно было быть и с Arduino ProMicro. Выбрав 14-ый пин (или какой-то другой, а я пробовал разные варианты) для линии RCK, по логике, должно было всё заработать, но увы...
Где ошибка понять пока не могу.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Не работает SPI в Arduino ProMicro

Сообщение Sancho »

av писал(а): 15 янв 2021, 23:57 При выборе Леонардо проблем не возникало
Подтверждаю. Не забыть в IDE выбрать именно его.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
rusland57
Рядовой
Сообщения: 19
Зарегистрирован: 18 окт 2017, 20:18

Не работает SPI в Arduino ProMicro

Сообщение rusland57 »

av писал(а): 15 янв 2021, 23:57 [ref]rusland57[/ref], ошибка явно в выбранном микроконтроллере. В среде FLProg МК на чипе 32U4 очень редко используются, в особенности про микро. И в следствии чего есть вероятность не отслеженных багов и ошибок которые идут из предшествующих версий программы. Знаю одно точно, что на ардуино про микро интерфейсы работают не корректно если выбрать при создании проекта именно этот МК. При выборе Леонардо проблем не возникало.
Получается, что дело не в контроллере...
Попробовал помимо ProMicro и Nano подключить к схеме Arduino MEGA2560. SPI тоже не заработал. Т.е. с Nano (как 168, так и 328) работает, а с ProMicro и MEGA2560 - нет. Решил написать скетч не в FLProg, а в ArduinoIDE, но не используя библиотеку SPI.h. Вывод данных в SPI сделал по "shiftOut". Так вот как только отключаешь инициализацию библиотеки SPI.h (SPI.begin() ) - SPI работает.
Выходит дело не в контроллерах, а в самой библиотеке SPI? К сожалению я не программист и разобраться в самой библиотеке мне очень сложно, может кто что посоветует где какие параметры посмотреть и поменять?
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 152 раза

Не работает SPI в Arduino ProMicro

Сообщение ecoins »

rusland57 писал(а): 17 янв 2021, 17:33 Попробовал помимо ProMicro и Nano подключить к схеме Arduino MEGA2560. SPI тоже не заработал.
У Mega2560 пины SPI не совпадают с Nano и UNO.
----------
Много загадок, но нет ни электрической схемы того, чего не работает и скетча к нему.
Без этого помочь Вам сложно.
rusland57
Рядовой
Сообщения: 19
Зарегистрирован: 18 окт 2017, 20:18

Не работает SPI в Arduino ProMicro

Сообщение rusland57 »

ecoins писал(а): 17 янв 2021, 18:09
rusland57 писал(а): 17 янв 2021, 17:33 Попробовал помимо ProMicro и Nano подключить к схеме Arduino MEGA2560. SPI тоже не заработал.
У Mega2560 пины SPI не совпадают с Nano и UNO.
----------
Много загадок, но нет ни электрической схемы того, чего не работает и скетча к нему.
Без этого помочь Вам сложно.
Для каждого контроллера пины SPI меняю соответственно (как физически,так и программно).
Схему подключения сдвигового регистра к контроллеру привёл выше (меняю только пины, соответственно для каждого контроллера, и ещё один пин подключён к линии "OE" 74HC595 для включения/выключения). После 74HC595 стоит ULN2803, которая вместо светодиодов включает сегменты семисегментного индикатора и разделитель (точку), выполненных из светодиодной ленты напряжением питания 12В.

В прикрепленных файлах схема FLProg (файл PDF), скетч на основе FLProg (_ProMicro-не_работает), изменённый скетч без использования библиотеки SPI.h (_ProMicro-работает).
В FLProg выход "display_on" включает индикатор и привязан к 10-ому пину контроллера.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ответить

Вернуться в «ATmega32u4,2560»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость