어떤 전화기에 USB UART가 있습니까? USB-uart 변환기: 어댑터로 깜박임

/ 고장

대부분의 블로그 장치 웹사이트함께 일하다 UART. 그리고 이것은 자연스러운 현상입니다. UART는 매우 간단하고 까다롭지 않은 프로토콜입니다. 마이크로컨트롤러 측과 PC 측 모두에서 작업하기 쉽습니다. 그러나 UART를 사용하면 한 가지 단점이 있습니다. 대다수의 마이크로 컨트롤러에는 UART가 탑재되어 있지만 PC의 경우 상황이 조금 더 나쁩니다. UART 인터페이스는 기본적으로 COM 포트(RS232 버전)에 있지만 컴퓨터 주변 장치에 대한 요구 사항이 증가함에 따라 COM 포트는 더 이상 사용되지 않게 되기 시작했습니다. 이는 저속, 확장 불능 등으로 인해 발생합니다. 포트 클래스로서 랩탑에서 오랫동안 사라졌습니다. 이제 데스크탑 컴퓨터의 차례입니다.
그러나 그것이 모두 나쁜 것은 아닙니다. 탈출구가 있습니다! 많은 제조업체에서 USB-UART 변환기 칩(브리지)을 개발하고 생산하고 있습니다. 그들의 작업 원칙은 이것이다. 시스템에 가상 COM 포트를 생성하는 특수 드라이버가 PC에 설치됩니다. PC 프로그램의 경우 이 포트는 일반 COM 포트와 다르지 않습니다. 대체를 "알지 못합니다". 이 가상 포트로 전송된 모든 메시지는 USB 프로토콜 메시지로 변환됩니다. USB 포트에 연결된 변환기 칩은 이러한 메시지를 수신하고 UART 신호를 생성합니다. 인기 있고 저렴한 초소형 회로에는 FT232 및 PL-2303이 포함됩니다(OTI006858 및 CP2102도 있음).

이제 질문의 주제에 더 가까이 다가가 보겠습니다.
그래서 우리는 USB-UART 변환기가 필요하다는 것을 깨달았습니다. 여러 가지 방법으로 얻을 수 있습니다:
1 필요한 마이크로 회로를 구입하고 장치를 직접 납땜하십시오. 어떤 장치를 조립하는 경우 변환기가 장치에 통합되어 있으면 편리합니다. Google을 검색하면 이러한 변환기의 많은 회로를 찾을 수 있습니다. 보드를 에칭하고 변환기를 조립하는 것은 문제가 되지 않습니다.
2 기성 변환기를 구입하십시오. 나쁜 선택도 아닙니다. 그러한 장치가 많이 판매되고 있습니다. 다양한 폼 팩터, 다양한 가격으로 모든 취향에 맞게 선택하세요!
3 또 다른 옵션, 즉 대안이 있습니다. 동의합니다. 항상 수용 가능한 것은 아니지만 여전히... 다른 장치에서 변환기를 "빌릴" 수 있습니다.

이 기사에서는 휴대폰 코드를 USB-UART 변환기로 사용할 것을 제안합니다( 데이터 케이블). 휴대폰에 끈이 필요한 이유는 무엇입니까? 이제 설명하겠습니다.
얼마 전까지만 해도 UART 프로토콜은 휴대폰과 컴퓨터 간의 통신에 널리 사용되었습니다. 널리 사용되는 이유는 분명합니다. 제조업체는 PC와의 저렴하고 광범위한 통신 채널이 필요했습니다. COM 포트일 수도 있고 USB일 수도 있습니다. 그 당시 USB 작업은 비용이 많이 들고 수익성도 없었습니다. COM이 승리했습니다. 휴대폰은 UART 신호를 "외부"로 출력하고 데이터 케이블 코드는 이를 COM 또는 USB 포트로 변환합니다. 요즘 전자 제품은 많은 발전을 이루었고 휴대폰 마이크로프로세서의 USB는 필수가 되었습니다. 최신 전화기의 코드는 일반 USB 연장 케이블로 대체되고 있습니다.
이제 가장 흥미로운 부분에 도달했습니다. 새 전화기가 등장하고 오래된 변환기 코드가 누구에게도 쓸모 없게 되어 판매자가 어떤 대가를 치르더라도 이를 제거하려고 노력하고 있음을 의미합니다. 이 낡고 낡은 끈의 가격은 그야말로 터무니없습니다. 그래서 저는 돈이 너무 많이 들어서 끈이 달린 상자를 발견하고 두 개를 샀습니다. 이제 말해줄게 이러한 코드로 본격적인 USB UART 변환기를 만들기 위해 수행해야 할 작업.

먼저, 바로 이 레이스를 사야 해요.

모든 끈이 맞는 것은 아닙니다. 먼저 변환기가 있는 끈의 이름을 Google에서 검색해야 합니다. 시각적으로 중앙에 상자가 있는 코드를 찾아야 합니다.

포장박스와 내용물은 이렇습니다.

키트에는 코드 자체와 드라이버 디스크가 포함되어 있습니다. 디스크를 즉시 버릴 수 있습니다. 필요한 것을 찾는 것이 문제가 될 정도로 가비지 수집이 있습니다. 레이스 자체를 가져 가라..

지금 보드를 좀 더 자세히 살펴볼까요?변환기



검사 결과 미세 회로가 발견되었습니다. 다작 PL-2303HX.

