Resolvendo problema no SPI do Arduino WAVGAT
Olá pessoas! Recentemente voltei a brincar com programação e desenterrando algumas placas que estavam há anos guardadas aqui. Algumas eu sequer tinha usado antes, apenas comprei e deixei guardada, que é o caso de um clone do Arduino Uno chamado WAVGAT.
Pois bem, ao tentar usar essa placa com um simples Blink, para testar, já deparo com erro e descubro que preciso instalar o driver dele. No momento estou usando Windows 10 com a IDE do Arduino versão 1.8.16. Até que foi fácil achar o driver e começar a usar. Deixo Aqui disponibilizado.
Resolvido essa parte e já conseguindo fazer alguns programinhas, achei que já estava tudo resolvido. Foi então que fui testar outra placa que estava parada muitos anos: Um shield Ethernet com o W5100:
Eis que não funcionava de jeito nenhum. Lendo na internet eu já tinha visto que, embora ele ocupe todos os pinos do Arduino (na verdade ele apenas replica para poder usar outro shield em cima dele), ele só usa mesmo os pinos de SPI ou seja, CLOCK ,MISO, MOSI e CS, que no arduino seriam respectivamente os pinos 13, 12, 11 e 10.Chegou uma hora que parti para o analisador lógico clone do Saleae, ferramenta obrigatória pra quem desenvolve hardware: (Se puder, compre o original, vale muito a pena)
E usando o saleae eu via que o WAVGAT estava mandando os dados certinho usando os pinos 10 ao 13. Só que aí que começa a encrenca: O Arduíno Uno original ele replica esses dados do SPI para os pinos de ICSP (aquela barrinha com 6 pinos que fica na borda inferior da placa do Arduino). Sendo que esse WAVGAT não faz isso. A pessoa que criou, resolveu colocar outros pinos do ATMEGA328P ligados ao conector ICSP. talvez até tenha feito por boa intenção, querendo aproveitar mais pinos que estavam sem uso no ATMEGA, porém com isso deixou a placa incompatível com shields que usam o conector ICSP, que é o caso do Shield do W5100.
O W5100 despreza os pinos 13,12 e 11 e usa os mesmos sinais porém no conector ICSP. E funcionaria de boa se estivesse num clone "decente" do Arduino. Portanto para fazer funcionar na primeira vez, tive que usar Jumpers:
Aí você deve estar pensando se vai precisar usar assim pra sempre e a resposta é não. Você pode fazer essa pequena alteração na shield e usar ele encaixada normalmente:
https://www.espruino.com/arduino-w5100
https://www.espruino.com/arduino-w5100
Outra dica super interessante para quem está com problema usando o W5100 é seguir esse tutorial:
https://www.usinainfo.com.br/blog/ethernet-shield-nao-funciona-problema-resistor-511-resolvido/
https://www.usinainfo.com.br/blog/ethernet-shield-nao-funciona-problema-resistor-511-resolvido/
Se você está lendo esse post provavelmente está com problemas com o seu Shield. Espero que esse post tenha te ajudado. Até breve!
Comentários
Postar um comentário