Страница 1 из 1
вопрос по коду
Добавлено: Вс ноя 01, 2020 10:42 pm
schel4ok
Изучаю уроки по настройке сервера на ардуино и на одном
англоязычном уроке на startingelectronics.org нашёл странную строчку кода, смысл которой понять не могу
В начале void setup() там есть 2 строки с комментарием disable Ethernet chip
Код: Выделить всё
// disable Ethernet chip
pinMode(10, OUTPUT);
digitalWrite(10, HIGH);
Либо коммент неправильный либо что-то не так. Не могу понять нафига отключать Ethernet chip, если в уроке наоборот поднимают сервер.
Re: вопрос по коду
Добавлено: Пн ноя 02, 2020 12:46 pm
alexsis_76
Добрый день. На интерфейсе SPI который использует Ethernet висит еще и SD карта, сначала отрубаем ss etherneta( он в этот момент еще не активен). Инициализируем SD (SD.begin ), затем Ethernet (Ethernet.begin), после инициализации
pinMode (10, ВЫХОД);
digitalWrite (10, ВЫСОКИЙ);
уже не действительно.
Re: вопрос по коду
Добавлено: Пн ноя 02, 2020 3:36 pm
schel4ok
Что-то не очень понятно.
То есть передача данных между Arduino Uno и Ethernet shield производится по пину 10?
Мы в setup сначала зачем-то на этот пин посылаем высокий сигнал, то есть занимаем канал.
Потом если пин занят как пройдёт инициализация Ethernet (Ethernet.begin)?
Почему после инициализации настройки пина уже не действительны? Они разве сбрасываются?
И у них в коде нет явной инициализации SD. Есть только проверка условия if (!SD.begin(4))
Re: вопрос по коду
Добавлено: Вт ноя 03, 2020 1:41 pm
alexsis_76
Добрый день уважаемые друзья.
То есть передача данных между Arduino Uno и Ethernet shield производится по пину 10?
Нет, передача данных происходит по интерфейсу SPI.
Мы в setup сначала зачем-то на этот пин посылаем высокий сигнал, то есть занимаем канал.
Нет, высокий уровень на SS деактивирует интерфейс, активный уровень низкий.
По
чему после инициализации настройки пина уже не действительны? Они разве сбрасываются?
Выводом ss управляет библиотека.
И у них в коде нет явной инициализации SD. Есть только проверка условия if (!SD.begin(4))
SD.begin это и есть инициализация.
этот код скорее всего используется для предотвращения зависания программы.
Re: вопрос по коду
Добавлено: Вт дек 08, 2020 2:55 am
something
schel4ok писал(а): ↑Пн ноя 02, 2020 3:36 pm
Что-то не очень понятно.
То есть передача данных между Arduino Uno и Ethernet shield производится по пину 10?
Мы в setup сначала зачем-то на этот пин посылаем высокий сигнал, то есть занимаем канал.
Потом если пин занят как пройдёт инициализация Ethernet (Ethernet.begin)?
Почему после инициализации настройки пина уже не действительны? Они разве сбрасываются?
И у них в коде нет явной инициализации SD. Есть только проверка условия if (!SD.begin(4))
10 pin это SS в интерфейсе SPI, но используется он только для подчиненных устройств. В ардуине он нужен только если она подключена как slave к другой ардуине. Тогда на ней будет использован 10-й пин SS, и на другой ардуине(мастере) это будет CS. В общем если вы к своей ардуине подключаете периферию, то вам достаточно 10-й пин выставить в OUTPUT, иначе она может подумать, что она подчиненная и будет ждать команд от SD карты, ну или езернет шилда. Ставить высокий уровень не обязательно. И да, этот пин можно использовать для своих целей, но только если мы не подключаем ардуину как подчиненную к другой ардуине.
Re: вопрос по коду
Добавлено: Вт дек 08, 2020 11:05 am
schel4ok
что значит SS?
Re: вопрос по коду
Добавлено: Вт дек 08, 2020 12:42 pm
something
schel4ok писал(а): ↑Вт дек 08, 2020 11:05 am
что значит SS?
SS (Slave Select) - the pin on each device that the master can use to enable and disable specific devices.
When a device's Slave Select pin is low, it communicates with the master. When it's high, it ignores the master. This allows you to have multiple SPI devices sharing the same MISO, MOSI, and CLK lines.
Ну в спецификации же написано. Это выбор активного слейва. Когда по шине SPI подключено несколько устройств, то активное то, у которого на шине SS низкий уровень. Например ты подключаешь экран и SD карту, для каждого устройства ты выбрал разные пины, со стороны мастера они назваются CS(Chip Select). Когда ты хочешь работать с экраном, то ты на его пине выставляешь LOW, а на пине SD карты ставишь HIGH. После чего посредством MISO и MOSI обмениваешься данными только с тем устройством у которого SS в состоянии LOW. Устройство у которого на SS установлено HIGH игнорирует шину данных, считай выключено.
Re: вопрос по коду
Добавлено: Ср июн 23, 2021 10:03 pm
lihodeev
всем привет! Шел четвертый день борьбы. все как бы просто, переставил систему, накатил бекап, скриптик -
exec('ffmpeg -y -i "rtsp://admin:65804@192.168.1.27/play1.sdp" -t 5 -f mp4 -vcodec libx264 -pix_fmt yuv420p -an -r 15 /var/www/cms/cached/out.mp4');
проверил, все ок, работает. Дай думаю проверю еще один -
exec('rtl_433 -f 433.88e6 -F "mqtt://192.168.1.5:1883",events=/433/[id]');
и тут началось.. не запустился.. я сразу через ,SSH проверяю, на прямую так сказать.. все ок. Как сказано выше четвертый день уже пошел. Может у вас будет мысль преодоления происходящего? Сразу скажу что на старой системе работали оба.
Re: вопрос по коду
Добавлено: Чт июн 24, 2021 7:28 am
schel4ok
По моему тут вообще тема другая
Re: вопрос по коду
Добавлено: Сб июн 26, 2021 1:55 am
lihodeev
schel4ok писал(а): ↑Чт июн 24, 2021 7:28 am
По моему тут вообще тема другая
угу, новая тема "у меня тоже не работает Алиса" никого не напрягает, а тут написал может не туда... хотя вопрос как оказалось по решению проблемы очень спорный