사용 MCU: STM32F103VCT 안녕하세요. STM32F103에 있는 USB IP중 CDC(Communication Device Class)를 CubeMX로 적용하는 방법에 대해 알아봅시다. CDC를 사용하면 Uart 핀에 Uart To Serial 모듈을 따로 쓰지 않고 바로 USB를 통해 컴퓨터와 통신 할 수 있다는 장점이 있습니다. 제가 가지고 있는 보드의 USB 회로는 아래와 같습니다. 컴퓨터에서 USB를 인식하려면 PA1 핀이 High 상태로 있어야 합니다. USB in a NutShell - Chapter 2 - Hardware (beyondlogic.org) USB in a NutShell - Chapter 2 - Hardware Connectors All devices have an upstream connection to the host and all hosts have a downstream connection to the device. Upstream and downstream connectors are not mechanically interchangeable, thus eliminating illegal loopback connections at hubs such as www.beyondlogic.org PA11과 PA12에 연결된 저항은 22옴이 사용되었습니다. CubeMX를 실행 시켜 Connectivity > USB 메뉴에 Device(FS)를 체크해줍니다. 그러면 아래 처럼 USB_DP 핀과 USB_DM핀이 활성화 될 것입니다. Middleware > USB_DEVICE 메뉴로 가서 Class For FS IP를 Communication Device Class (Virtual Port Com)을 선택해주고 GENERATE CODE를 해줍니다. Device Descriptor 탭으로 가면 아래 화면처럼 설정되어 있습니다. VID는 Vendor ID의 약자로 제조사 아이디를 뜻합니다. 디폴트 설정으로 1155로 설정되어있는데 모든 VID는 usb.org에서 관리되어 있습니다. https://usb.org/sites/default/files/vendor_ids051920_0.pdf에서 확인해 보면 1155는 STMicroelectonics라는 것을 확인 할 수 있습니다. VID를 위 리스트에 없는 숫자로 해도 정상적으로 동작합니다. (15768) PID는 Product ID 로 제품 ID를 설정해 주는 파라미터입니다. PA1핀도 Output으로 설정해주고 Generate Code를 해줍니다. USB 송수신에 관련된 함수는 usbd_cdc_if.c 파일에 있습니다.
제가 가지고 있는 보드는 PA1핀을 High로 만들어줘야지 컴퓨터가 USB를 인식한다고 했습니다. 따라서 프로그램이 시작되면 PA1핀을 High로 만들어 주고 printf가 USB를 통해 출력되도록 코드를 수정해줍니다.
프로그램 다운로드를 완료한 후 장치관리자에 보면 아래와 같이 USB 직렬 장치라고 인식이 됩니다. 가지고 있는 시리얼 통신 프로그램으로 COM15에 연결하면 1초마다 Hello CDC Test 라는 메세지가 나타날 것입니다. [자석으로 간치료 - 시즌2] 내일부터는 자석을 붙이고 바이러스는 죽이면서, 저녁에 뗐을 때 바이러스를 또 죽이는 치료를 해 볼 예정이다. 그러면 간은 더 좋아지고 바이러스는 점점 더 사라져 갈 것으로 예상되며 컨디션은 더 좋아질 것이다. [1일째] 오늘부터 간치료 및 기능 개선을
시작했습니다. 점심 먹고 1시간 뒤에 다시 MMS를 먹었다. 간은 자석이 회복시켜 주는 중이고, 간염 바이러스는 MMS가 제거 또는 비활성화 하는 중이다. 자석을 떼고 MMS를 먹으면 비활성화 보다는 제거 수순으로 예상이 된다. 왜냐하면 만약 자석이 간염 바이러스도 활성화 시키는 작용을 한다면, 자석을 제거했으니 바이러스도 비활성화 되는 상태에서 제거제가 들어가니 그럴거라 예상을 해 본다. 오후 4:50 자석을 떼고 , MMS를 먹었다. 오후 10시, 자석은 뗀 상태로 MMS를 또 먹었다. 자석을 뗀 이후로 좀 가렵다. 손바닥은 까지나 뭐가 나지는 않았다. 오후 11시 59분 MMS 를 1번 더 먹는다. 손바닥 까지는 증상은 많이 완화되었다. [2일째] 2일째, 계속해서 자석을 뗀 상태이며 자다가 일어나서 MMS를 1번 더 먹음. 새벽 3:44. 손은 많이 좋아짐. 아침 10시쯤 MMS 한 번 더 먹고 자석을 붙였는데, 손은 크게 좋아지지는 않는듯 하다. 좋아진 듯 하다가 다시까짐. 뭐지? 이건? 발은 좋아졌는데, 손은 왜 이모양이냐구...ㅜㅜ 오후 9시, 자석은 아침에 붙이고 아직 안 뗐다. 그리고 MMS 한번 또 먹음. 손아 뭔가 반응이라도 해라. ㅜㅜ [3,4일째] 3,4 일째, 2일간 저녁에 집에 와서 붙이고 잤더니 아침에 눈이 붙고 손이 까진다. 그리고 아침에 떼고 회사에 오면 다시 좋아진다. 수질 정화제를 먹어도 이와 같은 것을 보니 현재 N극 과다 증상인듯 하다. 붙이지 말던가 저녁에 와서 붙인 후, 자기 전에 떼봐야 겠다. 수질 정화제를 먹은 후, 손에 뭐가 나지는 않는다. 다만 손은 위의 상황에서 처럼 까지므로 자석을 좀 자제해야 겠다. 4일째, 점심을 먹으니 배가 살살 안좋았는데 조금 있다가 설사를 했다. 자석을 안 붙인지 11시간이 됐는데, 예전의 자석을 전혀 안 썼던 때의 현상이다. 집에서도 이런 때에 바로 자석을 붙이면 속이 진정이 된다. 요즘은 자석을 안붙이면 손이 까지는 증상이 없어지면서 뭔가를 먹으면 쉽게 설사를 한다. 이제 어떤 시도를 해야 할까? 그렇다고 계속 붙이면 또 상태가 안좋아지고.. 하루에 밥먹을 때만 붙이고 떼어 볼까? 현재 오후 2시, 3시간만 붙이고 떼서 집에서는 괜찮은지 알아봐야겠다. 집에서 밥먹고 소화 될 때까지는 자석의 효과가 남아 있겠지. [5,6일째] 5,6일째, 이제는 자석을 붙이면 2~3시간 내에 간이 안좋아지는 증상이 생긴다. 아무리 수질정화제를 먹어도 나아지지 않는다. 그렇지만 간기능은 예전에 비해 좋아진 상태이다. 요새 자석을 붙이면 안좋아지는 현상 중 하나로 오줌색이 노레지고, 떼면 다시 맑아진다. 이런 현상이 정말인지 좀 더 확인을 해볼 예정이다. 그런데, 밥먹을 때만 1~2시간 붙일 예정이라 다시 못 볼 수도 있다. 가장 먼저 자석으로 인한 몸의 변화는 눈인 것 같다. 안 좋으면 눈이 뻑뻑해지거나 붓는다. 그 다음으로 밥먹었을 때 소화도 되기 전에 속이 안좋아서 설사가 나오는 것, 그 다음은 손이 까지는 현상이고, 그 다음으로는 가슴에 반점이 생기거나 또는 진해지거나 흐려지거나 이다. [7일째] 7일째, 밥먹을 때가 되서 붙였다. 지금부터 1시간 동안만 붙일 예정이다. 1시간 붙였는데 괜찮다가 떼니까 바로 신호가 오는구나. 2시간은 붙여야 될 것 같다. 그래서 다시 붙였더니 또 속이 편해진다. [8,9일째] 8,9일째, 머리도 가렵고 손도 좋아지지 않아서 붙였다 뗐다를 반복해서 약 12시간 정도 자석을 붙인 듯 하다. 이번에는 N극이 과하지는 않았는지, 몸이 나빠지지는 않았다. 손도 많이 회복되고 반점도 더 흐려졌다. [10일째] 10일째, 이번에는 2일 넘게 동안 자석을 붙였는데 괜찮았다. 10일째, 혹시 핑크소금을 먹서서 그런걸까? 미네랑이 많아서 ? 간의 연료가 미네랄인것은 아닐까? 그동안 자석을 오래 붙였을 때 안좋아졌던것은 미네랄이 다타버려서 그럴수도 있다. 핑크 소금을 날마다 먹고 자석을 붙여놔 봐야겠다. 요새 회사에 커피가 떨어져서 커피를 많이 안먹었던 것과 핑크소금을 뜨거운 물에 타서 먹었던 점이 예전과 다른 것 같다. 정말 미네랄과 간과의 관계에 무언가 연결고리가 있는 것이 아닐까? 일단 커피는 미네랄 흡수를 막고 몸밖으로 배출해 버린다는 내용이 예전에도 들었지만 인터넷상에도 많이 보인다. 우연치 않게 미네랄을 몸에 흡수를 많이 시킨 후, 자석을 붙였던 것도 같다. 커피를 덜 먹고 핑크 소금을 먹은 것이 그러하다. 현재 3일동안 붙였는데 부작용이 없다. 관리 |