90%의 경우 이러한 끈에서 이 특정 미세 회로를 볼 수 있습니다. 그 이유는 가격이 저렴하기 때문입니다. 또한 이 칩은 매장에서 구매하는 대부분의 USB-UART 변환기에서도 찾을 수 있습니다. FT232는 더 비싸고 값싼 중국산 끈에서는 구할 수 없기 때문에(일부 브랜드 코드를 발견하지 않는 한) FT232를 거의 볼 수 없습니다. FT232RL을 발견했다면 행운이라고 생각하세요. 그러한 코드를 사용하여 프로그래머를 놀릴 수 있습니다(FT232RL은 비트뱅 모드에서 작동할 수 있습니다).

주의하세요! 보드에서 다작 클론을 찾을 수 있습니다. 예를 들어 이것은 제가 구입한 끈 중 두 번째에 있는 것이었습니다.

보드는 동일하고 디자인도 동일하지만 크리스탈은 분명히 다작이 아닙니다(외관으로 판단하면 더 저렴한 복제품입니다). 석영이 부족하다는 점은 놀랍지만 보드는 작동합니다(내부 RC 발진기에서 작동하는 것으로 의심됩니다. 이는 그리 좋지 않습니다). 어쨌든 이러한 미세 회로는 (적어도 다리 측면에서는) Prolific과 완전히 유사합니다.

이제 Prolific 웹사이트로 이동하여 칩의 데이터시트를 다운로드하세요.
- USB-UART 변환기 다작

데이터시트에서 핀아웃을 찾고 필요한 UART 신호가 어느 다리에 있는지 살펴봅니다.
— 송신기 TXD – 1;
- 수화기 RXD – 5.

칩에서 해당 다리를 찾습니다.

다음으로 기존 테스터를 사용하여 와이어를 납땜할 수 있는 가장 가까운 접촉 패드를 찾습니다. 다리에 납땜을 할 수 없습니다. 작습니다. 우리는 또한 "땅"이 필요합니다. 여기서는 모든 것이 간단하고 큰 다각형이 될 것입니다. 와이어를 해당 패드에 납땜합니다.
코드의 다른 쪽 끝에 편리한 커넥터를 연결합니다.

아마도 누군가가 이미 우리 포럼의 메시지를 읽었을 것입니다. 엑스모티스 즉석 재료로 USB-TTL 케이블을 만드는 방법에 대해 알아보세요.

우리는 이것을 별도의 가이드 기사로 발행하기로 결정했습니다. 감사합니다 엑스모티스 제공된 자료에 대해.

개요: 이 기사는 직렬 인터페이스에 대한 추가 내용이므로 먼저 읽어 보는 것이 좋습니다.

위에서 언급한 기사에서 알 수 있듯이 Ritmix RZX-50 셋톱박스는 uart ttl을 통해 컴퓨터에 연결할 수 있지만 전압 신호가 rs-232 표준과 일치하지 않기 때문에 어댑터가 필요합니다. 기성 솔루션으로 특수 변환기(예: 이 변환기)를 사용할 수 있습니다.

어려운 점은 이러한 솔루션을 항상 사용할 수 있는 것은 아니며, 사용할 수 있는 경우 명시된 가격이 상당히 높을 수 있다는 것입니다.

그러나 컴퓨터 상점에서 판매되는 일반 usb-rs232(com) 어댑터 케이블을 사용할 수 있습니다. 예를 들어 다음과 같습니다.

케이블 Gembird usb-rs232 uas111. 깔끔한 상자에 컨트롤러가 숨겨져 있어서 편리합니다. 사실, 밀봉되어 있으므로 열려면 납땜 인두로 플라스틱을 자르거나 잘라내야 합니다.

원칙적으로 다른 유사한 케이블도 가능하지만 컨트롤러를 사용하여 보드에 쉽게 접근할 수 있도록 주의해야 합니다. 일부 케이블에서는 RS-232 커넥터에 숨겨져 있어 열기가 어려운 반면, 다른 케이블에는 납땜하기 쉽지 않은 물방울 칩이 있을 수 있습니다. 결국 이러한 케이블은 일부 이국적인 칩을 기반으로 할 수 있습니다.

칩 pl2303. 우선, 레그 1(TXD)과 5(RXD)가 흥미롭습니다. 레그 번호는 칩 자체에 점으로 표시된 모서리에서 시계 반대 방향으로 지정됩니다.

Max213 칩이 있는 뒷면. pl2303의 1번째 레그의 신호는 max의 6번째 레그로 들어오고, 5번째의 신호는 max의 19번째 레그로 옵니다.
원칙적으로 이 마이크로 회로는 uart-ttl에 필요하지 않으며 간섭할 수도 있습니다. 따라서 조심스럽게 납땜을 제거해야 하며 접촉 패드에 납땜하는 것이 더 쉬워집니다.

max213 칩은 납땜이 제거되었습니다. 빨간색 선은 TXD 신호에 납땜되고, 노란색 선은 RXD 신호에, 검정색 선은 접지됩니다. 그런 다음 Antony 구성표에 따라 와이어를 "십자형"으로 연결하여 연결할 수 있습니다. 컨트롤러의 RXD는 셋톱박스의 TXD로, TXD는 RXD로 연결됩니다.

Ritmix RZX-50용 직렬 인터페이스 핀.

