Проблема связки Ethernet Shield (W5200) и Music Shield (SD + VS10xx)
- Войдите на сайт для отправки комментариев
Всем доброго дня.
Столкнулся со следующей проблемой, пытаюсь сделать связку Arduino Mega2560, Ethernetd Shield 1.1 (Wiznet W5200) , Music Shield 2.0 (SD + VS10xx)
Сосбственно по отдельности все работает прекрасно, и Ethernet Shield работает с Мегой, и Music работает с Мегой.
1 проблема. У Music Shield и Ethernet Shield 10 pin используется под CS. Эту проблему я обошел, отогнул 10 пин у Музыки, сделал перемычку, изменил в библиотеке 10 pin на 9pin. Все работает Хорошо.
Далее, если составляю бутерброд.
Пытаюсь проверить музыку, перед тем как запустить песню, делаю следующее:
pinMode(4,OUTPUT); /////////CS SD на Ethernet Shield'е отрубаем digitalWrite(4,HIGH); pinMode(10,OUTPUT); ///////////CS W5200 отрубаем digitalWrite(10,HIGH);
Музыка работает, все здорово.
Далее, пытаюсь проверить работу Ethernet Shield'а в бутерброде и пишу следующее:
pinMode(4,OUTPUT); ///////CS SD Ethernet Shield отрубаем digitalWrite(4,HIGH); pinMode(9,OUTPUT); /////////CS SD Music Shield отрубаем digitalWrite(9,HIGH);
и Ethernet Shield не работает.
1. Если выключаю только Пин 4 (SD карту на эзернет шилде) и пытаюсь сделать так:
Ethernet.begin(mac,ip) Serial.println(Ethernet.localIP());
то IP'шник выдает, и даже работает как сервер, но на WEb странице выдает все как будто с помехами, как-то много лишней инфы, и все неупорядоченно.
2. Если точно также, выключаю только пин 4 (SD карту на эзернет шилде) и пытаюсь сделать так:
Ethernet.begin(mac); Serial.println(Ethernet.localIP());
то по DHCP так и получает IP. и ждал, и делал вывод если Ethernet.mac == 0
3. Если выключаю и пин 4 и пин 9 (SD карты на ethernet shield'e и music shield'e), то ни первый случай не работает, ни второй. Т.е. в любом случае IP не получает. В первом случае пишет 0.0.0.0
Еще раз повторюсь, по отдельности все прекрасно работает , и по DHCP и статика.
Но как только сверху ставлю music shield, то тому ничего не мешает, а вот ethernet shield'у что-то мешает.
Может подскажете в чем можно искать проблему?
Такое ощущение, что шум какой-то на шине есть в это время, потому что даже в какой-то момент IP получает, смотрю в лог, а там
"яяяяяяяяяяяяяяяяяяяяяяяяяяяяя",
При это музыка работает.
Разобрался.
Взял плату с чипом w5100 и все заработало. + оставил родную библиотеку от Wiznet.
Но теперь в другом, вопрос:
Есть музыка, играет песня, и к примеру в это время мне нужно передать или получить какой-то пакет по сети, если в данном случае выбираю Eth, то музыка останавливается, т.к. получается убираю с шины SPI флешку, с которой играет музыка.
Как лучше в этой ситуации сделать?
Жать на паузу песню, когда хочу работать с сетью?
Использовать каким-то образом прерывания?
Или еще как-то?