두달전에 시작해서 미루고 미루다 어제 하루만에 짠 펌웨어. (W5500)
두달전에 시작해서 미루고 미루다 어제 하루만에 짠 펌웨어. (W5500)
TCP/UDP통신하는 보드가 어떤 곳에 납품이 되는데
초창기 W7100A라는 시리얼 이더넷 칩을 사용했었습니다.
안에 펌웨어까지 들어가있어서 UART통신으로 데이터를 가져오는 것인데 단점은 IP세팅을 위해 노트북이 꼭 있어야 했습니다.
업체로부터 발주들어오면 30개, 50개 이런 식이라 귀찮아서 그냥 W7100을 계속해서 사용했는데
납품하거나 정비할때마다 전화가 옵니다...
IP입력은 어떻게하냐? 프로그램은 뭐써야하냐. 어디서 다운받냐...
프로그램 깔았는데 장치검색해도 안뜬다 등등 그거 통화하느라고 스트레스였습니다.
개발하시는 분들이야 제가 설명해줬던 것을 기억해내서 검색해보거나,
아니면 메뉴얼을 찾아볼텐데 현장에 있는사람들은 매번 바뀌기도 하고 할때마다 어렵게 느껴질테니,
IP같은 설정을 그냥 보드에서 입력할 수 있게 해야겠다고 생각만 했었습니다.
그럼에도 다른 일들도 많고 해서 방치했었는데
두어달 전 저희거래처께서 동일물품을 또 낙찰 받았는데다가 다른 프로젝트에도 W7100을 빼버리고 W5500으로 바꾸려고 변경해 만들어 보았습니다.
무려 두달 전 W5500을 시작한다고 올려놨는데 저날 끝내보려다가
진짜 글 올려둔 저 상태까지만 확인하고 놔뒀는데요,
아트웍해주신 분이 9월 22일 아트웍 해주시고 추석 직전에 PCB받아서 납땜하고.
어제 출근해서 펌웨어를 짰답니다.
만들어진 모드...
왼쪽 큰 칩은 AVR128DA 오른쪽 아래 좀 작은칩은 W5500입니다.
메뉴 프로그램은 다른 시스템에 사용되는 펌웨어 재탕해서 썼습니다.
IP, 서브넷마스크, 게이트웨어, 포트번호, UDP/TCP 등등 선택할 수 있는 메뉴를 만들었습니다.
임시로 만든 상태표시화면...
서버IP 192.168.10.10에 연결되었다고 표시되고
아래는 17은 W5500 상태값에서 연결되었다는 상태값입니다.
11은 송신/수신완료 입터럽트 SET된 모습...
50051포트번호와 연결되었다는 뜻..
이 화면에는 실제로는 정상/비정상 여부, 유지보수 인원들을 위한 어떤 값들을 표시하겠죠 ㅎㅎ
컨트롤러 6015포트와 서버포트 50051과 정상적으로 TCP통신이 되고 있습니다.
UDP도 잘 되구요...
어제 오늘 2일동안 짜면 될거라 생각했는데 어젯 밤 TCP/UDP통신 잘 되는것 확인하고,
새벽4시까지 메인 프로그램이랑 연동되도록 수정하고 집에 갔었는데
오늘 다시 회사 나올 때 까지 끊김없이 잘 되고있네요 ㅎㅎ
W5500예제는 널렸으니 그걸 그대로 제 상황에 맞게 수정만 했습니다.
어젯밤에 짜다가 "ABCD123" 샘플 전송해본 루틴이 정리되지 않고 남아있어서 지우기 전 찍어보았습니다.
W7100A를 사용하지 않고 W5500로 바꾸니 칩 가격도 거의 1/5로 줄어들어 좋네요 ㅎㅎ
시리얼 이더넷보다 속도도 당연히 빠르구요.
이번에 두 건의 프로젝트에 겨우 250개 정도 사용되는데
W5500을 2,500개, mac주소 칩을 3,000개나 구매해와서 ㅡㅡ;;
남은 칩을 방치할 수는 없기 때문에 뭐라도 물건을 만들어내서 팔아보려고 합니다 ㅎㅎ