두 번째 중요한 부분은 컴퓨터에 직접 연결하고 연결을 설정하는 것입니다.
아래에서는 W7 x64가 컴퓨터(노트북)에 설치되고 Xubuntu 11.10 x32가 VirtualBox 가상 머신에 설치된 경우의 특정 상황을 고려합니다. 아래에 설명된 모든 내용은 모든 Linux 배포판에도 적용됩니다.

위에 표시된 대로 납땜된 케이블이 컴퓨터에 연결됩니다(rzx-50은 연결되지 않음). 당연히 드라이버는 시스템에 의해 설치되지 않지만 필수는 아닙니다. 가상 머신에 xubuntu를 로드하고 연결된 장치를 내부로 전달합니다(Prolific Technology Inc. USB-Serial Controller로 지정해야 함). 그런 다음 콘솔을 로드하고 dmesg를 입력합니다. 마지막 줄 중 하나는 연결된 장치(pl2303)의 정의와 파일 시스템에 대한 반영이어야 합니다. 이 경우에는 /dev/ttyUSB0입니다. 이 이름을 기억하자.

이제 minicom을 설치해야 합니다. 표준 명령은 "sudo apt-get install minicom"입니다. 설정 "sudo minicom -s"를 실행하고 구성 메뉴로 이동합니다. 직렬 포트 설정에서 /dev/ttyUSB0을 직렬 장치로 설정하고 흐름 속도는 56700 8N1로 설정되었으며 하드웨어 및 소프트웨어 흐름 제어는 꺼졌습니다(아니요). 다음으로 모뎀 및 다이얼링에서 Init String 및 Reset String 줄을 지워야 합니다.

설정을 종료하고 일반 모드(sudo minicom)에서 minicom을 시작합니다. 이제 TXD 및 RXD 신호의 와이어를 단락시켜 케이블을 테스트할 수 있습니다. minicom에서 아무 키나 누르면 해당 기호가 화면에 나타나면 케이블이 작동하는 것입니다.

이제 위에 표시된 방식으로 셋톱박스를 전선에 연결하고 전원을 켜면 터미널 에뮬레이터 창에서 출력을 즐길 수 있습니다. 비밀번호를 묻는 메시지가 나타나면 "root"를 입력합니다. 기호 진입 및 퇴장 시 쓰레기나 불필요한 기호가 주기적으로 나타나는 경우, 지면에 문제가 있음(찢겨졌을 가능성이 높음)을 의미합니다. 이상적으로는 접지가 TXD 및 RXD 신호에 어떤 방식으로든 연결되어서는 안 됩니다.

편집자 주: 저는 개인적으로 Palm 시대가 시작된 90년대 말을 즉시 기억했습니다. 그 당시 나는 당시 가장 강력한 PDA였던 Handspring Visor Deluxe의 자랑스러운 소유자였습니다(아직 '태블릿'이라는 단어가 만들어지지도 않았음). 그래서 USB 포트가 부족해서(네! 네!) RS232-TTL 케이블을 직접 만들어야 했습니다. 또한 Visor 신호는 3V이고 필요한 신호 레벨을 제공하는 Maxim 마이크로 회로가 부족했기 때문에 장치가 타지 않도록 "출력"다리에 5~3.3V의 전압 분배기를 연결해야했습니다. .

이제 모든 것이 훨씬 간단해졌으며 RZX-50용 대체 펌웨어 생성에 기여하는 등 보다 의미 있는 활동에 집중할 수 있습니다. :)

다양한 Arduino 및 비Aduino 컨트롤러를 프로그래밍하고, TTL 로직을 갖춘 직렬 인터페이스가 있는 모든 것에서 컴퓨터로 정보를 수신합니다.
나는 Arduino Pro MIni, Gboard/Iboard 및 집에서 만든 컨트롤러를 사용하는 프로젝트에서 이 제품을 사용합니다.

다른 유사한 장치와 어떻게 다른가요?

  1. 보드에 USB가 없는 컨트롤러의 RESET 입력에 직접 연결할 수 있는 추가 DTR 핀. 이후에는 프로그래밍 중에 RESET 버튼을 누를 필요가 없습니다. 컨트롤러가 내 작품 깊숙한 곳에 숨겨져 있고 버튼에 접근하기가 매우 어려울 때 이는 나에게 매우 편리합니다.
  2. 제조업체 지원, 기본 드라이버에 문제가 있는 가짜 FTDI와 달리 원래 드라이버 및 소프트웨어와의 호환성
  3. 예를 들어 보드에 추가 핀(접점 구멍)이 있어 USB를 에너지 절약 모드로 전환할 수 있습니다.
  4. 흥미로운 기회는 보드가 인식되는 VID, PID 및 텍스트를 변경하여 필요한 매개변수로 자신만의 드라이버를 조립하는 것입니다. 이는 상업 프로젝트에서 매우 흥미로울 것입니다. 이에 대해 더 이야기하겠습니다.

어디서 주문하나요?

형질

  • Silicon Labs의 CP2102 칩
  • UART를 통한 데이터 교환 속도 300Bit/sec - 1Mbit/sec
  • 읽기 버퍼 576바이트, 쓰기 640바이트
  • USB 2.0 12Mbps 지원
  • SUSPENDED USB 모드 지원
  • 내장형 전원 레귤레이터 3.3V 100mA
  • 구성 매개변수가 있는 EEPROM 1024바이트
  • 지원되는 OS Windows 8/7/Vista/Server 2003/XP/2000, Windows CE, Mac OS-X/OS-9, Linux, Android
  • 프로젝트에 맞게 보드 및 드라이버 매개변수를 사용자 정의하는 기능
  • 보드 크기 26.5 x 15.6mm

