컴퓨터 프로그램이 실제 세계와 통신 할 수있는 최상의 마이크로 컨트롤러 패키지를 찾으려고 노력 중입니다. CPU에서 실행되는 프로그램에서 함수를 호출하여 직접 읽고 쓸 수있는 많은 수의 I / O 핀 (지금까지 64 디지털은 아날로그 및 PWM과 같은 멋진 것은 아닙니다)을 기대하고 있습니다.
실행하기 위해 마이크로 컨트롤러 자체에 프로그램을 다운로드하고 싶지 않습니다. 오히려 단순히 USB에 연결하고 C ++ 프로그램에서 제어 할 수있는 많은 CPU 제어 I / O 핀을 제공하는 것을 원합니다.
나에게 가장 적합한 마이크로 컨트롤러 패키지는 무엇입니까? USB를 사용하고 Windows 7과 같은 최신 OS 용 64 비트 드라이버가 있기 때문에 상당히 저렴하지만 미래의 증거가되기를 바랍니다. 동일한 컴퓨터 프로그램으로 하나 이상의 마이크로 컨트롤러를 인터페이스 할 수 있다면 큰 보너스 (미래 확장).
편집 : 높은 샘플링 속도 (입력 읽기의 경우 10Hz, 출력 신호의 경우 1kHz)가 필요하지 않으며 대부분의 핀은 출력에만 사용됩니다. 나는 새로운 컴퓨터 (코어 i7 860)와 함께 일하고 있으므로 샘플링이 약간 비효율적이거나 느리더라도 여전히 괜찮습니다 (I / O 전용 스레드 하나만 있고 주 프로그램과 통신하도록하십시오).
또한 단일 마이크로 컨트롤러 패키지에 64 개의 I / O 핀이 모두 필요하지는 않습니다. 많은 마이크로 컨트롤러 패키지를 동시에 인터페이스 할 수 있다면 작동합니다 (실제로 많은 작은 마이크로 컨트롤러 패키지를 인터페이스하는 것이 이상적이므로 확장하기 쉽습니다).
나는 이것을 보았다 : http://www.schmalzhaus.com/UBW32/index.html
누구든지 이와 같은 경험이 있습니까? 그것이 작동하는지 아닌지 알 수 있습니까? 주요 관심사는 내 CPU가 아닌 프로그램을 실행하는 것이 마이크로 컨트롤러라는 것입니다.
답변
화려 함,
UBW32는 내가 당신의 요구 사항을 알 수있는 것으로부터 아주 좋은 방법입니다. 3.3VI / O (일부는 5V에 견딜 수 있지만 전부는 아님)로는 괜찮다면 필요한 것을 정확하게 지원할 것입니다. 직렬 포트 (기본, C, C #, 처리 등 거의 모든 포트)
76 I / O 핀 중 하나를 입력 또는 출력으로 사용할 수 있습니다. 기본 제공 펌웨어를 사용하면 임베디드 측에서 프로그래밍 할 필요없이 원하는 작업을 수행 할 수 있습니다. USB를 통해 PC로 데이터를 가져 오는 것은 문제가되지 않습니다. 1KHz로 출력을 얻는 것은 아마 잘 작동합니다.
궁금한 점이 있으면 알려주세요. 기꺼이 도와 드리겠습니다.
* Brian Schmalz UBW32 제작자
답변
나는 추천 얼른 ++ 2.0 (또는 다른 AT90USB1286 개발 보드)
128KB 플래시, 8KB RAM, 46 개의 I / O 핀, 8 개의 아날로그 입력
24 달러
Teensy 보드는 USB 전원을 사용하며 가상 COM 포트 (USB 통신 장치 클래스)를 제공 할 수 있습니다. 핀 제어 프로토콜에이 직렬 링크를 사용할 수 있습니다. 이것은 Windows, OSX 및 Linux에서 사용자 정의 드라이버없이 작동합니다.
핀 제어 펌웨어를 만들려면 TeensyDuino 또는 일반 C가 있습니다.
비트 뱅킹시 병목 현상은 마이크로 컨트롤러의 USB 인터페이스가됩니다. 따라서 I2C 및 SPI와 같은 프로토콜을 마이크로 컨트롤러로 전환 할 수 있습니다. 이를 위해 내 버스 닌자를 사용할 수 있습니다 .
설정에 Teensies를 추가하는 것은 간단합니다. 장치 당 하나의 USB 포트만 있으면 장치 당 하나의 가상 COM 포트가 나타납니다.
(참고.이 방법은 모든 ARM 프로세서 및 다른 프로세서와 동일하게 작동합니다. 사용 가능한 소프트웨어가있는 저렴한 개발 보드는 알 수 없습니다).
또 다른 방법은 Arduino와 Caterpillar Shield 를 사용하여 I / O를 확장하는 것입니다. 사용자 정의 보드에서 동일한 I / O 확장기를 중심으로 구축하여 1KHz 이상에서 256 출력을 업데이트 할 수있었습니다.
답변
나는 당신이 원하는 것이 마이크로 컨트롤러가 아니라 National Instruments PCI-6509 I / O 카드 와 같은 것이라고 생각 합니다 . USB 버전도 얻을 수 있지만 PCI-6509보다 I / O가 훨씬 적습니다. 내쇼날 인스트루먼트는 C ++ 드라이버도 판매합니다.
너무 비싸 보인다면 Labjack U3 과 같은 것을 시도해보십시오 .
답변
귀하가 설명하는 솔루션은 저렴한 가격에 존재하지 않습니다. 문제는 제어 소프트웨어를 설계하지 않은 시스템에서 실행하려는 것입니다. 64 개의 포트를 직렬화하고 높은 샘플링 속도로 USB를 통해 밀어 넣으면 호스트 컴퓨터의 속도가 크게 느려집니다.
언급 된 labjack과 같은 저 성능 애플리케이션에 적합한 솔루션이 있습니다. 그러나 높은 IO 속도를 처리하는 데 필요한 실제 솔루션에는 프로그래밍 된 시스템이 포함됩니다. 문제는 시스템을 구현하기 위해 어떤 프로그래밍을 사용해야 하는가입니다.
LabView는 비용이 많이 드는 소프트웨어입니다 (잘 작동하지만 실수하지 않습니다). 그래픽 언어를 사용하여 소프트웨어를 설계하고 FPGA 또는 ARM 시스템에서 실행되는 코드로 컴파일합니다. 모든 구성 요소는 대용량 임베디드 앱에 비해 너무 비싸지 만 빠른 개발과 고성능 제공으로 인해 테스트 환경에서는 절대적으로 훌륭합니다.
저렴한 솔루션은 많은 I / O로 리눅스를 실행하는 시스템을 찾는 것입니다. EmbeddedARM.com 은 다양한 유형의 제품을 제공하는 사이트입니다. 작성할 수있는 코드는 쉘 스크립트, java, C 등일 수 있습니다.
아두 이노 시스템은 간단한 개발 환경으로 개발 될 수 마이크로 컨트롤러를 제공한다. 그들의 오픈 소스 특성은 이미 배울 많은 프로젝트 가 있다는 것을 의미 합니다.
답변
64 GPIO 핀이 무엇인지 잘 모르겠습니다. 많은 부분을 직접 작성해야 할 수도 있습니다.
직렬 인터페이스를 벤치 테스트 하기 위해 이것을 사용 하지만 23 GPIO 핀도 있습니다.
‘USB to GPIO’에 대해 Google을 검색하면이 작업을 수행 한 많은 프로젝트가 있습니다 .64 GPIO가있는 첫 번째 페이지 에는 32 핀이있는 가장 가까운 페이지가 없습니다 .
하나를 만드는 것은 그리 어렵지 않을 것입니다 .USB PHY가 내장 된 100pin pic18을 사용하고있을 것입니다 (속도 요구 사항에 따라 더 강력한 CPU가 주문 될 수 있음)
uC 벤더가 USB 드라이버 스켈레톤을 제공하는 한, 코딩 작업을 너무 많이하지 않아도됩니다.
일반적으로 64 GPIO 핀을 가질만큼 큰 칩이 일반적으로 스루 홀 패키지로 제공되지 않으므로 PCB를 만들어야합니다. 더 작은 마이크로 컨트롤러를 사용하고 GPIO를 위해 외부 포트 익스팬더 IC를 사용할 수도 있지만, 이는보다 복잡한 설계 및 프로그래밍이 더 복잡합니다.
모든 I / O 핀을 헤더로 라우팅하고 USB가있는 개발 보드를 볼 수도 있습니다. 그것들은 당신이 필요로하지 않는 많은 것들을 가지고 있기 때문에 훨씬 비쌀 것입니다.
마지막 팁으로, RS232는 있지만 64 개의 GPIO 핀이있는 보드를 찾으면 RS232-USB 어댑터를 사용할 수 있습니다. 이 중 일부는 저에게 효과적이었습니다. 그러나 이것은 RS232 인터페이스의 속도로 제한됩니다.
답변
NI Labview 환경은 비싸지 만 필요한 것을 수행 할 수 있습니다 (필요에 따라 USB, 이더넷 또는 PCI를 통해).
Arduino Mega에는 54 개의 핀이있어 60 달러에 가깝습니다. 그러나 이것은 기본적으로 로직 분석기가 아닙니다. 이렇게하려면 스케치를 작성하거나 찾아야합니다. 사용할 수있는 것이있을 수 있습니다. 낮은 버스 요금에서는 매우 간단해야합니다. Mega의 각 명령은 16MHz에서 발생하므로 전송 속도가 상당히 느리므로 115200 전송 신호를 얻을 수 있다면 운이 좋거나 매우 영리합니다.
결국 9600 보드 또는 50MHz에서 샘플링하는 경우 매우 다른 프로젝트입니다. USB는 480MHz에서 작동합니다 (이론상 대기 시간과 오버 헤드로 인해 실제 데이터 전송 속도가 느려질 것입니다). 버퍼링과 음란 한 돈 (차량 이상)으로 로직 분석기는 기가 헤르츠 데이터 속도에서 68, 102 또는 136 개의 채널을 얻을 수 있습니다.
8 채널 정도의 툴을 사용할 수 있는지 알아 내고 따로 분석해 보도록하자.
편집 : 아아, 내가 무엇을 생각하고 있었습니까? 그렇게 느린 속도로 가고 있다면 직렬 링크를 통해 작업하는 것이 확실합니다. 나는 직장에서 항상 Advantech 의 ADAM 4000 모듈 시스템을 사용합니다 . 견고하고 사용하기 쉬우 며 (COM 포트를 통해 ASCII 프로토콜로 쉽게 인터페이스하거나 포함 된 GUI 소프트웨어를 사용) 확장 가능하며 잘 지원됩니다. 4500 (RS-232, 컴퓨터에 USB 변환기 또는 COM 포트 (있는 경우)가 있음) 또는 4501 (내장 웹 서버가있는 이더넷) 컨트롤러를 설치하고 4053, 4055 및 4056 모듈을 연결하십시오. 그리고 당신은 잘 지내요.