[HAL, CubeMX, TrueSTUDIO를 이용한 STM32F4 속성 강의 강좌] 12-1강. ETH + LwIP (UDP Echo Server)
ฝัง
- เผยแพร่เมื่อ 20 ก.ย. 2024
- ▷▶▷▶ 23년 봄 맞이 정기세일을 진행합니다. 전 품목 4월 한달 간 20% 할인된 금액으로 만나보실 수 있습니다. 많은 관심 부탁드립니다. (선착순 20대 한정) ◀◁◀◁
smartstore.nav...
※ 영상에서 사용되는 실습 보드는 별도 구매하실 수 있습니다. smartstore.nav...
안녕하세요 M-HIVE ChrisP 입니다.
"HAL 드라이버, CubeMX, TrueSTUDIO를 이용한 STM32F4 속성으로 따라하기" 동영상 강좌 입니다.
본 영상은 "12-1강. ETH + LwIP (UDP Echo Server)" 으로
- OSI 7 계층 모델
- TCP/IP의 계층 모델
- 각 계층의 정의
- OSI 모델에서 발신지로부터 수신지까지 데이터가 전달되는 과정
- 본 과정에서 사용할 네트워크 망의 구조
- PHY Transceiver DP83848의 역할
- CubeMX로 ETH 설정
- CubeMX로 LwIP 설정
- CubeF4의 UDP Echo Server 예제 구현 (udp_echoserver.c 및 h 파일 추가)
- udp_echoserver_receive_callback() 함수 설명
- Ping 테스트
- Hercules 소켓통신 프로그램으로 PC와 STM간의 UDP 데이터 송수신
- 공유기 내부망에 연결된 장치들간의 데이터 흐름 과정
에 대해서 설명합니다.
TCP/IP 프로토콜은 매우 복잡한 구조를 가지고 있습니다. 제 수업에서 부족한 설명이나 잘못된 설명은 댓글로 정정해주시면 감사하겠습니다.
많이 시청해주세요~
정말 감사합니다. 덕분에 한번에 시험해 볼 수 있었습니다. 고맙습니다^^
안녕하세요! 잘 진행되셨다니 다행입니다~ 제 강의가 도움이 되었길 바랍니다 :)
thank you my frend
You're welcome. Hope my course is useful.
🙏🙏🙏 감사합니다.
어느덧 강의 종반에 가까워 지네요.
동영상 보면서 따래 배웠습니다.
감사드림니다 ,최고의 강의였습니다
네 어느덧 CAN 통신만 남았습니다 ㅎㅎ 계획대로 마무리 되어가는거 같아서 다행입니다.. 특히 ETH이랑 CAN이 걱정이 됐는데, ETH은 어찌저찌 마무리가 되었네요. 부족한게 많지만.. CAN도 곧 준비해서 올리고 강좌를 마무리 할 예정입니다. 사실 USB도 정말 해보고 싶은 기능인데 이번에는 제가 준비가 안되서 진행은 못했고, 다음에 언젠가 준비되면 영상 올릴 예정입니다.
강의 봐주셔서 감사합니다~ :) 즐거운 추석연휴 되세요!
잘봤습니다. 좋은 강의 감사합니다.
좋게 봐주셔서 저도 감사합니다~
좋은자료 잘 봤습니다.~
네 제 영상이 도움이 되었으면 좋겠습니다~ :)
@@ChrisWonyeobPark 아주 많은 도움이 됩니다^^ 좋은 저녁되세요~
@@장영식-n4v 감사합니다~
External PHY를 사용할 때 어떻게 해야되나 찾아보다가 이 영상도 보게 되었는데요, MX에서 PHY의 register address를 적어주게 되어 있군요!!!
네 맞습니다! CubeMX에서는 DP83848 과 LAN8742(맞나모르겠네요) 두 MACPHY 칩셋의 주소를 기본으로 제공하고 그 외의 칩셋은 직접 입력할 수 있도록 되어있습니다!!
stm32f407IGT 칩을 사용하여 이더넷 통신을 하고 있습니다 근데 문제는 잘하다가 UI에서 통신을 9번 정도 보내면 이더넷이 끊깁니다 다시 리셋을 돌리면 이더넷 연결이 되고 다시 9번정도 통신을 보내면 또 끊기고 혹시 유사한 에러가 발생하신적 있으신가요?
안녕하세요! 통신이 아예 안되는게 아니고 잘 되다가 안되는 것은 소프트웨어적인 이슈일 것 같습니다. 아마 버퍼관리쪽에 문제가 있지 않나 싶은데 그쪽을 확인해보세요~
수신과 송신을 각각 따로 확인해보시면 문제찾기가 수월할 것 같습니다.
@@ChrisWonyeobPark 이번에도 힌수 배웠습니다 말씀 하신데로 버퍼 문제 였습니다 항상 진심으로 감사 드립니대
@@영인박-l4i 문제를 찾으셨다니 다행입니다! 잘 해결하셨기를 바랍니다~
MII와 RMII 차이를 설명해주시면 클럭 속도가 차이가 난다고 말씀해주셨는데, 아무래도 trade off가 있다고 생각을 할 수 밖에 없는데. 무슨 말이냐면 핀 수를 줄이는 대신 클럭이 높아지고 그렇잖아요? 그러면 이더넷 통신에서 클럭이 높아지는 것이 안좋다고 말할 수 있나요? 굳이 그러면 MII를 사용할 이유가 없다고 생각이 들어서요
네 핀수를 줄이고 클럭을 높이는 식이죠. 그래서 본 강의에서도 RMII를 사용합니다. MII는 요새는 잘 사용되지 않는것 같기도 합니다 ㅎㅎ
how do i get the english translation? thank you
I'm sorry but no English translation supported. Please try auto translation. Thank you.
좋은자료 감사합니다. 궁금한게 있는데 stm32f4에 물리계층인 PHY가 내장되어 있다면 커넥터같은 별도의 외부장치가 없어도 되나요??
안녕하세요 STM32F4에는 PHY 기능이 없기 때문에 외부에 PHY 칩을 달아주어야 합니다. 제 수업에서는 DP83848 이라는 칩셋을 사용합니다. 또한 RJ45 커넥터는 DP83848에 연결됩니다. 감사합니다!
@@ChrisWonyeobPark제가 영상의 실습보드말고 stm32f4디스커버리 쓰고있는데.. 혹시 dp83848에 연결되는 stm32f4의 핀은 stmCubeMX에서 핀설정을 따로 해줘야되는 건가요? dp83848의 VCC랑 GND외에 다른 핀은 일단 stm의 입출력 핀에 꽂았는데 이게 맞는지도 잘모르겠어요...ㅜㅜ
@@박혜지-v8f 아마 제 강의처럼 CubeMX에서 ETH와 LWIP, RMII를 설정하시면 기본 설정되는 핀대로 선 연결하시면 될 겁니다. 선 연결하셨으면 우선 한번 시도해보세요~
@@ChrisWonyeobPark 제가 아직 성공을 못해서 그런데..ㅜㅜ ping 까지는 되어도 hercules에 에코동작이 안되는 건 혹시 pc내 방화벽이라던가 보안상 제한문제로 안될수도 있는건가요??
@@박혜지-v8f 아 핑 테스트했을때 응답이 왔나요? 그럼 거의 성공한 듯 합니다. 방화벽이나 보안상의 문제일 가능성은 낮다고 보입니다. 아마 에코로 보내는 코드를 잘 못 작성하신게 아닐까 하네요!
STM32F746G-DISCOVERY 보드를 사용해 진행하고 있는데요, 이더넷 포트가 기본으로 있어서 userPHY를 사용하지 않고 기본 값으로 하고 따라가던 중 질문 몇 가지만 드리겠습니다.
1. while문에 추가한 코드 중 sys_check_timeouts(); 코드에서 undefined reference to `sys_check_timeouts' 와 같은 에러로 디버깅이 실패하는데 어떻게 해야할까요? F3으로 따라가면 함수는 있습니다.
2. sys_check_timeouts();를 주석을 처리하고 ping test를 하면 '대상 호스트에 연결할 수 없습니다'라는 오류 4번은 뜨지만 '보냄=4, 받음=4'로 손실은 없는데 어떻게 해결해야 할까요?
안녕하세요~ 우선 보드의 칩시리즈가 다릅니다. 제 강의영상은 STM32F407을 사용한 실습보드에 타겟이 맞춰져있습니다. cubeF7을 받으셔서 하셔야할텐데 제가 직접 F7을 사용해보진 않아서 확답을 드리긴 어렵습니다 ㅜㅜ 크게 차이가 있을거같진 않지만 그래도 혹시모르니 cubeF7의 예제를 따라해보시길 추천드립니다! 화이팅입니다~~
아주 감사합니다!
f407에 같은 phy 칩 모듈을 사용하였습니다.
결선은 보드 ---(lan cable)--- PC 이렇게 되는게 맞나요?
똑같이 따라했는데 결선을 해도 rj45 led가 켜지지 않네요.
ping을 쏴도 응답이 없습니다...
이것은 하드웨어 문제라고 봐야 하는 걸까요?
안녕하세요! link LED까지 켜지지 않는다면 펌웨어의 문제가 아니라 하드웨어적인 문제입니다. 그 상태에서는 당연히 ping test를 해도 응답이 오지않겠죠.
공유기의 전원이 잘 켜져있는지, LAN 선에는 문제없는지, phy 칩에도 전원이 잘 들어가있는지 등을 확인해보셔야 할 것 같습니다~
@@ChrisWonyeobPark 답변 진심으로 감사합니다! 항상 많이 배우고 있습니다. 큰도움이 되었습니다!
몇가지 더 질문이 있습니다.
1. 궁금한 점이 공유기없이 ((pc --- lan cross cable ---보드)) 이런 형태는 불가능한지 궁금합니다.! 공유기를 사용하는 이유는 크로스케이블이 없는사람들을 위한 건가요?
2. fw/hw 상관없이 link led 는 dp83848 모듈에 전원만 들어간 상태(다른 핀들은 연결되지 않고) 라면 켜져야 정상인 건가요?
3. 공유기는 허브 모드여야 하는 건가요?
@@박진욱-c9b 좋은 말씀 감사드립니다!
질문에 대한 답을 드리자면,
1. 음,, 저도 공유기 없이 사용해보지는 않았는데요, 공유기를 사용하는 이유는 크로스케이블이 없는 사람을 위해서라기 보다는 용도 자체가 다르기때문일 것 같습니다. 공유기를 사용하게 되면 내부망을 구성할 수 있게되고요, 다른 여러 장치들과 공유기를 통해 통신할 수 있게 됩니다. 만약 공유기가 없다면 1:1 통신밖에 안될 텐데요, 이렇게 구성가능한지는 확인해보지는 않았습니다.
공유기의 역할은, 여러 장치의 IP주소를 할당하고, 게이트웨이로서의 역할을 하게 되는데, 공유기가 없다면 게이트웨이가 없어지게 되는 것이라서, 이렇게 1:1 네트워크를 구성할 수 있게 되는지는 저도 좀 더 구글링이 필요할 듯 하네요ㅠ
2. 네 맞습니다. macphy 칩에 전원이 들어가있고 공유기와 잘 연결되어있고 랜선에도 문제가 없다면 link LED는 불이 들어와야 합니다. 펌웨어에는 상관이 없고 하드웨어적인 선 연결 등에 문제가 없으면 불이 들어옵니다.
3. 공유기가 허브모드라는게 잘 이해가 안되는데요, 강의대로 네트워크를 구성하기 위해서 공유기의 모드 설정이 따로 필요하진 않습니다.
질문에 대한 답이 되어드렸나 모르겠네요~ 랜선 연결을 잘 했는데도 link에 불이 안들어오는 문제인가요? 그럼 공유기나 랜선을 다른걸로 교체해보셔서 확인을 해보시는것도 좋겠네요!
데이터 시트를 찾아봤는데 STM32F407IGT와 STM32FVET 차이가 클락 차이말고 도 이더넷 차이도 혹시 있나요?
칩 파트넘버마다 약간씩 기능이 다른데 그 내용은 ST 홈페이지에 가시면 쉽게 비교하실 수 있습니다.
www.st.com/en/microcontrollers-microprocessors/stm32f4-series.html
이곳에 아주 잘 정리되어있습니다!
ping test 로 확인이 되었는데 hercules 프로그램 실행후 send 하면 recieve 가 되질 않습니다. ip 설정 및 port 설정을 제대로 했구요. 어떤부분을 확인을 해야할까요?
핑테스트는 잘 되는데 데이터 송수신에 문제가 있나보네요. 이건 문제를 찾기가 좀 어려울 것 같습니다.ㅜㅜ
가끔 랜선이 문제인 경우도 있는것 같으니 랜선을 한번 바꿔서 해보시고, 공유기도 여분이 있다면 그걸로 한번 해보세요.
코드도 다시 다운로드 받아보시고 다운로드 후에 리셋을 한번 해보고 진행해보세요!
이더넷 꽂는데다가 공유기랑 연결된 랜케이블이 아니라 공유기 없이 인터넷 회선을 꽃아도 되나요?
안녕하세요. 제가 알기론 그렇게는 바로 사용할 수 없고 크로스케이블로 연결해야 하는 것으로 알고 있습니다. 시중에 크로스케이블이 따로 판매되고 있으니 그걸로 해보시기 바랍니다!
안녕하세요. 기본적인 질문이 있습니다.
"이더넷 어댑터 로컬영역 연결" 이 뜨지 않는데 어떻게 해결해야하나요?
음 이렇게만 질문주시면 답을 드리기 어렵습니다 ㅠㅠ 랜선이 잘 꽂혀있는지부터 확인해보시고 소스코드를 제 강의영상을 따라 작성하셨는지 확인해보세요!
노트북에 랜선을 연결하지 않고 와이파이로 했는데 그래서 안되는 건가요?
유선으로 해야 "이더넷 어댑터 로컬영역 연결"이 나오는 건가요?
아 와이파이로 연결하면 이더넷이 아닌 무선으로 연결이 되셨을겁니다. 이더넷은 보통 유선을 의미하니깐요. 그래도 공유기에 잘 접속이 됐다면 ping을 통해서 확인하시면 응답은 받을수 있을겁니다. 한번 확인해보세요!
TCP/IP도 가능한가요?
네 가능합니다! CubeF4 에 보시면 TCP/IP의 예제도 있으니 한번 참고해보셔도 좋을것 같네요~:)
별도의 외부칩이 필요없이, IP통신이 되는 군요.
@@didiq 아닙니다. MACPHY IC가 외부에 있어야 합니다 ㅎㅎ 동영상 강좌에도 DP83848을 사용합니다.
ping 테스트 과정에서 한번 안되면 계속 안되고 여러번 리셋하다보면 되다가 또 안되고 너무 불안정 합니다. 원인을 알 수 있을까요?
안녕하세요! 됐다가 안되는 경우엔 하드웨어적인 문제가 있을수 있으니 공유기 또는 랜선 연결이 잘 되었는지 확인해보시고 랜선 다른게 있으시면 교체해서 해보시기 바랍니다.
정확한 원인은 제가 말씀드리기가 어려울 것 같네요. 먼저 하드웨어가 문젠지 소프트웨어가 문젠지 찾아보세요~
@@ChrisWonyeobPark 지금은 노트북이랑 보드를 크로스 케이블로 다이렉트로 연결해놨는데 한번 연결되면 도중에 끊기는 경우는 없는데 리셋해서 핑이 안날라가면 리셋을 계속 하지않으면 안날라가네요
@@두둠칫-b9g 저번에 어떤분도 다이렉트 케이블로 연결해서 했는데 잘 안된다고 하시던데 그 분 문제는 케이블이었습니다. 케이블 교체해서 해결하셨다고 하니 님께서도 여분 케이블이 있으면 한번 해보세요!
@@ChrisWonyeobPark 좀더 해보겠습니다 친절한 답변 감사합니다
@@두둠칫-b9g 네 꼭 성공하시길 바랍니다! :)