보드에는 추가 모뎀 제어 및 USB를 SUSPENDED 모드로 전환하기 위해 핀을 납땜할 수 있는 추가 구멍이 있습니다.

보드 크기는 다른 유사한 USB/UART 변환기와 거의 다릅니다.

  1. Gboard/Iboard 컨트롤러를 사용하여 상업용 프로젝트를 위해 촬영한 FOCA 2.2 보드
  2. 현재까지 사용되는 저렴한 FT232 변환기
  3. CP2102를 검토함

CP2102의 연결 및 설치

보드를 사용하기 전에 Si-Labs 공식 웹사이트에서 드라이버를 설치해야 합니다.

  • 컨트롤러에 연결하려면 5개의 전선이 필요합니다.
  • GND-GMD
  • VCC - 사용된 보드에 따라 V5.0(V3.3)
  • 텍사스-수신
  • RX-TX
  • 컨트롤러 재설정 - DTE


이제 RESET 버튼을 누르지 않고도 컨트롤러를 프로그래밍할 수 있습니다.

VID, PID 및 기타 변환기 특성 변경

보드는 시스템에서 Silicon Labs CP210X USB-UART 브리지(COM35)로 인식됩니다.

때로는 상업 프로젝트에서 프로그래밍할 때 장치에 자체 상업 이름이 있어야 하는 경우가 있습니다. CP2102 칩과 그 위의 보드는 이에 대한 훌륭한 기회를 제공합니다.

먼저 EEPROM CP1202 매개변수 구성을 위한 유틸리티를 다운로드하고 실행합니다. (유틸리티를 실행하려면 Java Runtime도 다운로드해야 했습니다.)

이제 다음 설정을 변경할 수 있습니다.

  • 공급업체 ID(VID). 제조업체 ID. 기본값은 10С4(16진수 형식)입니다. 이 경우 SiLabs에 속합니다.
  • 제품 ID(PID). 제품 ID. 기본값은 EA60(16진수 형식)입니다. 이 경우 모든 CP210x 브리지를 나타냅니다.
  • 최대 전력. USB 버스의 브리지가 요청한 최대 전류 소비입니다. 기본값은 32(16진수 형식)입니다. 최대값 500mA
  • 전력 사용 속성. 다이어트. 버스 전원(USB 버스 전원) 또는 자체 전원(외부 소스의 전원).
  • 릴리스 버전. 문제 번호. 기본값은 1.0입니다. 필드는 정수 부분과 분수 부분에서 1-99의 값을 가질 수 있습니다.
  • 일련번호. 일련번호. 기본값은 "0001"(텍스트 형식)입니다. 필드에는 최대 64자 길이의 텍스트 값을 사용할 수 있습니다. 여러 장치를 컴퓨터에 연결하는 데 필요
  • 제품 문자열. 필드에는 최대 126자 길이의 텍스트 값을 사용할 수 있습니다. 이 식별자는 CP210x 브리지가 컴퓨터에 처음 연결될 때 운영 체제에 표시되며 사용자가 적절한 드라이버를 선택하는 데 도움이 됩니다.
  • 사용자 정의 데이터 잠금. 구성 데이터를 보호합니다.

모든 것은 USART를 통해 하나의 장치에 연결해야 한다는 사실에서 시작되었습니다. 나는 즉시 AtTiny2313의 USB-UASRT 어댑터 (노트북에 COM 포트가 없기 때문에)를 가져 와서 (광고하지 않을 것입니다. 다이어그램은 인터넷에서 쉽게 찾을 수 있습니다) 연결하고 실행했는데 갑자기 어댑터가 고정 속도는 9600이고 장치의 고정 속도는 9600입니다. 연결해야 할 속도는 57600이었습니다. 당연히 저녁 늦은 시간이었고 FT232와 같은 것을 구입할 기회가 없었습니다. 따라서 약간의 고민 끝에 간단히 플래시하여 어댑터의 UASRT 속도를 변경하기로 결정했습니다. 결과적으로 연결이 성공적으로 이루어졌습니다. 그러나 인정해야 합니다. 이것은 해결책이 아니며 프로그래머가 가까이 있지 않을 수도 있으며 매번 펌웨어를 수정하는 것이 불편합니다. 그 결과, 저는 속도 등을 조절할 수 있는 일반 어댑터를 만드는 것에 대해 진지하게 생각했습니다.

물론 가장 쉬운 방법은 FT232를 구입하는 것이지만 Mega8의 가격과 비용을 비교해 본 결과 이 ​​옵션은 나에게 적합하지 않다는 결론에 도달했습니다. 따라서 MK용 어댑터를 제작하기로 결정했습니다. 그리고 그것이 MK에 있기 때문에 USART만 수행하는 것은 어떻게든 합리적이지 않습니다. 따라서 이 어댑터에 인터페이스를 몇 개 더 추가하는 것이 좋을 것입니다. 그렇게 한다면 보편적이고 유용한 것이 될 것입니다. 거의 즉시 Tiny2313에 어댑터용 드라이버를 설치했던 "즐거운" 기억이 떠올랐습니다(Windows7 x64의 경우 이는 매우 고통스럽습니다). 즉, "가상 COM" 장치를 폐기해야 하므로 PC용 프로그램을 작성해야 합니다. 그렇지 않으면 장치 작업이 불가능합니다. 일반적으로 잠시 생각한 후에 장치에 대한 최종 아이디어가 형성되었습니다. 기능은 다음과 같이 나타났습니다.

  • USB->USART 어댑터;
  • USB->SPI 어댑터;
  • USB->I 2 C 어댑터;
  • 이 경우 드라이버 설치로 머리를 속이지 않도록 장치는 HID(Human Interface Device)여야 합니다.

