[W7500p] w7500p로 개발을 진행하고자 합니다.(AUDIO, 펌웨어 컴파일 관련 문의사항)


#1

w7500p로 개발을 진행하고자 합니다.
w7500p + audio ic 의 구성으로 제작하고자 합니다.
개발보드로 w7500p를 다루지 않고 시작하는 것이기에 다음과 같이 문의합니다.

  1. w7500p의 부트롬에 부트코드를 넣어야 하는데 ISP 단자를 만든 후에 어떻게 업로드를 해야하는지 guide가 있다면 알려주시기 바랍니다.

  2. 부트롬에 부트코드를 넣으면 flash에 실행코드를 업로드해야하는데 그건 keil 혹은 mbed의 web 환경에서 업로드하는 절차를 따르면 되나요?

  3. 부트코드나 flash에 업로드할 실행코드를 keil 소프트웨어를 이용하지 않고 커맨드창에서 gcc로 컴파일하는 방법이 있나요?

4.VoIP와 같이 실시간으로 음성통신하는 장비를 w7500p을 이용하여 만들고자 하는데, 귀사의 장비로 음성 통신을 한 이력이 있는지요? 있다면 참조 자료를 부탁합니다.

w7500p으로 처음 개발하는 거라 문의사항이 많습니다.
검토 후에 답변 부탁드립니다.


#2

안녕하세요.
답변이 늦어 죄송합니다.

1.ISP 툴이 있으니, 사용하시면됩니다.

https://wizwiki.net/wiki/doku.php?id=products:wizwiki_w7500p:getting_started:write_firmware

2.다운로드 방법은 프로그램이용, CMCIS-DAP(mbed환경에서 사용)가 있습니다.
3. W7500P를 이용해서 만든 WIZwiki-W7500P 보드가 있습니다. 이 보드를 이용하여 제공해드리는 peripheral 프로젝트가 있습니다. gcc로 컴파일 할수 있게 만들어놨습니다.
https://wizwiki.net/wiki/doku.php?id=products:w7500:documents:appnote:gcc

또다른 문의 있으시면 글남겨주세요.
감사합니다.


#3

답변 감사합니다.
추가 질문 좀 드리겠습니다.

  1. 3번 답변 중 개발 보드에서 제공하는 peripheral 프로젝트가 있다는 말을 하셨는데,
    그 말뜻이 '음성 통신 관련 프로젝트 이력’에 대한 답변인가요?
    3번 답변에 걸린 링크는 컴파일 프로그램 설치 링크여서 정확히 어떤 말인지 문의합니다.
    만약 peripheral 프로젝트를 이용할 수 있다면 어디에서 찾을 수 있는지 알려주셨으면 합니다.

검토 후 답변 부탁드립니다.
감사합니다.


#4

이전에 만든 프로젝트가 있는데, 이걸 참고하셔서 하시면 좋을 것 같습니다.
이 프로젝트는 mbed web compiler로 구현한 것입니다.


도움 되셨으면 좋겠습니다.


#5

답변 감사합니다.
헌데 추천하신 사이트 검토 중 문의사항이 있어 답글합니다.

  1. 추천하신 사이트의 코드를 import하여 컴파일하면 아래의 에러가 발생합니다.
    (mbed 라이브러리 update를 눌러서도 컴파일을 해보았습니다.)

Expression must have class type “eth.init((uint8_t*)MAC,IP,MASK,GATEWAY);”
eth가 위즈넷 디바이스 관련 라이브러리로 나오고 eth.init가 선언된 코드를 보니 이상은 없어보이는데, 아신다면 조언 바랍니다.


추천한 사이트의 프로젝트를 위즈넷에서 진행하신 거라면 코드에 대해 문의를 드리고 싶은데요.
wizwiki-7500p 1대에 음성 데이터를 받아서 버퍼에 저장한 후에 바로 스피커로 출력하는 것을 우선 시험 중인데
(1대로 음성을 받아서 그대로 출력하는 시험 중)

  1. 코드 중에
    InterruptIn trigger_i(D15); //인터럽트 핀을 D15로 선언한 후
    main에서
    trigger_i.rise(&adcTickfunc); // trigger_i 가 rise일 때 인터럽트 걸리게 코딩한 것으로 판단되는데
    trigger_i핀이 언제 rise되는지 이해가 안되네요.
    오실로스코프로 D15를 찍어봐도 low로 계속 지속되어 있는 상태입니다.

----- 추천 사이트의 main 코드 중 -----
trigger_o.period_us(100);
trigger_o.write(0.50f);
aout.period_us(50);
–> 위 코드는 pwm 출력코드로 생각되는데 넣은 이유에 대해 이해가 되지 않습니다.
그리고 trigger_o(D14) 핀에 pwm을 출력하는데 aout(D12) 으로 또 출력을 하는 이유가 궁금합니다.

검토해보시고 추천하실 사항이나 아는 사항에 대해서 답변 부탁드립니다.
감사합니다.


#6

이 글은 새로고침이 안되어서 답변이 없는건지
아니면 문의사항이 해결되었다고 생각해서 문의가 없는지 궁금하네요.

다른 글을 보면 답변이 즉각적으로 되는 것도 자주 보이던데.
검토 중이면 검토 중이라고 말을 해주던지
그냥 기다리라는 말인지

전에 쓴 문의사항들도 기본 5일이 넘어야 답변이 달리고
읽어도 그리 해결되는 것 같지도 않고

추천한 사이트를 보니 딱 봐도 위즈넷 직원이 위즈넷 제품으로 개발한 거 같은데
에러 문구 하나 물어봤는데도 묵묵부답이네요.

개발할 보드 찾으라 해서 한국에서 만든 제품이면 피드백이 빠르겠다 싶어 선택했는데 후회되려고 하네요.


#7

죄송합니다.
보통 답글을 달시면 메일이 오는데, 메일이 오지 않아 해결되었다 생각했었습니다.
말씀해주신 코드 부분은 제가 확인해보도록 하겠습니다.


#8

안녕하세요.

  1. 우선 저는 import 했을때, 에러 메세지 없이 돌았습니다.
  2. 현재 이 코드는 WIZwiki-W7500 두개를 사용하여, 하나는 UDP Server , 또다른 하나는 UDP Client로 사용하여 통신하도록 구성되어있는 코드입니다.

InterruptIn trigger_i(D15); //인터럽트 핀을 D15로 선언한 후
main에서
trigger_i.rise(&adcTickfunc); // trigger_i 가 rise일 때 인터럽트 걸리게 코딩한 것으로 판단되는데

위의 내용에서 보시면 D15는 Interrupt Input 입니다. 결국 D15에 스위치같은 입력을 줄수 있는 무언가를 연결해서 "0"or "1"로 판단되었을때, trigger_i.rise(&adcTickfunc)으로 등록한 adcTickfunc 함수가 돌게 되는것입니다.
3. trigger_o(D14) 의 경우 시작 interval을 주기 위해 쓰여진것입니다.
그렇게 되면 adcTickfunc()이 100us마다 실행될겁니다.

실제 값은 aout(D12)로 나와서 Speaker에 전송됩니다.

답변이 되었길 바랍니다.