MK Mega8이 왕따의 대상이 된 이유는 다음과 같습니다. TQFP 패키지에서는 공간을 거의 차지하지 않으며(AtTiny2313보다 훨씬 적음) 최대 8KB를 차지합니다. 메모리. 처음에는 모든 인터페이스 소프트웨어를 만들 계획이었지만 보드를 레이아웃한 후 하드웨어 I 2 C를 포기해야 했습니다. 단면 보드에 표시할 방법이 없었습니다(나중에 이 문제는 여전히 해결되어야 할 것입니다. 보드 측면에 별도로 표시될 수도 있습니다). 따라서 그 기능은 다소 제한되어 있지만 USART와 SPI는 완전한 기능을 유지합니다. V-USB 라이브러리는 PC와의 통신에 사용되었습니다.

장치의 다이어그램은 다음과 같이 나타났습니다.

보시다시피, 그것에 대해 복잡한 것은 없습니다. MK는 5V의 전압으로 전원이 공급되며 USB 레벨은 전압 분배기와 68Ω 저항을 사용하여 일치됩니다. + 제너 다이오드 3.3V.. MK 클록 주파수 – 12MHz. 이는 USB 버스 작업을 위한 최소 주파수입니다. 회로에는 작동 모드를 나타내는 3개의 LED도 포함되어 있습니다. LED 중 하나는 활성화된 작동 모드를 표시하고, 다른 두 개는 데이터 수신/전송을 나타냅니다. 장치에는 버튼이나 스위치가 없으며 모든 설정은 PC에서 직접 프로그래밍 방식으로 이루어집니다. 예, 인터페이스를 작동하는 데 사용되는 모든 핀에는 68옴 저항이 포함되어 있습니다. MK를 단락으로부터 보호합니다. 위에서 설명한 대로 장치는 PC에 HID로 나타나며 드라이버 설치가 필요하지 않습니다. VID 및 PID는 V-USB에서 제공하는 VID - 0x16c0, PID - 0x05df 중에서 선택되었습니다. 그렇지 않으면 USB 장치의 개별 식별자를 구입하기 위해 상당한 금액을 지불해야 합니다. 하지만 왜냐하면 오픈 소스 및 비상업적 프로젝트이므로 V-USB에서 제안하는 식별자를 완전히 자유롭게 사용할 수 있습니다.

결제는 다음과 같이 이루어졌습니다.

그리고 납땜 형태로:

이것은 테스트 샘플이었는데, 심지어 오류도 있었습니다. 왠지 CE 출력은 표시할 가치가 없다고 생각했습니다. 글쎄요, 모든 것이 이미 수정되었으며 올바른 보드가 기사에 첨부되었습니다.

따라서 회로의 모든 것이 명확하고 극도로 간단하며 어느 날 저녁에 납땜할 수 있습니다. 그러나 위에서 언급한 대로 결과 장치는 PC에 의해 HID로 정의됩니다. OS는 데이터베이스에서 해당 드라이버를 선택합니다. 간단히 말해서 Windows는 입력 장치와 함께 작동하고 있다고 생각합니다. 이를 통해 드라이버를 사용하는 번거로움 없이 모든 PC에서 작업할 수 있습니다. 그러나 여기에는 한 가지 작은 문제가 있습니다. USART를 통해 데이터를 교환하는 기존 프로그램 중 어느 것도 이 장치에서 작동하지 않습니다. 이는 모듈을 사용하려면 특별한 프로그램이 필요하다는 것을 의미합니다. 그렇지 않으면 가치가 없습니다. 그래서 저는 제가 가장 좋아하는 C++ Builder(현재는 CodeGear RAD Studio라고 불리며, 다른 의미로는 의미가 바뀌지 않음) 버전 2007을 열고 다음 프로그램을 작성했습니다.

특별히 복잡한 것은 없습니다. 각 인터페이스마다 다양한 설정이 있습니다. 예, 여러 인터페이스가 동시에 작동할 수 없으며 한 번에 하나만 작동할 수 있습니다. 모든 작업은 매우 간단하게 작동합니다. 장치를 PC에 연결하면 프로그램 창에서 버튼이 활성화되고 클릭하면 해당 인터페이스가 시작됩니다. 그런 다음 입력 필드에 특정 형식으로 데이터를 쓰고 "보내기" 버튼을 클릭하세요. 각 인터페이스에는 고유한 데이터 형식이 있습니다. 이제 더 자세히 살펴보겠습니다.

USART: (모드가 활성화되어 있는 동안, 말하자면 자동으로 데이터가 항상 수신됩니다.)

  • 여러 개의 HEX 번호를 보내려면 공백으로 구분하여 무제한으로 작성하세요. 예: 01 05 fa aa ...
  • 문자열(텍스트, 숫자 등) 보내기 여기서 식별자 S(s)는 줄 시작 부분에 기록됩니다. 예: s www.site
  • 장치에 데이터를 전송하기 위한 문자열 형식은 주소(전송 대상 및 메모리 셀) A(a) 및 데이터 D(d)입니다. 예: aa3 dfa;
  • 장치로부터 데이터를 요청하기 위해: 주소(수신할 대상과 메모리 셀로부터) 및 식별자 R(r)을 읽습니다. 예: aa3r
  • 장치에 데이터를 전송하려면: 장치 주소(비트를 0으로 읽음) A (a) 메모리 주소 M(m) 데이터 D(d). 예를 들어 aa2 m03 d15
  • 데이터 요청은 다음과 같습니다. 장치 주소(0으로 읽기 비트) A (a) 메모리 셀 주소 M (m) 장치 주소 (1로 읽기 비트) A (a) 읽을 메모리 셀 수가 포함된 읽기 식별자 R ( 아르 자형). 예: aa2 m03 aa3 r1

​슬레이브 모드에는 SPI에 대한 명령이 없습니다. 우리는 그들이 우리에게 무언가를 보낼 때까지 앉아서 기다립니다. 장치를 사용하려면 장치를 PC에 연결하고 OS가 드라이버를 성공적으로 찾아 설치했다고 보고할 때까지 잠시 기다린 다음 프로그램을 실행하고 데이터 교환을 시작합니다. 장치를 만들 때 단순성이 기준 중 하나였기 때문에 모든 것이 매우 간단합니다.

예, 그런데 이 프로그램은 Windows XP에서 Windows 8까지 모든 Windows 버전과 호환되며 작동하기 위해 NetFramework 등과 같은 다양한 이국적인 기능이 필요하지 않습니다. 실제로 모듈 자체입니다.

그게 전부입니다. 프로그램, 보드 및 소스 코드가 포함되어 있습니다.

퓨즈는 고주파수에서 외부 석영으로 작동하도록 설정되어 있습니다. 그것들은 다음과 같습니다:

그림에서 LOW 퓨즈는 표시가 없으면 1이고 표시가 있으면 0입니다. HIGH 퓨즈는 그 반대입니다. 16진수에서는 HIGH: D9, LOW: FF와 같습니다.

물론 영상도 그렇고... 한 번 보는 것보다 낫습니다... (USART는 에코 테스트 모드(Rx 및 Tx 연결)에서 작동하며 SPI 및 I 2 C는 PCA2129T 칩으로 테스트됩니다. 관련 기사)

방사성 원소 목록

지정 유형 명칭 수량 메모가게내 메모장
MK AVR 8비트

ATmega8

1 메모장으로
VD1, VD2 제너다이오드

BZX55C3V3

2 3.3볼트 메모장으로
HL1-HL3 주도의 3 메모장으로
C1 전해콘덴서100μF1 탄탈륨 커패시터 메모장으로
C2, C3 콘덴서0.1μF2 메모장으로
C4, C5 콘덴서22pF2 메모장으로
R1 저항기

1.5kΩ

1 메모장으로
R2 저항기

10k옴

1 메모장으로
R3, R4, R8-R13 저항기

복잡한 전자 장비의 수리는 현재 소프트웨어 수리("소프트웨어") 또는 하드웨어 수준의 하드웨어 수리라는 두 가지 옵션으로 나눌 수 있습니다. 첫 번째 작업은 단순히 장치 설정과 관련된 경우(기술에 익숙한 사용자라면 누구나 수행할 수 있음) 어떤 이유로 작동 중에 해당 설정이 손실되는 경우입니다.

하드웨어 수리- 여기에는 납땜, 다양한 이유로 고장난 특정 무선 구성 요소 교체가 포함되는 경우가 가장 많습니다. 예를 들어 장치 본체에 쌓인 먼지로 인해 과열되어 열 전달이 악화되거나 습기 유입으로 인해 단락이 발생하는지 여부. 또는 모든 단락 마스터가 좋아하는 동일한 것, 장치 본체에 정착 한 곤충에 의해 보드에 배열되어 있으며 활동의 흔적이 보드에서 종종 발견됩니다.

그러나 일반적으로 디지털 기술과 관련된 세 번째 유형의 수리가 있는데, 이 두 가지 유형의 수리가 결합되어 있습니다. 이는 장치를 깜박이는 것입니다. 예를 들어 USB 케이블을 통해 컴퓨터에 연결하여 스마트폰이나 태블릿을 다시 플래시할 수 있다면 이 방법은 라우터, 마더보드 또는 비디오 카드에서는 작동하지 않습니다. 이들 모두에는 일반적으로 펌웨어가 저장되는 특수 칩인 플래시 메모리(보통 24 또는 25 시리즈)가 포함되어 있습니다.

메모리 칩 25 시리즈

마더보드와 비디오 카드를 사용하면 일반적으로 모든 것이 간단합니다. 예를 들어 문제 해결을 위한 옵션 중 하나로 논의될 간단하고 저렴한 CH341A와 같은 플래시 및 EEPROM 메모리 프로그래머가 필요합니다. 또한 납땜 없이 플래시 메모리를 사용하려면 SO-8 또는 SO-16 패키지의 플래시 마이크로 회로용 특수 클립이 필요합니다. 내 집 작업장에는 두 개의 클립이 모두 있습니다.

SO-8 스티칭용 클립

SO-8 패키지의 미세 회로에 대한 첫 번째는 일반적으로 SO-16 패키지의 미세 회로에 대한 두 번째보다 몇 배 더 자주 필요합니다. 그건 그렇고, Zyxel 라우터를 플래싱하는 데 한 번만 유용했습니다. 그건 그렇고, 그들은 스스로를 잘 알려진 브랜드라고 생각하기 때문에 독창적이고 때로는 유사한 SO-16 케이스에 미세 회로를 설치하며 29 시리즈 미세 회로가 아니더라도 좋습니다. 누가 알겠습니까? 그는 즉시 이해할 것입니다.

SO-16 클립 커넥터

사실 29 시리즈 초소형 회로를 플래시하려면 훨씬 더 비싼 프로그래머인 MiniPro TL866A가 필요합니다. 저도 가지고 있지만 매우 일반적인 다리 배열을 가진 Dip 케이스에서 이 케이스까지 어댑터가 없습니다. , 동일한 SO-8 또는 SO-16과 같은 SMD 패키지의 미세 회로를 납땜하는 납땜과 비교할 때 어린이 놀이입니다. 그래서 수리를 위해 29 시리즈 칩이 탑재된 Zyxel 라우터를 구입했습니다. 이전 Zyxel 라우터를 처음 수리했을 때 칩은 SO-16 패키지에 있지만 직렬 메모리 25 시리즈였습니다. 그러면 아시다시피 수리를 수행하는 것이 훨씬 쉬웠습니다.

메모리 칩 29 시리즈

그렇다면 우리가 "운이 좋고" 그러한 29 시리즈 마이크로 회로를 가지고 있다면 어떻게 라우터를 복원할 수 있습니까? 이 경우 라우터 제조업체는 TFTP 서버를 통해 비상 플래싱을 제공합니다. 그런데 문제는 U-Boot라고 불리는 칩 메모리의 부팅 파티션이 지워지는 경우가 있다는 것입니다. 이 경우 특정 주소에서 라우터 메모리를 플래싱하는 옵션이 적합하며, 라우터 플래싱에 대한 전문 포럼에서 자신을 찾아야 합니다. 그러나 일반적으로 모든 것이 훨씬 간단합니다. 펌웨어가 잘못되고 라우터가 정상적으로 작동하는 데 필요한 데이터가 손실되지만 부팅 영역과 보정 영역은 그대로 유지됩니다. 이 경우 간단하고 저렴한 USB-TTL 어댑터가 필요하며 Ali Express의 비용은 약 40 루블에 불과합니다.

USB-TTL 어댑터

CH340A 칩의 어댑터도 적합합니다. 이 어댑터는 보드에 CH340A 부트로더가 납땜되어 있지 않은 Arduino Pro 미니 보드에 스케치를 업로드하는 데 사용됩니다. 또한 위에서 이미 작성한 pl2303 기반 어댑터 ​​또는 CH341A 플래시 및 EEPROM 메모리 프로그래머도 적합하며 점퍼를 변경한 후 USB-UART 어댑터 모드에서 작동할 수 있습니다.

플래시 및 EEPROM 메모리 프로그래머 + USB-TTL

최후의 수단으로 USB-COM 변환기가 포함된 기존 휴대폰의 플래싱 케이블을 사용할 수 있지만 전력 수준을 일치시켜야 합니다. 어댑터의 전원은 특정 핀에서 출력할 수 있는 5V가 아닌 3.3V만 사용해야 합니다. 따라서 이 어댑터(또는 위에 나열된 것 중 하나)가 있고 이에 대한 드라이버를 설치하고 Windows의 장치 관리자로 이동하여 어댑터가 해당하는 COM 포트 번호를 확인했다고 가정해 보겠습니다. 그리고 이 어댑터는 시스템의 가상 COM 포트에 지나지 않습니다.

COM 포트 번호를 찾고 있습니다

그런 다음 콘솔 명령을 사용하여 라우터를 플래시하여 복원하는 일종의 프로그램이 필요합니다. 그러나 이 어댑터를 사용하여 라우터를 다시 플래시하지는 않습니다. 어댑터는 펌웨어 프로세스를 제어하는 ​​데만 사용됩니다. 이 경우 라우터를 어떻게 플래시합니까? 물론 JTAG 인터페이스를 통해 ARM 프로세서를 통해 라우터를 플래시하는 옵션이 있으며 Ali Express에서 이 프로그래머를 구입했습니다. LPT 인터페이스를 통해 연결된 Wiggler 프로그래머이지만 알아내려고 노력한 후에 결정했습니다. 플래싱 방식이 TFTP 서버를 사용하는 것이 훨씬 간단합니다.

JTAG 흔들기 프로그래머

JTAG 프로그래머가 필요하지 않은 이 간단한 옵션을 자세히 살펴보겠습니다. 이는 위에서 쓴 것처럼 TFTP 서버를 통해 깜박입니다. 이렇게 하려면 USB-UART 어댑터를 라우터 보드의 4핀에 연결해야 합니다. 사실, 때로는 제조업체가 접촉 패드와 트랙을 분리했지만 핀 자체를 납땜하지 않은 경우가 있습니다. 이 경우 라디오 상점에서 구입하거나 기증자 마더보드 또는 기타 장치에서 납땜한 4핀 빗을 독립적으로 납땜할 수 있습니다.

USB-TTL 연결

원칙적으로 가능하지 않은 경우 이러한 핀을 납땜할 필요조차 없지만, 핀이 납땜되어야 하는 접촉 패드인 보드의 니켈에 조심스럽게 납땜하기만 하면 됩니다. 얇은 MGTF 와이어는 이러한 목적에 매우 편리합니다. 그래서 우리는 어댑터를 컴퓨터에 연결하고 드라이버를 설치한 다음 보드의 핀 4개 중 3개에 필요한 안정적인 연결을 제공했습니다.

어댑터용 Arduino 점퍼

빗에 연결하려면 아두이노 보드를 쉴드에 연결할 때 사용하는 점퍼와 점퍼를 이용하면 편리합니다. 이 3개의 전선을 어떻게 연결해야 합니까? 그리고 연락처가 4개인데 왜 3개만 있습니까? 어댑터에서 라우터에 전원을 공급하는 것은 권장되지 않습니다. 전원은 자체 전원 공급 장치에서 공급되어야 합니다. 따라서 예상대로 3.3V를 사용하더라도 전원을 분리하는 것이 좋습니다.

어댑터와 라우터 간의 연결 - 다이어그램

플래싱 시 서로 연결된 기기들의 그라운드를 결합해야 하므로 그라운드인 GND 핀을 연결해야 합니다. 그러나 나머지 두 핀인 RX와 TX는 서로 "교차"하여 연결해야 합니다. 즉, RX를 TX에 연결하고 TX를 RX에 연결해야 합니다. 따라서 모든 것을 올바르게 연결한 다음 터미널을 올바르게 구성해야 합니다. 콘솔을 통해 라우터를 제어하고 이에 따라 새 펌웨어로 업데이트하려면 Putty를 사용하는 것을 선호합니다.

퍼티 설정

이는 Putty 설정에서 직렬 포트, 직렬 포트 또는 COM 포트를 선택한 다음 이전에 장치 관리자에서 살펴본 원하는 COM 포트 번호를 설정한다는 의미입니다. 그런 다음 COM 포트 속도를 일반적으로 57600, 덜 자주 115200 보드로 구성해야 합니다. 마지막으로 모든 것이 올바르게 연결되어 있고 보드에 단락되거나 단락된 부분이 없는지 다시 한 번 확인한 후 깜박이는 과정에서 미리 구성된 콘솔에 로그인하고 원래 전원에서 라우터에 전원을 공급합니다. 공급.

터미널의 크라코자브리

화면에 "크래커"가 표시되면 COM 포트 속도를 잘못 구성했음을 의미하므로 라우터 모델에 설정해야 하는 속도를 읽거나 "크래커"가 사라지고 일반 텍스트가 나타날 때까지 실험적으로 선택해야 합니다. . 그런 다음 라우터의 전원을 켠 직후에 적절한 순간을 포착해야 합니다. 이는 쉽지 않은 특정 키 조합(TP-Link 라우터의 경우 tpl 또는 숫자 4)을 눌러 콘솔에 들어가고, 또는 Zyxel 라우터의 경우 2번으로 TFTP 서버에서 플래싱을 시작합니다.

TFTP 서버 인터페이스

서버 자체는 네트워크 연결에서 관리자로 실행되어야 하며 서버의 IP 주소가 여기에 표시되어야 합니다. 콘솔에서 알려 주거나 인터넷에서 직접 찾을 수 있습니다. TFTP 서버에서는 클라이언트의 IP 주소와 펌웨어가 있는 폴더를 지정해야 합니다.

네트워크 연결 설정 변경

펌웨어 자체에는 반드시 Boota가 없어야 합니다. 즉, 클립으로 연결된 펌웨어를 재봉할 때 25 시리즈 SPI 프로그래머를 통해 Fullflash, 즉 부트로더가 있는 펌웨어가 필요합니다. 이 경우 펌웨어는 다음과 같아야 합니다. 일반적으로 제조업체가 웹 사이트에 제공하는 부트로더 없이 표준입니다. 예를 들어 123.bin과 같이 펌웨어 파일의 이름을 더 간단하게 만드는 것이 좋습니다. 플래싱 프로세스를 시작할 때 콘솔에 해당 이름을 입력해야 합니다.

다운로드 중단

그런 다음 깜박임에 동의하고 확인해야 합니다. 모든 작업을 올바르게 수행했다면 콘솔에서 깜박이는 프로세스가 시작되고, 완료되면 라우터를 재부팅하기만 하면 되며 펌웨어가 해당 모델 및 하드웨어 개정판에서 나온 것이라면 모든 것이 확실히 잘 작동할 것입니다.

물론 플래싱 프로세스에 대한 설명은 방대했지만 적어도 두 번 이상 완료 한 사람의 프로세스 자체는 매우 간단해집니다. 그리고 라우터가 특히 5~6월의 천둥번개 기간 동안 오래 지속되지 않는 장비라는 점을 고려하면, 새 라우터 구입 비용을 절약하려는 초보자에게 이 기사가 유용할 것이라고 생각합니다. 모두 즐거운 수리 되세요! 특히 사이트 라디오 회로의 경우 - AKV.

USB-UART 변환기: 어댑터로 다시 플래시 기사에 대해 토론하십시오.

© 2024 ermake.ru - PC 수리 정보 - 정보 포털