2013년 12월 11일 수요일

SDK - ATEM Switchers (7 오디오 혼합하기)

7 오디오 혼합하기
오디오는 프로그램 출력에서 혼합되는 것이든지 미디어 플레이어나 외부 오디오 입력이나 입력의 비디오로 임베디드된 소스이든지 모든 스위처는  제어를 허용한다.

7.2 인터페이스 참조

7.2.1 IBMDSwitcherAudioMixer 인터페이스
모든 오디오 혼합하기 제어나 피드백의 뿌리 객체이다.
IBMDSwitcher 객체 인터페이스의 QueryInterface 메소드를 사용하여 포함되어질 것이다. IID 파라미터를 위한 IID_IBMDSwitcherAudioMixer 는 패스~

  • 관계된 인터페이스
    • IBMDSwitcher
      • 인터페이스ID
        • IID_IBMDSwitcher
      • IBMDSwitcher::QueryInterface는 IBMDSwitcherAudioMixer 객체 인터페이스를 반환할 수 있다.
  • 메소드
    • GetProgramOutGain, SetProgramOutGain
      • 현재 프로그램 출력 gain 값 가져오거나 설정하기
    • GetProgramOutBalance, SetProgramOutBalance
      • 현재 프로그램 출력 벨런스 값 가져오거나 설정하기
    • SetAllLevelNotificationsEnable
      • Opt-in 레벨 알림
    • ResetProgramOutLevelNotificationPeaks
      • 프로그램 출력 최대 레벨 통계에서 0으로 재설정
    • ResetAllLevelNotificationPeaks
      • 모든 스위처 최대 레벨 통계에서 0으로 재설정
    • AddCallback, RemoveCallback
    • CreateIterator

7.2.2 IBMDSwitcherAudioMixerCallback 인터페이스

7.2.3 IBMDSwitcherAudioInputIterator 인터페이스

7.2.4 IBMDSwitcherAudioInput 인터페이스
오디오 입력의 설정을 조작하는데 사용됨
  • 관계된 인터페이스
    • IBMDSwitcherAudioInputIterator
      • 인터페이스ID
        • IID_IBMDSwitcherAudioInputIterator
      • IBMDSwitcherAudioInputIterator::Next 메소드 호출이 성공한 후에 반환될 것임
  • 메소드
    • GetType
      • 오디오 입력 형식 가져오기
    • GetMixOption, SetMixOption
      • 현재 혼합 옵션
    • GetGain, SetGain
      • 현재 gain 값 가져오거나 설정하기
    • GetBalance, SetBalance
      • 현재 벨런스 값 가져오거나 설정하기
    • IsMixedIn
      • 현재 is-mixed-in 플래그 가져오기
    • GetAudioInputId
      • 오디오 입력의 식별자 가져오기
    • ResetLevelNotificationPeaks
      • 최대 레벨 통계에서 0으로 재설정
    • AddCallback, RemoveCallback

7.2.5 IBMDSwitcherAudioInputCallback 인터페이스

7.2.6 IBMDSwitcherAudioMonitorOutputIterator 인터페이스

7.2.7 IBMDSwitcherAudioMonitorOutput 인터페이스
오디오 모니터 출력 명세 파라미터 조작에 사용됨
  • 관계된 인터페이스
    • IBMDSwitcherAudioMonitorOutputIterator
      • 인터페이스ID
        • IID_IBMDSwitcherAudioMonitorOutput
      • IBMDSwitcherAudioMonitorOutputIterator::Next 로 포함될 수 있다.
  • 메소드
    • GetMonitorEnable, SetMonitorEnable
      • 현재 모니터-활성 플래그 가져오거나 설정하기
    • GetMute, SetMute
      • 현재 음소거 플래그 가져오거나 설정하기
    • GetGain, SetGain
      • 현재 gain 값 가져오거나 설정하기
    • GetSolo, SetSolo
      • 현재 독주 플래그 가져오거나 설정하기
    • GetSoloInput, SetSoloInput
      • 현재 독주되는 입력 가져오거나 설정하기
    • GetDim, SetDim
      • 현재 흐릿함 플래그 가져오거나 설정하기
    • GetDimLevel, SetDimLevel
      • 현재 흐릿함 정도 가져오거나 설정하기
    • ResetLevelNotificationPeaks
      • 최대 레벨 통계에서 0으로 재설정
    • AddCallback, RemoveCallback

7.2.8 IBMDSwitcherAudioMonitorOutputCallback 인터페이스

2013년 12월 9일 월요일

SDK - ATEM Switchers (6. SuperSource)

6 SuperSource (수퍼소스)
타겟 스위처가 사용 가능할 때, 수퍼소스는 단순 비디오 출력의 부분으로 박스에 표시 되는 것에 다양한 비디오 소스를 허락한다.

6.1 수퍼소스 자료형

6.1.1 수퍼소스 상자 이벤트 형
BMDSwitcherSuperSourceBoxEventType은 BMDSwitcherSuperSourceBox의 가능한 이벤트 형을 열거한다.

  • bmdSwitcherSuperSourceBoxEventTypeInputSourceChanged
    • 소스 입력 변경됨
  • bmdSwitcherSuperSourceBoxEventTypePositionXChanged
    • x 위치 변경됨
  • bmdSwitcherSuperSourceBoxEventTypePositionYChanged
    • y 위치 변경됨
  • bmdSwitcherSuperSourceBoxEventTypeSizeChanged
    • 크기 변경됨
  • bmdSwitcherSuperSourceBoxEventTypeCroppedChanged
    • 수확된 플래그 변경됨
  • bmdSwitcherSuperSourceBoxEventTypeCropTopChanged
    • 위 수확 값 변경됨
  • bmdSwitcherSuperSourceBoxEventTypeCropBottomChanged
    • 아래
  • bmdSwitcherSuperSourceBoxEventTypeCropLeftChanged
    • 왼쪽
  • bmdSwitcherSuperSourceBoxEventTypeCropRightChanged
    • 오른쪽

6.1.2 수퍼소스 입력 이벤트 형
BMDSwitcherInputSuperSourceEventType은 BMDSwitcherInputSuperSource의 가능한 이벤트 형을 열거한다.

6.1.3 수퍼소스 예술 옵션
BMDSwitcherSuperSourceArtOption은 IBMDSwitcherInputSuperSource 객체 인터페이스에 의해 사용되어지는 가능한 수퍼소스 예술 옵션을 열거한다.

6.2 인터페이스 참조

6.2.1 IBMDSwitcherInputSuperSource 인터페이스
IBMDSwitcherInputSuperSource 객체 인터페이스는 수퍼소스 입력의 설정 명세 조작에 사용된다.
  • 관계된 인터페이스
    • IBMDSwitcherInput
      • 인터페이스ID
        • IID_IBMDSwitcherInput
      • IBMDSwitcherInputSuperSource 객체 인터페이스는 IBMDSwitcherInput::QueryInterface로 포함되어질 수 있다.
  • 메소드
    • GetInputCut, SetInputCut
      • 현재 예술 cut 입력 가져오거나 설정하기
    • GetInputFill, SetInputFill
      • 현재 예술 채움 입력 가져오거나 설정하기
    • GetFillInputAvailabilityMask
      • 이 입력의 채움을 위한 사용가능한 마스크 가져오기
    • GetCutInputAvailabilityMask
      • 이 입력의 cut을 위한 사용가능한 마스크 가져오기
    • GetArtOption, SetArtOption
      • 현재 예술 옵션 가져오거나 설정하기
    • GetPreMultiplied, SetPreMultiplied
      • 현재 미리 곱해진 플래그 가져오거나 설정하기
    • GetClip, SetClip
      • 현재 예술 클립 값 가져오거나 설정하기
    • GetGain, SetGain
      • 현재 예술 gain을 가져오거나 설정하기
    • GetInverse, SetInverse
      • 현재 예술 반전 플래그 가져오거나 설정하기
    • GetBorderEnabled, SetBorderEnabled
      • 현재 경계 활성화된 플래그 가져오거나 설정하기
    • GetBorderBevel, SetBorderBevel
      • 현재 경계 사각 가져오거나 설정하기
    • GetBorderWidthOut, SetBorderWidthOut
      • 현재 경계 바깥쪽 너비 가져오거나 설정하기
    • GetBorderWidthIn, SetBorderWidthIn
      • 현재 경계 안쪽 너비 가져오거나 설정하기
    • GetBorderSoftnessOut, SetBorderSoftnessOut
      • 현재 경계 바깥쪽 유연성 가져오거나 설정하기
    • GetBorderSoftnessIn, SetBorderSoftnessIn
      • 현재 경계 안쪽 유연성 가져오거나 설정하기
    • GetBorderBevelSoftness, SetBorderBevelSoftness
      • 현재 경계 사각 유연성 가져오거나 설정하기
    • GetBorderBevelPosition, SetBorderBevelPosition
      • 현재 경계 사각 위치 가져오거나 설정하기
    • GetBorderHue, SetBorderHue
      • 현재 경계 색조값 가져오거나 설정하기
    • GetBorderSaturation, SetBorderSaturation
      • 현재 경계 채도값 가져오거나 설정하기
    • GetBorderLuma, SetBorderLuma
      • 현재 경계 밝기값 가져오거나 설정하기
    • GetBorderLightSourceDirection, SetBorderLightSourceDirection
      • 현재 경계 빛 소스 방향 가져오거나 설정하기
    • GetBorderLightSourceAltitude, SetBorderLightSourceAltitude
      • 현재 경계 빛 소스 높이 가져오거나 설정하기
    • AddCallback, RemoveCallback
    • CreateIterator

6.2.2 IBMDSwitcherInputSuperSourceCallback 인터페이스

6.2.3 IBMDSwitcherSuperSourceBoxIterator 인터페이스

6.2.4 IBMDSwitcherSuperSourceBox 인터페이스
수퍼소스 상자 설정 조작에 사용됨

  • 관계된 인터페이스
    • IBMDSwitcherSuperSourceBoxIterator
      • 인터페이스ID
        • IID_IBMDSwitcherSuperSourceBoxIterator
      • IBMDSwitcherSuperSourceBoxIterator::Next 메소드 호출이 성공한 이후 반환될 것임
  • 메소드
    • GetEnabled, SetEnabled
      • 현재 활성화된 플래그 가져오거나 설정하기
    • GetInputSource, SetInputSource
      • 입력 소스 가져오거나 설정하기
    • GetPositionX, SetPositionX
      • x 위치 가져오거나 설정하기
    • GetPositionY, SetPositionY
      • y 위치 가져오거나 설정하기
    • GetSize, SetSize
      • 크기 가져오거나 설정하기
    • GetCropped, SetCropped
      • 수확됨 플래그 가져오거나 설정하기
    • GetCropTop, SetCropTop
      • 위쪽 수확 값 가져오거나 설정하기
    • GetCropBottom, SetCropBottom
      • 아래쪽 수확 값 가져오거나 설정하기
    • GetCropLeft, SetCropLeft
      • 왼쪽 수확 값 가져오거나 설정하기
    • GetCropRight, SetCropRight
      • 오른쪽 수확 값 가져오거나 설정하기
    • ResetCrop
      • 기본 수확값 재설정
    • GetInputAvailabilityMask
      • 입력 사용가능한 마스크 가져오기
    • AddCallback, RemoveCallback

6.2.5 IBMDSwitcherSuperSourceBoxCallback 인터페이스

SDK - ATEM Switchers (5. Keyers)

5 Keyers
우리의 스위처에서 사용가능한 키어의 어떤 형태는 크로마 키잉 동작에 이 API 컴포넌트를 사용한다.

SDK - ATEM Switchers (4. 스위처 미디어)

4 스위처에 의해 사용되어지는 모든 미디어는 장면 그림이나 비디오 클립으로 이루어진 미디어 풀로부터 온다. 개발자는 이 SDK를 사용한 스위처의 미디어풀로부터 올리기와 내리기를 할 수 있다.








2013년 12월 8일 일요일

SDK - ATEM Switchers (3. 고급 변환)

3 고급 변환
변환은 소스들 사이에서 단순 컷 만들기보다 더 고급스럽게 할 수 있다.
이 API는 변환이 동작되기 위한 강력한 메소드를 많이 제공한다.

3.2 인터페이스 참조

3.2.1 IBMDSwitcherTransitionMixParameters 인터페이스
변환 설정 혼합 파라미터 명세 조작에 사용된다.
  • 관계된 인터페이스
    • IBMDSwitcherMixEffectBock
      • 인터페이스ID
        • IID_IBMDSwitcherMixEffectBlock
      • IBMDSwitcherTransitionMixParameters 객체 인터페이스는 IBMDSwitcherMixEffectBlock::QueryInterface로 포함될 수 있다.
  • 메소드
    • GetRate
      • 현재 비율 가져옴
    • SetRate
      • 비율 설정
    • AddCallback
      • 콜백 추가
    • RemoveCallback
      • 콜백 제거

3.2.2 IBMDSwitcherTransitionMixParametersCallback 인터페이스
IBMDSwitcherTransitionMixParameters 객체의 이벤트 발생 시 호출되는 메소드를 포함하고 있는 콜백 클래스이다.

3.2.3 IBMDSwitcherTransitionDipParameters 인터페이스
변환 설정 dip 파라미터 명세 조작에 사용됨

3.2.4 IBMDSwitcherTransitionDipParametersCallback 인터페이스
IBMDSwitcherTransitionDipParameters 객체의 이밴트 발생 시 호출되는 메소드를 포함하고 있는 콜백 클래스이다.

3.2.5 IBMDSwitcherTransitionWipeParametersCallback 인터페이스
IBMDSwitcherTransitionWipeParameters 객체의 이벤트 발생 시 호출되는 메소드를 포함하고 있는 콜백 클래스이다.

3.2.6 IBMDSwitcherTransitionWipeParameters 인터페이스
변환 설정 wipe 파라미터 명세 조작에 사용된다.
  • 관계된 인터페이스
    • IBMDSwitcherMixEffectBlock
      • 인터페이스ID
        • IID_IBMDSwitcherMixEffectBlock
      • IBMDSwitcherMixEffectBlock::QueryInterface로 포함되어질 수 있다.
  • 메소드
    • GetRate
    • SetRate
    • GetPattern
    • SetPattern
    • GetBorderSize
    • SetBorderSize
    • GetInputBorder
    • SetInputBorder
    • GetSymmetry
      • 현재 대칭을 가져옴
    • SetSymmetry
    • GetSoftness
    • SetSoftness
    • GetHorizontalOffset
    • SetHorizontalOffset
    • GetVerticalOffset
    • SetVerticalOffset
    • GetReverse
      • 반전 플래그 가져옴
    • SetReverse
    • GetFlipFlop
    • SetFlipFlop
    • AddCallback
    • RemoveCallback

3.2.7 IBMDSwitcherTransitionDVEParameters 인터페이스
변환 설정 DVE 파라미터 명세 조작에 사용됨
  • 관계된 이터페이스
    • IBMDSwitcherMixEffectBlock
      • 인터페이스ID
        • IID_IBMDSwitcherMixEffectBlock
      • IBMDSwitcherMixEffectBlock::QueryInterface로 포함되어질 수 있다.
  • 메소드
    • GetRate, SetRate
    • GetLogoRate, SetLogoRate
    • GetReverse, SetReverse
    • GetFlipFlop, SetFlipFlop
    • GetStyle, SetStyle
    • GetInputFill, SetInputFill
    • GetInputCut, SetInputCut
    • GetFillInputAvailabilityMask, SetFillInputAvailabilityMask
    • GetEnableKey, SetEnableKey
    • GetPreMultiplied, SetPreMultiplied
    • GetClip, SetClip
    • GetGain, SetGain
    • GetInverse, SetInverse
    • AddCallback, RemoveCallback

3.2.8 IBMDSwitcherTransitionDVEParametersCallback

3.2.9 IBMDSwitcherTransitionStingerParameters 인터페이스
변환설정 stinger(찌르기) 파라미터 명세 조작에 사용된다.
  • 관계된 인터페이스
    • IBMDSwitcherMixEffectBlock
      • 인터페이스ID
        • IID_IBMDSwitcherMixEffectBlock
      • IBMDSwitcherMixEffectBlock::QueryInterface로 포함되어질 수 있다.
  • 메소드
    • GetSource, SetSource
    • GetPreMultiplied, SetPreMultiplied
    • GetClip, SetClip
    • GetGain, SetGain
    • GetInverse, SetInverse
    • GetPreroll, SetPreroll
    • GetClipDuration, SetClipDuration
    • GetTriggerPoint, SetTriggerPoint
    • GetMixRate, SetMixRate
    • AddCallback, RemoveCallback
3.2.10 IBMDSwitcherTransitionStingerParametersCallback

3.2.11 IBMDSwitcherTransitionParameters 인터페이스
변환 설정 Stinger(찌르기) 명세 조작에 사용된다.
  • 관계된 인터페이스
    • IBMDSwitcherTransitionParameters
      • 인터페이스ID
        • IID_IBMDSwitcherTransitionParameters
      • IBMDSwitcherMixEffectBlock::QueryInterface로 포함되러질 수 있다.
  • 메소드
    • GetTransitionStyle
    • GetNextTransitionStyle, SetNextTransitionStyle
    • GetTransitionSelection
    • GetNextTransitionSelection, SetNextTransitionSelection
    • AddCallback, RemoveCallback

3.2.12 IBMDSwitcherTransitionParametersCallback 인터페이스

SDK - ATEM Switchers (2. 기초 스위처 제어)

2. 기초 스위처 제어
스위처 API는 ATEM 스위처 장비를 제어하기 위한 프레임워크를 제공한다. API는 스위처 입력 설정, 변화수행이나 컷 만들기같은 운용을 활성화한다.

2.1.1 스위처 설정과 변화
스위처 제어를 위한 응용프로그램은 다음의 단계를 수행할 것이다.

  • IBMDSwithcerDiscovery::ConnectTo 를 사용하여 스위처 장비에 연결하고 IBMDSwitcher 객체 인터페이스를 얻는다.
  • IBMDSwitcher::CreateIterator를 사용하여 IBMDSwitcherInputIterator 객체 인터페이스를 가져온다.
  • IBMDSwitcherInputIterator::Next에 의해 반환된 IBMDSwitcherInput은 IBMDSwitcherInput::GetInputId를 사용하여 입력의 유일한 ID를 끌어내고, IBMDSwitcherInput::GetString나 IBMDSwitcherInput::GetInt를 사용하여 입력의 이름과 같은 입력의 다른 속성들을 끌어낸다.
  • IBMDSwitcher::CreateIterator을 사용하여 IBMDSwitcherMixEffectBlockIterator 객체 인터페이스를 가져온다.
  • IBMDSwitcherMixEffectBlock 객체 인터페이스는 IBMDSwitcherMixEffectBlockIterator::Next를 사용하여 획득한다.
  • IBMDSwitcherMixEffectBlock::SetInt 사용하여 프로그램을 구성하고, 입력 할당에 의한 혼합 효과 블럭을 위한 미리보기 입력은  IBMDSwitcherInput::GetInputID에 의해 반환된다.
  • IBMDSwitcherMixEffectBlock::PerformTransition 호출에 의해 프로그램과 미리보기 입력 사이의 변환을 수행한다.
  • IBMDSwitcherMixEffectBlock::AddCallback을 사용하여 콜백을 설치하고 IBMDSwithcerMixEffectBlockCallback::PropertyChanged 콜백으로 변환을 통한 진행 결정과 변환 완료를 한 때를 받는다.

2.2 스위처 자료형
2.2.1 기초 스위처 자료형
  • BMDSwitcherInputId
    • BMDSwitcherInputId는 부호있는 64비트 정수형과 각 스위처 입력을 위한 유일한 ID가 사용된다.

2.2.2 스위처 이벤트형
BMDSwitcherEventType은 IBMDSwitcher를 위한 가능한 이벤트 형을 열거한다.
  • bmdSwitcherEventTypeVideoModeChanged
    • 비디오 표준 변경
  • bmdSwitcherEventTypeDownConverterModeChanged
    • 하향 변환 모드 변경
  • bmdSwitcherEventTypePowerStatusChanged
    • 전원 상태 변경
  • bmdSwitcherEventTypeDisconnected
    • 스위처 연결끊김

2.2.3 스위처 전원 상태
BMDSwitcherPowerStatus는 가능한 전원 상태 플래그를 열거한다. 형은 IBMDSwitcher 객체 인터페이스에 의해 사용된다.
  • bmdSwitcherPowerStatusSupply1
    • 공급 1 전원
  • bmdSwitcherPowerStatusSupply2
    • 공급 2 전원

2.2.4 스위처 비디오 모드
BMDSwitcherVideoMode는 스위처에 의해 사용되어지는 비디오 표준을 열거한다.
  • bmdSwitcherVideoMode525i5994NTSC
    • 세로 525픽셀, 인터레이스, 59.94Hz(NTSC)
  • bmdSwitcherVideoMode625i50AL
    • 세로 625픽셀, 인터레이스, 50Hz(PAL)
  • bmdSwitcherVideoMode525i5994Anamorphic
    • 세로 525픽셀, 인터레이스, 59.94Hz(anamorphic 16:9 widescreen)
  • bmdSwitcherVideoMode625i50Anamorphic
    • 세로 625픽셀, 인터레이스, 50Hz(anamorphic 16:9 widescreen)
  • bmdSwitcherVideoMode720p50
    • 세로 720픽셀, 프로그래시브, 50Hz
  • bmdSwitcherVideoMode720p5994
    • 세로 720픽셀, 프로그래시브, 59.94Hz
  • bmdSwitcherVideoMode1080i50
    • 세로 1080픽셀, 인터레이스, 50Hz
  • bmdSwitcherVideoMode1080i5994
    • 세로 1080픽셀, 인터레이스, 59.94Hz
  • bmdSwitcherVideoMode1080p2398
    • 세로 1080픽셀, 프로그래시브, 23.98Hz
  • bmdSwitcherVideoMode1080p24
    • 세로 1080픽셀, 프로그래시브, 24Hz
  • bmdSwitcherVideoMode1080p25
    • 세로 1080픽셀, 프로그래시브, 25Hz
  • bmdSwitcherVideoMode1080p2997
    • 세로 1080픽셀, 프로그래시브, 29.97Hz
  • bmdSwitcherVideoMode1080p50
    • 세로 1080픽셀, 프로그래시브, 50Hz
  • bmdSwitcherVideoMode1080p5994
    • 세로 1080픽셀, 프로그래시브, 59.94Hz
  • bmdSwitcherVideoMode4KHDp2398
    • 세로 2160픽셀, 가로 3840픽셀, 프로그래시브, 23.98Hz
  • bmdSwitcherVideoMode4KHDp24
    • 세로 2160픽셀, 가로 3840픽셀, 프로그래시브, 24Hz
  • bmdSwitcherVideoMode4KHDp25
    • 세로 2160픽셀, 가로 3840픽셀, 프로그래시브, 25Hz
  • bmdSwitcherVideoMode4KHDp2997
    • 세로 2160픽셀, 가로 3840픽셀, 프로그래시브, 29.97Hz

2.2.5 스위처 하향 변환 모드
BMDSwitcherDownConverterMode는 방송 표준 사이의 하향 변환을 위한 가능한 모드를 열거한다.
  • bmdSwitcherDownConverterModeCentreCut
    • 중심 자르기 변환
  • bmdSwitcherDownConverterModeLetterbox
    • 편지 상자 변환
  • bmdSwitcherDownConverterModeAnamorphic
    • 아나모픽 변환

2.2.6 스위처 입력 속성
BMDSwitcherInputPropertyId는 스위처 입력의 가능한 속성들을 열거한다.
  • bmdSwitcherInputPropertyIdPortType
    • 입력 포트형으로 BMDSwitcherPortType
  • bmdSwitcherInputPropertyIdInputAvailability
    • 입력 유효성으로 BMDSwitcherInputAvailability
  • bmdSwitcherInputPropertyIdShortName
    • 짧은 이름 설명 스위처 입력으로 4글자 제한 문자열
  • bmdSwitcherInputPropertyIdLongName
    • 긴 이름 설명 스위처 입력으로 20글자 제한 문자열
  • bmdSwitcherInputPropertyIdIsProgramTallied
    • 현재 프로그램에 부합되는 입력인지 아닌지를 표시하는 플래그
  • bmdSwitcherInputPropertyIdIsPreviewTallied
    • 현재 미리보그에 부합되는 입력인지 아닌지를 표시하는 플래그
  • bmdSwitcherInputPropertyIdAvailableExternalPortTypes
    • 유효한 외부 포트형으로 BMDSwitcherExternalPortType의 bit 마스크
  • bmdSwitcherInputPropertyIdCurrentExternalPortType
    • 선택된 외부 포트 형으로 BMDSwitcherExternalPortType

2.2.7 스위처 외부 포트형
BMDSwitcherExternalPortType은 입력을 위한 외부 포트 형의 다른 종류를 열거한다. 이 열거는 입력 포트가 하나 이상의 연결 형을 지원할 동안 bitset을 표현한다.
  • bmdSwitcherExternalPortTypeSDI
    • SDI 연결
  • bmdSwitcherExternalPortTypeHDMI
    • HDMI 연결
  • bmdSwitcherExternalPortTypeComponent
    • 콤포넌트 연결
  • bmdSwitcherExternalPortTypeComposite
    • 콤포지트 연결, 오직 SD 비디오 모드에서만 유효
  • bmdSwitcherExternalPortTypeSVideo
    • SVideo 연결, 오직 SD 비디오 모드에서만 유효
  • bmdSwitcherExternalPortTypeXLR
    • XLR 오디오 연결
  • bmdSwitcherExternalPortTypeAESEBU
    • AES EBU 오디오 연결
  • bmdSwitcherExternalPortTypeRCA
    • RCA 오디오 연결
  • bmdSwitcherExternalPortTypeInternal
    • 이것은 내부 입력 포트임

2.2.8 스위처 포트 타입
BMDSwitcherPortType은 스위치을 위해 유효한 가능한 스위처 입력 포트형을 열거한다.
  • bmdSwitcherPortTypeExternal
    • 포트는 물리적 연결자로 된 외부 포트이다.
  • bmdSwitcherPortTypeBlack
    • 포트는 검정 비디오 생성 포트이다.
  • bmdSwitcherPortTypeColorBars
    • 포트는 컬러바 생성 포트이다.
  • bmdSwitcherPortTypeColorGenerator
    • 포트는 색깔 생성 포트이다.
  • bmdSwitcherPortTypeMediaPlayerFill
    • 포트는 미디어 재생 채움 포트이다.
  • bmdSwitcherPortTypeMediaPlayerCut
    • 포트는 미디어 컷 포트이다.
  • bmdSwitcherPortTypeSuperSource
    • 포트는 슈퍼 소스 포트이다.
  • bmdSwitcherPortTypeMixEffectBlockOutput
    • 포트는 혼합 효과 블럭 출력 포트이다.
  • bmdSwitcherPortTypeAuxOutput
    • 포트는 보조 출력 포트이다.

2.2.9 스위처 입력 가능한 것
BMDSwitcherInputAvailability는 포트에 입력 가능한 것의 다른 종류를 열거한다. 이 열거는 입력이 다중으로 이용가능한 것을 가질수 있는동안 bitset을 표현한다.
  • bmdSwitcherInputAvailabilityMixEffectBlock0
    • 입력은 혼합 효과 블럭 0에 의해 사용되어지는 것이 유효하다.
  • bmdSwitcherInputAvailabilityMixEffectBlock1
    • 입력은 혼합 효과 블럭 1에 의해 사용되어지는 것이 유효하다.
  • bmdSwitcherInputAvailabilityAuxOutputs
    • 입력은 보조 출력에 의해 사용되어지는 것이 유효하다.
  • bmdSwitcherInputAvailabilityMultiView
    • 입력은 다중보기창으로 경로설정되어질 수 있다.
  • bmdSwitcherInputAvailabilitySuperSourceArt
    • 입력은 수퍼 소스 아트를 위해 사용되어지는 것이 유효하다.
  • bmdSwitcherInputAvailabilitySuperSourceBox
    • 입력은 수퍼 소스 박스를 위해 사용되어지는 것이 유효하다.
  • bmdSwitcherInputAvailabilityInputCut
    • 입력은 컷으로 사용되어지는 것이 유효하다.

2.2.10 스위처 혼합 효과 블럭 속성
BMDSwitcherMixEffectBlockPropertyId는 혼합 효과 블럭의 가능한 속성을 열거한다.

  • bmdSwitcherMixEffectBlockPropertyIdProgramInput
    • BMDSwitcherInputId 으로 프로그램 입력
  • bmdSwitcherMixEffectBlockPropertyIdPreviewInput
    • BMDSwitcherInputId 으로 프리뷰 입력
  • bmdSwitcherMixEffectBlockPropertyIdTransitionPosition
    • 시작 0에서 끝 1의 변화를 통한 진행을 0과 1 사이의 실수값 표현
  • bmdSwitcherMixEffectBlockPropertyIdTransitionFramesRemaining
    • 변화에서 남은 프레임의 정수 숫자
  • bmdSwitcherMixEffectBlockPropertyIdInTransition
    • 변화에서 혼합 효과 블럭 중인 상태의 논리값
  • bmdSwitcherMixEffectBlockPropertyIdFadeToBlackFramesRemaining
    • 검정으로 사라짐에서 남은 프레임의 정수 숫자
  • bmdSwitcherMixEffectBlockPropertyIdFadeToBlack
    • 검정으로 사라짐에서 혼합 효과 블럭 중인 상태의 논리값
  • bmdSwitcherMixEffectBlockPropertyIdPreviewLive
    • 프리뷰가 실시간일때 논리값 true
  • bmdSwitcherMixEffectBlockPropertyIdPreviewTransition
    • 프리뷰 변화가 활성일 때 논리값 true
  • bmdSwitcherMixEffectBlockPropertyIdInputAvailabilityMask
    • 이 혼합 효과 블럭에 상응하는 BMDSwitcherInputAvailability 비트 값
  • bmdSwitcherMixEffectBlockPropertyIdFadeToBlackRate
    • 프레임에서 검정으로 사라짐 비율
  • bmdSwitcherMixEffectBlockPropertyIdFadeToBlackFullyBlack
    • 검정으로 사라짐이 완전 검정일 때 논리값은 true
  • bmdSwitcherMixEffectBlockPropertyIdFadeToBlackInTransition
    • 검정으로 사람짐이 변화중일 때 논리값은 true

2.2.11 스위처 연결 오류
BMDSwitcherConnectToFailure는 스위처에 연결 시 발생할 수 있는 가능한 오류를 열거한다.



2.2.12 스위처 다중보기 레이아웃
BMDSwitcherMultiViewLayout은 다중보기에서 가능한 레이아웃 포멧을 열거한다.


2.2.13 스위처 색 이벤트
BMDSwitcherInputColorEventType은 IBMDSwitcherInputColorCallback를 위한 가능한 이벤트 형식을 열거한다.


2.2.14 스위처 보조(Aux) 이벤트
BMDSwitcherInputAuxEventType은 IBMDSwitcherInputAuxCallback를 위한 가능한 이벤트 형식을 열거한다.


2.2.15 스위처 다중보기 이벤트
BMDSwitcherMultiViewEventType은 IBMDSwitcherMultiViewCallback를 위한 가능한 이벤트 형식을 열거한다.


2.3 인터페이스 참조 (IBMDSwitcherDiscovery 인터페이스)
IBMDSwitcherDiscovery 객체 인터페이스는 물리적 스위처 장치로의 연결에 사용된다.

IBMDSwitcherDiscovery 객체 인터페이스에 참조는 native COM을 지원하는 플랫폼의 CoCreateInstance나, 다른 플랫폼의 CreateBMDSwitcherDiscoveryInstance로부터 얻을 수 있다.

  • 메소드
    • ConnectTo
  • 설명
    • 스위처에 연결


2.3.1.1 IBMDSwitcherDiscovery::ConnectTo 메소드
ConnectTo 메소드는 설정된 스위처에 연결하고, 스위처의 IBMDSwitcher 객체 인터페이스를 반환한다.
Note: ConnectTo는 동기 네트워크 연결로 동작한다. 이것은 호스트이름 크기와 네트워크 응답시간에 따라 몇초가 걸릴 것이다.

  • 문법
    • HRESULT connectTo(string deviceAddress, IBMDSwitcher** switcherDevice, BMDSwitcherConnectToFailure* failReason);
  • 파라미터
    • deviceAddress
      • in
      • 연결할려는 네트워크 호스트이름 또는 스위처의 IP 주소
    • switcherDevice
      • out
      • 연결된 스위처의 IBMDSwitcher 객체 인터페이스
    • failReason
      • out
      • BMDSwitcherConnectToFailure 값인 연결 실패의 이유
  • 반환값
    • E_FAIL
      • 실패
    • S_OK
      • 성공
    • E_POINTER
      • 스위처장치 또는 실패이유 파라미터가 잘못됨.

2.3.2 IBMDSwitcher 인터페이스
IBMDSwitcher 객체 인터페이스는 물리적 스위처 장치를 표현한다.
  • 관계된 인터페이스
    • IBMDSwitcherDiscovery
      • 인터페이스ID
        • IID_IBMDSwitcherDiscovery
      • IBMDSwitcher IBMDSwitcherDiscovery::ConnectTo 메소드 호출 성공 후에 객체는 반환될 것이다.
  • 메소드
    • GetProductName
      • 스위처의 제품 이름을 가져옴
    • GetVideoMode
      • 스위처에 적용된 비디오 표준을 가져옴
    • SetVideoMode
      • 스위처에 적용된 비디오 표준을 설정
    • GetDownConverterMode
      • 방송 표준들 사이로 하향 변화될 때 적용된 변환 모드를 가져옴
    • SetDownConverterMode
      • 방송 표준들 사이로 하향 변화될 때 적용된 변환 모드를 설정
    • GetPowerStatus
      • 스위처의 전원 상태를 가져옴
    • DoesSupportVideoMode
      • 비디오 표준이 스위처에의해 지원되는지 아닌지를 결정
    • CreateIterator
      • 반복자 생성
    • AddCallback
      • 스위처 이벤트를 받을 콜백 추가
    • RemoveCallback
      • 콜백 제거


2.3.3 IBMDSwitcherCallback 인터페이스
IBMDSwitcherCallback 객체 인터페이스는 IBMDSwitcher 객체에서 이벤트 발생 때 호출되는 메소드를 포함하고 있는 콜백 클래스이다. 모든 콜백 메소드처럼, 이 콜백 메소드는 다른 스레드로부터 호출될 것이다.

  • 관계된 인터페이스
    • IBMDSwitcher
      • 인터페이스ID
        • IID_IBMDSwitcher
      • IBMDSwitcherCallback 객체 인터페이스는 IBMDSwitcher::AddCallback로 설정되고 IBMDSwitcher::RemoveCallback로 제거된다.
  • 메소드
    • Notify
      • 인벤트 발생시 호출된다.

2.3.4 IBMDSwitcherInputIterator 인터페이스
IBMDSwitcherInputIterator 객체 인터페이스는 사용가능한 스위처 입력의 열거에 사용된다.
  • 관계된 인터페이스
    • IBMDSwitcher
      • 인터페이스ID
        • IID_IBMDSwitcher
      • IBMDSwitcher::CreateIterator는 IID_IBMDSwitcherInputIterator IDD가 설정될 때 IBMDSwitcherInputIterator 객체 인터페이스를 반환한다.
  • 메소드
    • Next
      • 다음 사용가능한 스위처 입력 반환
    • GetById
      • 입력 ID로 스위처 입력 반환

2.3.5 IBMDSwitcherInput 인터페이스
IBMDSwitcherInput 객체 인터페이스는 물리적 스위처 장치를 표시한다.
  • 관계된 인터페이스
    • IBMDSwitcherInputDiscovery
      • 인터페이스ID
        • IID_IBMDSwitcherInputDiscovery
      • IBMDSwitcherInput 객체는 IBMDSwitcherInputDiscovery::ConnectTo 메소드 호출 성공 후에 반환될 것이다.
  • 메소드
    • AddCallback
      • 수신 입력 속성 변경에 콜백 추가
    • RemoveCallback
      • 콜백 제거
    • GetInputId
      • 이 입력의 유일한 ID 가져옴
    • GetFlag
      • 논리 인코딩 모드 설정의 현재 값 가져옴
    • GetInt
      • int64_t 인코딩 모드 설정의 현재 값 가져옴
    • GetFloat
      • double 인코딩 모드 설정의 현재 값 가져옴
    • GetString
      • 문자열 인코딩 모드 설정의 현재 값 가져옴
    • SetFlag
      • 논리 인코딩 모드 설정의 값 설정
    • SetInt
      • int64_t  인코딩 모드 설정의 값 설정
    • SetFloat
      • double 인코딩 모드 설정의 값 설정
    • SetString
      • 문자열 인코딩 모드 설정의 값 설정

2.3.6 IBMDSwitcherInputCallback 인터페이스
IBMDSwitcherInputCallback 객체 인터페이스는 스위처 입력 속성 변경 시 호출되는 콜백 클래스이다.
  • 관계된 인터페이스
    • IBMDSwitcherInput
      • 인터페이스ID
        • IID_IBMDSwitcherInput
      • IBMDSwitcherInputCallback 객체 인터페이스는 IBMDSwitcherInput::AddCallback로 설정될 것이다.
  • 메소드
    • PropertyChanged
      • 스위처 입력 속성 변경됨

2.3.7 IBMDSwitcherMixEffectBlockIterator 인터페이스
IBMDSwitcherMixEffectBlockIterator 객체 인터페이스는 사용가능한 혼합 효과 블럭 열거에 사용된다.
  • 관계된 인터페이스
    • IBMDSwitcher
      • 인터페이스ID
        • IID_IBMDSwitcher
      • IBMDSwitcher::CreateIterator는 IID_IBMDSwitcherMixEffectBlockIterator IID가 설정될 때 IBMDSwitcherMixEffectBlockIterator 객체 인터페이스를 반환한다.
  • 메소드
    • Next
      • 다음 사용가능한 스위처 혼합 효과 블럭 반환

2.3.8 IBMDSwitcherMixEffectBlock 인터페이스
IBMDSwitcherMixEffectBlock 객체 인터페이스는 스위처 장치의 혼합 효과 블럭을 표시한다.
  • 관계된 인터페이스
    • IBMDSwitcherMixEffectBlockIterator
      • 인터페이스 ID
        • IID_IBMDSwitcherMixEffectBlockIterator
      • IBMDSwitcherMixEffectBlockIterator::Next는 스위처 장치의 각각의 사용가능한 혼합 효과 블럭을 위한 IBMDSwitcherMixEffectBlock 객체 인터페이스를 반환한다.
  • 메소드
    • CreateIterator
      • 반복자 생성
    • AddCallback
      • 수신 혼합 효과 블럭 속성 변경에 콜백 추가
    • RemoveCallback
      • 콜백 제거
    • GetFlag
      • 논리 인코딩 모드 설정의 현재 값 가져옴
    • GetInt
      • int64_t 인코딩 모드 설정의 현재 값 가져옴
    • GetFloat
      • double 인코딩 모드 설정의 현재 값 가져옴
    • GetString
      • 문자열 인코딩 모드 설정의 현재 값 가져옴
    • SetFlag
      • 논리 인코딩 모드 설정의 값 설정
    • SetInt
      • int64_t  인코딩 모드 설정의 값 설정
    • SetFloat
      • double 인코딩 모드 설정의 값 설정
    • SetString
      • 문자열 인코딩 모드 설정의 값 설정

2.3.9 IBMDSwitcherMixEffectBlockCallback Interface
IBMDSwitcherMixEffectBlockCallback 객체 인터페이스는 혼합 효과 블럭 속성 변경 시 호출되는 콜백 클래스이다.
  • 관계된 클래스
    • IBMDSwitcherMixEffectBlock
      • 인터페이스ID
        • IID_IBMDSwitcherMixEffectBlock
      • IBMDSwitcherMixEffectBlockCallback 객체 인터페이스는 IBMDSwitcherMixEffectBlock::AddCallback로 설정될 것이다.
  • 메소드
    • PropertyChanged
      • 혼합 효과 블럭 속성 변경

2.3.10 IBMDSwitcherInputColor 인터페이스
IBDSwitcherInputColor 객체 인터페이스는 색 생성 입력 포트 관리에 사용된다.
  • 관계된 인터페이스
    • IBMDSwitcherInput
      • 인터페이스ID
        • IID_IBMDSwitcherInput
      • IBMDSwitcherInputColor 객체 인터페이스는 IBMDSwitcherInput::QueryInterface로 포함될 수 있다.
  • 메소드
    • GetHue
      • 현재 색조값 가져옴
    • SetHue
      • 색조값 설정
    • GetSaturation
      • 현재 채도값 가져옴
    • SetSaturation
      • 채도값 설정
    • GetLuma
      • 현재 밝기값 가져옴
    • SetLuma
      • 밝기값 설정
    • AddCallback
      • 색 입력 콜백 추가
    • RemoveCallback
      • 색입력 콜백 제거


2.3.11 IBMDSwitcherInputColorCallback 인터페이스
IBMDSwitcherInputColorCallback 객체 인터페이스는 IBMDSwitcherInputColor 객체의 이벤트 발생 시 호출되는 메소드를 포함하고 있는 콜백 클래스이다. 모든 콜백 메소드처럼, 이 콜백 메소다는 다른 스레드로부터 호출될 것이다.
  • 관계된 인터페이스
    • IBMDSwitcherInputColor
      • 인터페이스ID
        • IID_IBMDSwitcherInputColor
      • IBMDSwitcherInputColorCallback 객체 인터페이스는 IBMDSwitcherInputColor::AddCallback로 설정되고 IBMDSwitcherInputColor::RemoveCallback로 제거된다.
  • 메소드
    • Notify
      • 이벤트 발생 시 호출됨

2.3.12 IBMDSwitcherInputAux 인터페이스
IBMDSwitcherInputAux 객체 인터페이스는 보조 출력 포트 관리에 사용된다.
  • 관계된 인터페이스
    • IBMDSwitcherInput
      • 인터페이스ID
        • IID_IBMDSwitcherInput
      • IBMDSwitcherInputAux 객체 인터페이스는 IBMDSwitcherInput::QueryInterface로 포함될 수 있다.
  • 메소드
    • GetInputSource
      • 선택된 입력 소드 가져옴
    • SetInputSource
      • 입력 소스 선택
    • GetInputAvailabilityMask
      • 보조 포트에 상응하는 BMDSwitcherInputAvailability 비트 값 가져옴
    • AddCallback
      • 보조 콜백 추가
    • RemoveCallback
      • 보조 콜백 제거

2.3.13 IBMDSwitcherInputAuxCallback 인터페이스
IBMDSwitcherInputAuxCallback 객체 인터페이스는 IBMDSwitcherInputAux 객체의 이벤트 발생 시 호출되는 메소드를 포함하고 있는 콜백 클래스이다. 모든 콜백 메소드처럼, 이 콜백 메소드는 다른 스레드로부터 호출될 것이다.
  • 관계된 인터페이스
    • IBMDSwitcherInputAux
      • 인터페이스ID
        • IID_IBMDSwitcherInputAux
      • IBMDSwitcherInputAuxCallback 객체 인터페이스는 IBMDSwitcherInputAux::AddCallback로 설정되고 IBMDSwitcherInputAux::RemoveCallback로 제거된다.
  • 메소드
    • Notify
      • 이벤트 발생시 호출됨

2.3.14 IBMDSwitcherMultiViewIterator 인터페이스
IBMDSwitcherMultiViewIterator는 사용가능한 다중보기 열거에 사용된다.

2.3.15 IBMDSwitcherMultiView 인터페이스
IBMDSwitcherMultiView 객체 인터페이스는 레이아웃 포맷 설정같은 다중보기 출력의 제어 함수 접근이나 다른 입력을 창으로 경로설정에 사용된다.
  • 관계된 인터페이스
    • IBMDSwitcherMultiViewIterator
      • 인터페이스ID
        • IID_IBMDSwitcherMultiViewIterator
      • IBMDSwitcherMultiView 객체는 IBMDSwitcherMultiViewIterator::Next 메소드 호출 성공 후에 반환될 것이다.
  • 메소드
    • GetLayout
      • 현제 레이아웃 포맷 가져옴
    • SetLayout
      • 레이아웃 포맷 설정
    • GetWindowInput
      • 창의 현재 입력 경로설정 가져옴
    • SetWindowInput
      • 창의 입력 경로설정 설정
    • GetWiondowCount
      • 사용가능한 창의 개수 가져옴
    • GetInputAvailabilityMask
      • 다중보기를 위한 상응하는 BMDSwitcherInputAvailability 비트 값 가져옴
    • CanRouteInputs
      • 다중보기가 고객 창에-입력 경로설정인지 아닌지 결정
    • AddCallback
      • 다중보기 콜백 추가
    • RemoveCallback
      • 다중보기 콜백 제거

2.3.16 IBMDSwitcherMultiViewCallback 인터페이스
IBMDSwitcherMultiViewCallback 객체 인터페이스는 IBMDSwitcherMultiView 객체의 이벤트 발생 시 호출되는 메소드를 포함한 콜백 클래스이다.

2013년 12월 2일 월요일

SDK - ATEM Switchers (1.개요)

1.4 인터페이스 참조
모든 객체 인터페이스는 IUnknown 인터페이스의 부클래스이다.

1.4.1 IUnknown 인터페이스
각각의 API 인터페이스는 표준 COM 기본 클래스인 IUnknown의 부클래스이다. IUnknown 객체 인터페이스는 참조 횟수와 인터페이스 ID로 관계된 인터페이스를 찾는 능력을 제공한다. 인터페이스 ID 메커니즘은 현재의 응용프로그램에 영향을 끼치지 않고 API에 인터페이스가 추가되는 것을 허용한다.

메소드 설명
QueryInterface 객체의 자식 인터페이스 지원에 접근을 제공
AddRef 객체의 참조 회수 증가
Release 객체의 참조 회수 감소. 마지막 참조가 제거될 때, 객체는 해제.

1.4.1.1 IUnknown::QueryInterface 메소드
QueryInterface 메소드는 객체 인터페이스의 관계된 인터페이스를 찾는다.

  • 문법
    • HRESULT  QueryInterface(REFIID id, void **outputInterface);
  • 파라메타
    • id
      • in
      • 찾는 인터페이스의 인터페이스 ID
    • outputInterface
      • out
      • 새로운 객체 인터페이스 또는 실패시 NULL

  • 반환값
    • E_NOINTERFACE
      • 인터페이스를 못 찾음
    • S_OK
      • 성공

1.4.1.2 IUnknown::AddRef 메소드
AddRef 메소드는 객체 인터페이스의 참조 회수를 상승한다.
  • 문법
    • ULONG  AddRef();
  • 반환값
    • Count
      • 새로운 참조 횟수 - 오직 디버그 목적을 위함

1.4.1.3 IUnknown::Release 메소드
Release 메소드는 객체 인터페이스의 참조 횟수를 감소한다. 객체로부터 마지막 참조가 제거될 때, 객체는 해제될 것이다.
  • 문법
    • ULONG Release();
  • 반환값
    • Count
      • 새로운 참조 횟수 - 오직 디버그 목적을 위함

1.5 프로젝트에서 스위처 API 사용
지원되는 샘플 응용프로그램은 각 지원되는 플랫폼의 프로젝트에 스위처 API를 포함하는 방법의 예제를 제공한다
당신의 프로젝트에 스위처 API를 사용하는 것은 하나 또는 그 이상의 파일이 포함되는 것을 요구한다.
윈도우즈 : BMDSwitcherAPI.idl
맥OS X : BMDSwitcherAPI.h, BMDSwitcherAPIDispatch.cpp

1.5.2 스위처 장비에 접근하기
스위처 장비는 IBMDSwitcherDiscovery 인터페이스를 통해 접근된다.

1.5.2.1 윈도우즈
스위처 API의 주 진입점은 CBMDSwitcherDiscovery 클래스이다. 이 클래스는 COM 사용 CoCreateInstance에서 포함되어져야 한다.

BMDSwitcherDiscovery* switcherDiscovery = NULL;
CoCreateInstance(CLSID_CBMDSwitcherDiscovery, NULL, CLSCTX_ALL,
                               IID_IBMDSwitcherDiscovery, (void**)&switcherDiscovery));

성공시, CoCreateInstance는 S_OK의 HRESULT를 반환하고 switcherDiscovery는 새로운 IBMDSwitcherDiscovery 객체 인터페이스를 가리킨다.

2013년 11월 13일 수요일

EFM32GG990 DATASHEET (1,2)

1. 주문 정보
다음 표는 사용가능한 EFM32GG990 장치를 보인다.
주문코드 플래시(kB) 램(kB) 최고속도(MHz) 공급전원(V) 온도(섭씨) 패키지
EFM32GG990F512-BGA112 512 128 48 1.85 - 3.8 -40 - 85 BGA112
EFM32GG990F1204-BGA112 1024 128 48 1.85 - 3.8 -40 - 85 BGA112
세계 유통과 대리점의 정보는 www.silabs.com을 방문하시오.

2. 시스템 개요
2.1 시스템 소개
EFM32 MCU들은 세계의 최고 에너지 친화적 마이크로컨트롤러이다. 강력한 32비트 ARM 코어텍스-M3, 혁신적인 낮은 에너지 기술, 에너지 saving 모드로부터의 짧은 wake-up 시간, 주변장치의 폭 넓은 선택이 유일하게 결합된 EFM32GG 마이크로컨트롤러는 낮은 에너지 소비와 고 성능 요구의 시스템뿐만 아닌 모든 배터리 구동 응용프로그램에 아주 적합하다. 이 섹션은 일반적인 용어에 각각의 모듈의 짧은 소개를 하고 EFM32GG990 장치를 위한 구성의 개요를 보인다. 완벽한 특징 세트나 모듈의 자세한 정보를 위해서는 EFM32GG Reference Manual을 참조한다.

다음은 EFM32GG990의 블럭 다이어그램을 보여준다.

2.1.1 ARM Cortex-M3 코어
ARM Cortex-M3는 1.25 드라이스톤(Dhrystone) MIPS/MHz만큼 달성할 수 있는 32비트 리스크(RISC) 프로세서를 포함한다. CPU가 잠들어있는 동안에 트리거되는 인터럽트를 핸들링하는 Wake-up 인터럽트 컨트롤러 뿐만아니라, 8 메모리 세그먼트 이상을 지원하는 메모리 보호 유닛이 포함되어 있다. Cortex-M3의 EFM32 수행은 EFM32 Cortex-M3 참조 매뉴얼에서 자세하게 설명된다.

2.1.2 디버그 인터페이스 (DBG)








EFM32GG990 DATASHEET (Preview)

F1024 / F512


  • ARM 코어텍스-M3 CPU 플랫폼
    • 고성능 32비트 프로세서 (48MHz 이상에서)
    • 메모리 보호 유닛
  • 유연한 에너지 관리 시스템
    • 20 nA @ 3 V 차단 모드
    • 0.4 uA @ 3 V RTC로 차단 모드
    • 0.9 uA @ 3 V 정지 모드, Power-on 리셋 ,Brown-out 감지, 램과 CPU 유지 기능 포함
    • 1.1 uA @ 3 V 깊은 슬립 모드, 32.768kHz 진동자의 RTC, Power-on 리셋, Brown-out 감지, 랩과 CPU 유지 기능 포함
    • 50 uA/MHz @ 3 V 슬립 모드
    • 200 uA/MHz @ 3 V 실행 모드, 플래시에서 코드 실행 채로.
  • 1024 / 512 KB 플래시
    • 쓰는동안 읽기 지원
  • 128 KB 램
  • 86 일반 목적 입/출력 핀 (GPIO)
    • push-pull, open-drain, pull-up/down, 입력 필터, 힘 조절 구성가능
    • 주변장치 입/출력 위치 구성가능
    • 출력 상태 유지나 차단 모드에서 깸
  • 12 채널 DMA 제어기
  • 자발적인 내부 주변장치 신호를 위한 12 채널 주변장치 리플렉스 시스템 (PRS)
  • 54/75 사이클에서 128/256비트 키를 가진 하드웨어 AES
  • 타이머/카운터
    • 4x 16비트 타이머/카운터
      • 4x3 비교/캡쳐/PWM 채널
      • TIMER0에서 Dead-Time Insertion
    • 16비트 낮은 에너지 타이머
    • 1x 24비트 실시간 카운터와 1x 32비트 실시간 카운터
    • 3x 16비트/8비트 비동기 운용 펄스 카운터
    • Watchdog 타이머 50 nA RC 진동자로 동작되는
  • 8x34 세크먼트 이상의 통합 LCD 제어기
    • 전압 부스트, 밝기 조절 가능하고 자동으로 움직임
  • 백업 전원 도메인
    • 모든 에너지 모드에서 사용 가능한 RTC와 분리 전원 도메인의 유지 레지스터
    • 주 전원이 꺼졌을 때 백업 배터리로부터 운용
  • 외부 메모리 매핑 공간의 4x256MB 이상을 위한 외부 버스 인터페이스
    • 직접 운영하는 TFT 제어기
  • 통신 인터페이스
    • 3x Universal Synchronous/Asynchronous Receiver/Transmitter (USART)
      • USART/SPI/SmartCard(ISO 7816)/IrDA/I2S
    • 2x Universal Asynchronous Receiver/Transmitter (UART)
    • 2x 낮은 전원 UART
      • Deep Sleep 모드에서 DMA로 자발 운영
    • 2x SMBus 지원하는 I2C 인터페이스
      • 정지모드에서 주소 인식
    • Host와 OTG 지원하는 Universal Serial Bus (USB)
      • 전체 USB 2.0 준수
      • 온칩 PHY 와 임베디드 5V 에서 3.3V 레귤레이터
  • 초 저 전원 정확 아날로그 주변장치
    • 12비트 1메가샘플/초 아날로그에서 디지털 변환기
      • 8 단순 ended 채널/4 다른 채널
      • 온칩 온도 센서
    • 12비트 500킬로샘플/초 디지털에서 아날로그 변환기
    • 2x 아날로그 비교기
      • 16 입력 이상의 용량 감지
    • 3x 운영 앰프
      • 6.1 MHz GBW, Rail-to-rail, 프로그램 가능한 Gain
    • 전원공급장치 전원 비교기
  • 낮은 에너지 감지 인터페이스 (LESENSE)
    • Deep Sleep 모드에서 자발적인 센서 모니터링
    • 센서의 넓은 범위 지원,LC 센서와 용량 버튼 포함
  • 초 능률적인 Power-on 리셋 과 Brown-Out 감지기
  • 디버그 인터페이스
    • 2핀 직렬 연결 디버그 인터페이스
      • 1핀 직렬 연결 뷰어
    • 임베디드 자취 모듈 v3.5 (ETM)
  • 미리 프로그램 된 USB/UART 부트로더
  • 온도 범위 -40 에서 85도 (섭씨)
  • 단순 전원 공급기 1.85V 에서 3.8V
  • BGA112 패키지

2013년 10월 27일 일요일

EFM32GG-STK3700 User Manual

EFM32 거대 도마뱀 시작 키트는 ARM Cortex-M4 CPU core를 사용하는 EFM32 Giant Gecko MCU family를 위한 평가, 프로토 타입, 응용프로그램 개발을 위한 기능이 풍부한 플랫폼이다.

주요 특징 :

  • 고급 에너지 모니터링은 응용프로그램이나 프로토타입 디자인의 에너지 소비에 대한 실시간 정보를 제공한다.
  • 외부 타겟을 디버깅하는 것을 가능하게 하는 온보드 디버거.
  • 몇몇의 센서, 160 세그먼트 LCD Display, 백업 도메인 커패시터, 온보드 낸드 플래시.


1. 소개
1.1 설명
EFM32GG-STK3700은 EFM32 Giant Gecko 마이크로 컨트롤러 제품군을 익히기에 우수한 시작점이다. 그 킷은 센서와 MCU의 많은 기능의 일부 주변 시연을 포함한다. 그 킷은 응용프로그램 개발을 위한 시작점 역할도 할 수 있다.

1.2 특징
  • 1MB Flash와 128KB RAM의 EFM32GG990F1024 MCU
  • 정확한 전류 추적을 위한 고급 에너지 모니터링 시스템
  • 디버그 출력 기능을 가진 통합된 Segger J-Link USB 디버거/에뮬레이터
  • 160 세그먼트 에너지 마이크로 LCD
  • 20 핀 확장 헤더
  • I/O 핀에 쉬운 접근을 위한 Breakout 패드.
  • USB와 CR2032 배터리를 포함하는 파워 소스
  • 2개의 사용자 버튼, 2개의 사용자 LED와 터치 슬라이더
  • 주변 광 센서와 유도-용량 금속 센서.
  • EFM32 OPAMP 발작국
  • 32MB NAND Flash
  • USB 마이크로-AB (OTG) 연결자
  • 백업 주요 도메인을 위한 0.03패럿 수퍼 커패시터
  • LFXO와 HFXO를 위한 크리스탈 : 32.768kHz 와 48.000MHz

1.3 시작하기
당신의 새로운 EFM32GG-STK3700으로 시작하는 것의 첫번째 단계는 [http://www.energymicro.com/simplicity] 에 가는 것이다.

Simplicity Studio 소프트웨어 패키지는 EFM32 거대 도마뱀 시작 킷을 사용하는 것에 필요한 툴, 드라이버, 소프트웨어 예제와 문서 모두를 포함한다. EFM32GG-STK3700을 사용하기 위한 몇몇 중요한 툴은 다음이다.

  • energyAware Commander
  • energyAware Profiler

energyAware Commander는 킷의 펌웨어 업데이트, MCU 프로그래밍, 데모 실행을 위한 툴이다.
energyAware Profiler는 PC와 고급 에너지 모니터와의 인터페이스이다. 그것은 응용프로그램 코드의 프로파일링과 에너지-디버깅을 하는 것의 가능성을 제공한다.

2. 킷 블록 다이어그램

3. 킷 하드웨어 레이아웃

4. 파워 공급과 리셋
4.1 MCU 파워 선택
EFM32GG-STK3700위의 EFM32 거대 도마뱀 MCU는 세가지 다른 소스에 의해 전원이 되도록 디자인되었다.

  • 온보드 디버거를 통한
  • EFM32의 자체 USB 레귤레이터를 통한
  • 3볼트 배터리에 의한
전원 소스 선택은 보드의 왼쪽 아래의 슬라이드 스위치로 결정 된다. 다음 그림은 슬라이드 스위치로 어떻게 각각의 다른 전원 소스를 선택할 수 있는지를 보여준다.
DBG 위치의 스위치에서, 3.3볼트의 고정된 출력 전압의 온보드 낮은 잡음 LDO는 MCU 전원으로 사용된다. 이 LDO는 "J-Link" USB 케이블로부터 다시 전원공급된다. 고급 에너지 모니터는 정확한 고속 전류 측정과 에너지 디버깅/프로파일링을 허용하며 이때 직렬로 연결된다.

USB 위치의 스위치에서, EFM32 거대 도마뱀 MCU에 있는 통합된 선형 레귤레이터는 USB PHY뿐만 아니라 칩의 나머지 전원공급으로 사용된다. 이것은 버스 전원공급 장치로 MCU의 역할로 USB 장치 응용프로그램을 허용한다.

마지막으로, BAT 위치의 스위치에서, CR2032 소켓의 20mm 코인 셀 배터리는 전원 장치로 사용될 수 있다.

Note: 고급 에너지 모니터는 전원 선택 스위치가 DGB 위치일 때만 EFM32의 소비 전류를 측정할 수 있다.

4.2 보드 제어기 전원
보드 제어기는 디버거나 고급 에너지 모니터 같은 중요한 특징에 대해 응답가능하고, 보드의 상단 좌측의 USB 포트를 통하여 독점적으로 전원공급된다. 킷의 이 부분은 별도의 전원 도메인 위에 상주하고, 다른 전원 소스 또한 디버깅 기능을 유지하는 동안의 MCU를 위해 선택될 수 있다. 이 전원 도메인은 보드 제어기에서 전원이 제거되었을 때 MCU 전원 도메인으로부터 전류 누설 방지가 분리되어 있다.

4.3 백업 전원 도메인
킷은 EFM32 거대 도마뱀의 백업 전원 도메인과 함께 사용될 수 있는 백업 커패시터를 포함한다. 이 경우 모든 다른 전원 소스는 킷에서 제거되고, 오직 EFM32의 작은 부분만이 커패시터를 실행한다. 그것은 또한 보드 제어기가 소켓에 배터리 없거나 커넥터에 USB 케이블이 없이 BAT나 USB로 선택되어 전원공급되는 동안 백업 모드로 들어가는 것이 가능하다.

4.4 MCU 리셋
EFM32 MCU는 몇몇의 다른 소스에 의해 리셋 될 수 있다.

  • RESET 버튼
  • 온보드 디버거
  • #RST 핀 low pulling에 의한 외부 디버거


4.5 보드 제어기 리셋
보드 제어기는 J-Link USB 케이블의 제거나 재삽입에 의해 리셋될 수 있다. 보드 제어기 USB 케이블 제거는 EFM32를 리셋하지 않을 것이다. 그러나 언제든지 보드 제어기는 다시 전원이 켜진다. 그것은 온보드 디버거를 통한 EFM32의 RESET 이슈일 것이다.


5. 주변장치
시작 킷은 EFM32 거대 도마뱀 마이크로컨트롤러의 특징의 일부 맛보기 주변장치 세트를 가지고있다.
알다시피 주변장치에 연결된 대부분의 EFM32 I/O는 브레이크아웃 패드에도 연결되어 있다. 이것은 당신의 응용프로그램을 위해 브레이크아웃 패드를 사용할 때 고려해야 한다.

5.1 누름 버튼과 LED들
킷은 PB0과 PB1이라 마크된 두개의 사용자 누름 버튼을 가지고 있다. 그것들은 EFM32와 연결되어 있고 1ms의 상수시간으로 RC 필터에 의해 디바운스된다. 버튼은 핀 PB9와 PB10에 연결되어 있다.

추가적으로, 킷은 LED0와 LED1이라 마크된 두개의 노란 LED가 EFM32의 GPIO 핀에 의해 제어된다. 그 LED들은 액티브 High 설정으로 핀 PE2와 PE3에 연결되어 있다.

5.2 LCD
28핀 에너지 마이크로 LCD 디스플레이는 EFM32에 연결되어있다. LCD는 8-plexed 모드에서 전체 160 세그먼트를 제공하는 8개의 공통 선과 20 세그먼트 선을 가지고 있다. 이 선들은 브레이크아웃 패드와 공유되지 않는다.
EFM32 거대 도마뱀 LCD 부스트 기능을 위한 커패시터는 EFM32GG-STK3700에서도 유용하다.

5.3 용량 터치 슬라이더
용량 터치 슬라이더를 활용한 터치 슬라이더는 유용하다. 그것은 킷의 두 누름 버튼 아래에 위치한다. 슬라이더는 손가락의 정확한 위치를 찾는 것을 네개의 분리된 패드로 보간한다. 낮은 전원 운용 동안 터치 슬라이더는 모든 4 패드를 지속적으로 스캔하는 데 LESENSE와 함께 사용될 수 있으며, 사용하는 LESENSE 채널은 8에서 11이다.
용량 터치 슬라이더는 사람의 손가락에 터치되었을 때 패드의 정전 용량 감지 변화에 의해 동작한다. 정전 용량 변화 감지는 시간의 고정된 기간동안 발진기의 횟수 카운팅 때에 EFM32의 아날로그 비교기를 사용하는 RC 휴식 발진기의 부분으로 터치 패드 설정에 의해 동작 된다.

5.4 주위 빛 센서
킷은 EFM32 거대 도마뱀 MCU의 낮은 에너지 감지 인터페이스에 연결된 트랜지스터 타입의 빛 민감 주위 빛 센서를 가지고 있다. 센서는 누름 버튼 위에 위치하고 주변 빛 정도의 변화 감지에 사용될 수 있다.
두 핀은 빛 센서 운용에 사용되었다: 하나는 자극에, 하나는 감지에. 감지 핀은 ACMP0 CH6에 연결되어있다. 자극 핀과 감지 핀 둘 다 EFM32의 LESENSE 모듈로부터 직접적으로 제어될 수 있다.

5.5 LC 센서
오른쪽 아래 코너에 낮은 에너지 센서 인터페이스 데모를 위한 유도-용량 센서가 있다. 유도자에 있는 발진기 전류 설정에 의해, 인덕터 가까이의 금속은 발진 붕괴 시간 측정에 의해 감지될 수 있다. 효과 범위는 몇 밀리미터이다.

5.6 NAND 플래시
32메가바이트 낸드 플래시는 EFM32 거대 도마뱀 MCU의 외부 버스 인터페이스에 연결되어 있다. 인터페이스는 단순 8비트 병렬 인터페이스이다. 이 주변장치는 ECC generation에 빌트인 된 EFM32 거대 도마뱀의 EBI 모듈의 낸드 제공을 보여준다.
별도의 전원 스위치는 낸드 플래시의 활용/비활용에 사용되므로 사용되지 않을 때는 과전류를 방지한다. NAND_PWR_EN이 High일 때, 낸드 플래시는 EFM32 MCU와 같은 전원공급장치로부터 전원공급된다. 그것은 전원 전환동안 쓰기-방지 선 low 유지에 추천된다.

낸드 플래시의 ALE(주소 래치 활성)과 CLE(공통 래치 활성) 핀은 EBI 주소 핀 24와 25에 연결되어져 있고, CE(칩 활성) 선은 일반 GPIO 핀에 연결되어져 있다. 이것은 EFM32의 주소 공간에 매핑된 주소와 공통 레지스터인 NAND 데이터를 일으킨다.

  • Data register:         0x80000000
  • Address register:    0x81000000
  • Command register: 0x82000000


5.7 백업 도메인 커패시터
작은 수퍼 커패시터는 EFM32 거대 도마뱀 MCU의 백업 전원 도메인 평가에 제공된다. 커패시터는 33마이크로 패럿의 일반 값을 가지고, 100옴 직렬 저항으로 EFM32의 BU_VIN 핀에 연결되어져 있다.

백업 모드에서 EFM32의 매우 낮은 전원 소비(400nA) 때문에 커패시터는 낮은 주파수 진동자(LFXO)를 사용하는 시계 응용프로그램을 8시간 이상동안 전원공급 할 수 있다.

직렬 저항은 그것의 교차 전압 측정에 단순 멀티미터 사용에 의해 커패시터로부터 EFM32 장치의 전류 흐름의 측정을 허용한다. 직렬 저항 위치는 스케매틱과 어셈블리 그림을 참조하기 바란다.

5.8 USB Micro-AB 연결자
EFM32GG-STK3700 보드는 USB 장치와 임베디드 호스트 모드를 지원하는 USB Micro-AB 연결자를 장착했다. 아래 그림은 어떻게 USB 선이 EFM32에 연결되어졌는지를 보여준다.

USB_VBUSEN 선은 USB 호스트 운용일 때 VBUS선에 5V를 제공하는 전류 한정 스위치에 연결되어 있다. 전류 한정 스위치는 연결된 장치에 의해 과전류가 흐르는 경우를 알려줄 수 있는 EFM32에 연결된 플래그 신호도 가지고 있다. 참고로 "J-Link" USB 케이블은 EFM32가 호스트 모드로 운용될 때 장치의 5V 제공에 삽입되어야 한다.

5.9 Op-Amp Footprint
킷을 뒤집으면 일반적인 연산 증폭기 피드백 회로의 실크 인쇄 모델이 있다. 활성 연산 증폭기는 EFM32에 포함된 op-amp들 중 하나다. 0603크기의 저항으로 납땜된 EFM32 내부 연산 증폭기는 정확한 저항 값으로 평가될 수 있다.


6. 고급 에너지 모니터
6.1 사용법
AEM(고급 에너지 모니터) 자료는 보드 제어기에 의해 수집되고, Simplicity Studio를 통하여 이용할 수 있는 energyAware 프로파일러에 의해 표시될 수 있다. energyAware 프로파일러 사용에 의해, 전류 소비나 전압은 측정될 수 있고 EFM32 실시간 활성 코드 실행에 연결되어질 수 있다

6.2 AEM 운용 이론
전류 범위를 0.1uA 에서 50mA까지(114dB 동적 범위) 정확하게 측정할 수 있도록 하기위해, 전류 센서 증폭기는 이중 gain stage와 함께 활용된다. 전류 감지 증폭기는 작은 직렬 저항 전압 drop을 측정하고, gain stage는 두 전류 범위 생성하는 것에 관한 두 다른 gain 설정으로 이 전압을 더 멀리 증폭한다. 이 두 범위 사이의 전이는 250uA 근사치로 발생한다.

킷의 시작동안, AEM의 자동 계산은 동작된다. 이 계산은 감지 증폭기의 옵셋 에러를 보상한다.

6.3 AEM 정확성과 성능
고급 에너지 모니터는 0.1uA에서 50mA 범위의 전류 측정을 수행할 수 있다. 250uA 이상의 전류에서, AEM은 0.1mA 이내로 정확하다. 250uA 이하 전류를 측정할 때, 정확성은 1uA로 상승한다. 절대적인 정확성 조자도 부가적인 250uA 범위 안에서는 1uA이고, AEM은 100nA만큼 작은 전류 소비에 대한 변화를 감지할 수 있다. AEM은 초당 6250 전류 샘플을 생성한다.

Note : 전류 측정은 디버거를 통한 USB로부터 EFM32의 전원이 공급될 때만 보정할 것이다. (파워 선택 스위치가 "DBG"로 설정)

7. 보드 제어기
킷은 디버거 핸들링이나 고급 에너지 모니터와 같은 여러 보드 레벨 태스크 실행을 위한 응답 가능한 보드 제어기를 포함한다. 인터페이스는 EFM32와 UART 연결의 폼에 있는 보드제어기 사이에 제공된다. 그 연결은 EFM_BC_EN(PF7) 선의 High 설정과 통신을 위한 EFM_BC_TX(PE0) 와 EFM_BC_RX(PE1)에 의해 사용가능하다.

스팩 라이브러리 함수는 큐잉 AEM 전압이나 전류같은 보드 제어기에서 만들어진 여러 요구사항을 지원하는 킷 보드 제공 패키지에 제공되어진다. 이 기능을 사용하기 위해서는 보드 제공 패키지가 설치되어져야만 한다. 챕터6을 보면 더 찾을 수 있다.

Note : 보드 제어기는 USB 파워가 연결되어졌을 때만 사용할 수 있다.

8. 보드 제공 패키지
보드 제공 패키지(BSP)는 쉬운 접근을 활성화 하고, 몇몇 보드 특정 특징을 제어하는 C 소스와 헤더 파일 세트다.

에너지 마이크로 개발 킷과 비교하자면, 기능이 제한적이다. BSP에 포함된 기능의 불필요한 일부를 제외한다. 스타터 킷의 EFM32는 BSP 지원 없이도 충분히 사용가능하고, BSP없이 emlib의 모든 주변장치를 사용할 수 있다.

BSP는 보드제어기와의 통신에 EFM32 주변장치인 위치 1의(TX 핀 PE0, RX 핀 PE1) baudrate 115200-8-N-1인 UART0을 사용한다.

Note : BSP는 스타터 킷이 USB 전원공급될 때만의 기능이고, USB 연결없이 이 기능의 사용은 예측할 수 없는 결과를 줄 것이다.

8.1 설치 위치
Simplicity Studio가 설치될 때, BSP는 사용자 디렉토리에 설치될 것이다. 일반적인 위치는 다음과 같다.
Win7 : C:\Users\[username]\AppData\Roaming\energymicro\kits\EFM32GG_STK3700\
또는 거의 유사하다. (OS나 윈도우 버전에 따른). 보드 제공 패키지의 모든 파일은 stk에 의해 고정되어있다.

8.2 응용 프로그래밍 인터페이스
BSP를 사용하기 위해, 스타터 킷 헤더 파일을 포함한다. 다음과 같이.

    #include "bsp.h"

BSP의 모든 기능은 BSP_ 로 고정되어있다. 주 초기화 루틴은

    void BSP_Init ( BSP_INIT_STK_BCUART )

로 정의되어져 있다. 이 루틴은 어떠한 STK 기능이든 접근 하기 전에 호출되어야 한다. 이 함수 호출은 UART 통신 채널을 115800 baud rate로 설정할 것이다. 이 baud rate는 현재 코어 클럭에 의존하며, 클럭 구성 보정은 이 함수를 호출하기 전에 해야 한다.

    float BSP_CurrentGet ( void )

밀리암페어로 전류 사용량을 즉시 반환.

    float BSP_VoltageGet ( void )

볼트로 전압(VMCU) 읽은 값을 즉시 반환.

8.3 응용프로그램 예제
설치된 디렉토리의 킷 EFM32GG_STK3700 예제폴더 아래에서, IDE에 제공되는 프로젝트/매이크파일을 지원하는 BSP 사용 프로그램 예제를 찾을 것이다.

examples 폴더는 EFM32GG-STK3700의 다른 주변장치를 어떻게 사용하는지 보여주는 예제도 포함한다.

8.4 자신의 응용프로그램에 포함하는 방법
당신의 응용프로그램에 BSP를 포함하는 가장 쉬운 방법은 당신의 작업에 BSP를 사용한 예제 응용프로그램을 기초로 하는 것이다. 다음의 항목은 올바른 구성을 위해 추천된다.

  1. 전처리 정의 심볼에 정확한 부품 번호를 정의해야 한다. (i.e. EFM32GG990F1024)
  2. 프로젝트 파일을 위한 정확한 부품 번호를 정의해야 한다. (i.e. EFM32GG990F1024)
  3. 당신의 프로젝트에 EFM32_CMSIS 파일들(startup_efm32.s, system_efm32.c, core_cm3.c)을 추가나 포함한다.
  4. 당신의 프로젝트에 bsp-prefix과 모든 BSP 패키지 .c 파일들을 추가/포함한다.
  5. include 경로를 CMSIS/CM3/CoreSupport 와 CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32 디렉토리로 구성한다.
  6. include 경로를 kits/EFM32GG_STK3700/bsp 디렉토리로 구성한다.
시작 전에 "BSP_Init()"를 호출해야 하고, 모든것을 설정해야 한다.

9. 커넥터들
9.1 Breakout 패드
EFM32의 많은 핀들은 킷의 위나 아래쪽 끝쪽의 "breakout pads"에 연결되어 있다. 2.54mm 피치의 핀 헤더는 이 핀들에 쉬운 접근을 위해 납땜될 수 있다. 대부분의 I/O 핀들은 LCD 제어에 사용되는 핀의 예외나 NAND 플래시 제어에 사용되는 일부핀과 함께 사용가능 하다.

Note : breakout 패드의 일부는 EFM 주변장치에 의해 공유되어 있다. 스케매틱은 당신의 응용프로그램에 공유된 핀이 사용되는데 OK인지 고려되어져야 한다.
Breakout pads and Expansion Header
Note : PC3, PC4, PC5와 PC6은 USB Micro-AB 연결자 아래에 패드 장착된 표면으로도 사용가능하다.

9.2 확장 헤더
보드의 오른쪽에 구부러진 20핀 확장 헤더는 주변장치나 플러그인 보드의 연결을 허용하는 것에 지원된다. 커넥터는 EFM32 거대 도마뱀의 특징의 대부분을 사용할 수 있는 I/O 핀들의 숫자를 포함한다. 추가적으로, VMCU, 3V3과 5V 전원 rail 또한 확장된다.

위의 그림은 확장헤더의 핀 할당을 보여준다. 일부 핀들의 예외를 포함하여 확장 헤더의 핀들 대부분은 EFM32 거대 또는 EFM32 단순 거대 스타터 킷의 그것들과 같다.

확장 헤더에서 사용가능한 칩 주변장치 기능의 일부분은 다음의 표에 나열된다.

주변장치 주변장치 핀 MCU 핀 EXP 헤더 핀 번호
USART/SPI USART1_TX PD0 4
USART1_RX PD1 6
USART1_CLK PD2 8
USART1_CS PD3 10
I2C I2C1_SDA PC4 7
I2C1_SCL PC5 9
Low Energy UART LEUART0_TX PD4 12
LEUART0_RX PD5 14
Analog to Digital Converter ADC0_CH0 PD0 4
ADC0_CH1 PD1 6
ADC0_CH2 PD2 8
ADC0_CH3 PD3 10
ADC0_CH4 PD4 12
ADC0_CH5 PD5 14
ADC0_CH6 PD6 16
ADC0_CH7 PD7 17
Digital to Analog Converter DAC0_CH0 PB11 11
DAC0_CH1 PB12 13
Analog Comparator ACMP0_CH0 PC0 3
ACMP0_CH3 PC3 5
ACMP0_CH4 PC4 7
ACMP0_CH5 PC5 9
ACMP0_CH6 PC6 15
ACMP0_O PD6 16
ACMP1_O PD7 17
Operational Amplifier OPAMP_N0 PC5 9
OPAMP_P0 PC4 7
OPAMP_OUT0 PB11 11
OPAMP_N1 PD7 17
OPAMP_P1 PD6 16
OPAMP_OUT1 PB12 13
OPAMP_N2 PD3 10

OPAMP_P2 PD4 12
OPAMP_OUT2 PD5, PD0 14, 4
Timer Compare/Capture TIMER0_CC0 PD1 6
TIMER0_CC1 PD2 8
TIMER0_CC2 PD3 10
TIMER1_CC0 PD6 16
TIMER1_CC1 PD7 17
TIMER1_CC2 PB11 11
Low Energy Timer LETIM0_OUT0 PD6, PB11, PC4 16, 11, 7
LETIM0_OUT1 PD7, PB12, PC5 17, 13, 9
Low Energy Sensor Interface (LESENSE) LES_CH0 PC0 3
LES_CH3 PC3 5
LES_CH4 PC4 7
LES_CH5 PC5 9
LES_CH6 PC6 15
LES_ALTEX0 PD6 16
LES_ALTEX1 PD7 17
Pulse Counter PCNT0_S0IN PD6 16
PCNT0_S1IN PD7 17
PCNT1_S0IN PC4 7
PCNT1_S1IN PC5 9
PCNT2_S0IN PD0 4
PCNT2_S1IN PD1 6
Peripheral Reflex System (PRS) PRS_CH2 PC0 3

Note : 이 표는 확장 헤더에 사용가능한 대체 기능의 일부를 총괄했다. 대체 기능의 완벽한 리스트는 EFM32GG990F1024 데이터시트를 참고하라.

9.3 디버거 연결자
이 연결자는 디버그 In/Out을 위해 사용된다(디버깅 챕터를 보라). 핀아웃은 다음 표에 묘사된다.
표. 디버그 연결자 핀아웃
핀번호 기능 내용
1 VTARGET 디버깅 되는 응용프로그램의 타겟 전압
2 NC 연결되지 않음
3 #TRST JTAG 탭 리셋
5 TDI JTAG 데이터 입력
7 TMS/SWDIO JTAG TMS 또는 직렬 연결 데이터 I/O
9 TCK/SWCLK JTAG TCK 또는 직렬 연결 클럭
11 RTCK JTAG RTCK
13 TDO/SWO JTAG TDO 또는 직렬 연결 출력
15 #RESET 타겟 MCU 리셋
17 PD 이 핀은 100k pulldown이다.
18 Cable detect 이 신호는 케이블 삽입 인식을 위해 외부 디버거나 응용프로그램에 의해 ground에 pull 되어져야 한다.
19 PD 이 핀은 100k pulldown이다.
4, 6, 8, 10, 12, 14, 16, 20 GND

9.4 자취 헤더
EFM32 거대 도마뱀 MCU에 있는 임베디드 자취 모듈 (ETM)에 연결되어진 헤더는 PCB의 반대면에 제공된다. 헤더는 기본적으로 연결되지는 않지만, 20핀 1.27mm 피치 SMD 헤더는 외부 자취 에뮬레이터와 연결을 위해 납땜되어질 수 있다.

추가적으로 직렬 연결 디버그 핀인 이 헤더는 ETM_CLK와 ETM_TD 신호 또한 포함한다. 핀아웃은 다음의 표에 묘사된다.
자취 헤더 핀아웃
핀번호 기능 내용
1 VTref 타겟 참조 전압
2 SWDIO/TMS 직렬 선 데이터 입/출력
4 SWCLK/TCK 직렬 선 칠럭 입력
6 SWO/TDO 직렬 선 출력 자취 포트
8 TDI EFM32GG-STK3700과 연결안됨
10 nRESET 타겟 CPU 리셋 신호
12 TRACECLK 자취 클럭 출력. 자취 클럭 = 1/2 CPU 클럭
14 TRACE-DATA[0] 자취 데이터 출력 핀 0
16 TRACE-DATA[1] 자취 데이터 출력 핀 1
18 TRACE-DATA[2] 자취 데이터 출력 핀 2
20 TRACE-DATA[3] 자취 데이터 출력 핀 3
7, 11, 13 NC 연결안됨
3, 5, 9, 15, 17, 19 GND

Note : EFM32GG-STK3700 디버거는 직렬 선 보기(SWV)와 함께 제공되는 기초 기능과는 별개의 어떤 자취 기능을 포함하지 않는다. 이 헤더는 외부 자취 에뮬레이터와 함께만이 사용가치가 있다.

10. 통합 개발 환경
Energy Micro 소프트웨어 패키지는 스타터 킷을 사용하는 소스 형식의 여러 예제를 포함한다.

10.1 IAR Embedded Workbench for ARM
IAR Embedded Workbench fo ARM의 평가 버전은 EFM32GG-STK3700 패키지의 CD 안에 포함되어 있다. 업데이트나 어떻게 사용하는지에 대한 IAR의 자체 문서가 어디 있는지 찾기 위해서는 빠른 시작 가이드를 확인하라. IAR 프로젝트 파일은 각 프로젝트의

    iar

폴더 안에서 찾을 것이다.

10.2 Rowley 관계 - ARM을 위한 CrossWorks
ARM을 위한 CrossWorks를 위한 다운로드를 위해 빠른 시작 가이드를 보라. CrossWorks 프로젝트 파일은 각 프로젝트의

    rowley

폴더에서 찾을 것이다.

10.3 CodeSourcery - Sourcery G++
소서리 G++를 위한 자세한 다운로드를 위해 빠른 시작 가이드를 보라.

    codesourcery

폴더는 소서리 G++ 개발 환경을 사용하기 위한 Makefiles를 포함한다.

10.4 Keil - MDK-ARM
Keil MDK-ARM의 평가 버전을 위한 자세한 다운로드를 위해 빠른 시작 가이드를 보라. 각 프로젝트의

    arm

폴더는 MDK-ARM을 위한 프로젝트 파일들을 포함한다. 자세한 사용을 위한 MDK-ARM 문서를 꼭 보라.

11. energyAware 명령과 업그레이드
energyAware 명령은 Simplicity Studio와 함께 제공되는 프로그램이다. 그것은 여러 킷과 EFM32 특징 태스크를 작동할 수 있다.

11.1 eA 명령 운용
이 유틸리티는 EFM32에 프로그램, 킷 업그레이드, 장치나 그 이상의 잠금과 해제 능력을 준다. 특징의 일부는 J-Link 디버거가 연결된 작업인 경우에는 Energy Micro 킷으로만 동작할 것이다. 전체 설명을 위해서는 "F1" 버튼을 누르거나 "Help -> Help" 메뉴 항목을 선택하라.

11.2 업그레이드
킷의 업그레이드는 Simplicity Studio를 통해 이루어진다. Studio는 시작시에 자동으로 새로운 업데이트를 확인할 것이다.

수동 업그레이드를 위해서는 energyAware Commander를 사용할 수 있다. "Kit" 아이콘을 선택, "Browse" 버튼을 사용 해 ".emz"의 보정 파일을 선택하거나 "Install package button"을 누른다.


12. 스케매틱, 아쎄이 도면과 BOM
EFM32 거대 도마뱀 시작 킷 보드를 위한 스케매틱, 어쎔블리 도면과 BOM은 킷 문서 패키지가 설치되었을 때 Simplicity Studio를 통해 사용가능하다.

2013년 8월 27일 화요일

MPEG-2 시스템

기능

  • 압축 오디오 정보, 압축 비디오 정보, 그리고 데이터 정보를 다중화(multiplexing)하여 출력하는 기능
  • 보호기와 복호기간의 타이밍 동기를 위한 클록 복원(clock recovery)
  • 매체내(intra-media), 매체간(inter-media) 동기(synchronization)를 위한 동기 지원


다중화된 출력 비트스트림(bit stream)

  • 수송스트림(TS: Transport Stream)
    • 주로 전송오류가 있는 전송채널을 대상으로 만들어진 규격
    • 4바이트 헤더와 184바이트의 데이터로 구성된 188바이트 고정길이 패킷
  • 프로그램스트림(PS: Program Stream)
    • MPEG-1과 같이 단일 프로그램을 대상으로 만들어진 규격
    • 주로 저장매체, 컴퓨터 응용에 많이 적용
  • 기초패킷스트림(PES: Packetized Elementary Stream)
    • TS와 PS를 만들기 위한 전 단계로서 하나의 정보원(오디오, 비디오, 데이터)으로만 구성된 스트림


데이터 구조

  • PS (Program Stream)
    • 단일 프로그램을 구성하는 각 미디어에 대한 압축 비트열을 다중화하기 위한 규격으로 주로 저장매체, 컴퓨터 응용과 같이 전송오류가 거의 없는 환경에서 사용된다.
    • 다수의 PES 패킷으로 구성된 팩(pack)들의 집합이다.
  • TS (Transport Stream)
    • 188 바이트의 고정 길이로 구성
    • 각 프로그램의 정보를 복호기에서 알 수 있도록 프로그램사양정보(PSI)라는 TS 패킷을 별도로 제공


타이밍 모델

  • 타임스탬프 방식 : 송신측에서 어떤 시점의 시간 정보를 수신측에 알려주고, 수신측에서는 이 정보를 이용하여 자신의 시간 정보를 송신측과 일치시킴으로써 송신측과 수신측의 동기가 이루어지게 함


2013년 8월 26일 월요일

RTSP(Real Time Streaming Protocol)

실시간 스트리밍 프로토콜
  • 정보가 수송될 연결(세션)과 정보의 흐름을 제어하는 일종의 신호프로토콜(signaling protocol)임
  • RealNetworks사, Netscape Communications 사, 콜럼비아 대학이 공동으로 만듦
  • IETF(Internet Engineering Task Force)의 MMUSIC(Multiparty Multimedia Session Control)이라는 연구그룹에서 RFC2326으로 표준화 됨
  • 실시간 정보의 수송을 위해서는 RTP와 RTCP를 사용
  • 제어 메시지를 전송하기 위한 채널은 신뢰성 있는 데이터 전달이 가능한 TCP를 사용


  • RTSP의 일반적인 동작 과정


  1. 클라이언트는 HTTP를 사용하여 웹서버로부터 세션 재생에 관한 정보를 받는다.
  2. RTSP를 사용하여 클라이언트의 매체재생기와 멀티미디어 서버에 제어정보를 전달한다.
  3. 세션의 설정과 해제는 RTSP에 의해 제어되고 실제 멀티미디어 정보는 RTP를 통해 전달된다.
  4. 각 매체 정보열 또는 이들을 엮어 만든 하나의 프로그램이라 할 수 있는 표현대상(presentation)은 RTSP의 URL(Uniform Resource Locator)에 의해 식별된다.



참고서적 : 영상통신개론 [홍릉과학출판사]

RTP(Real-time Transport Protocol) / RTCP(Real-time Transport Control Protocol)

실시간 수송 프로토콜(RTP)
  • 종단간에 음성이나 영상과 같은 실시간 특성을 가지는 테이터의 전달이 필요한 응용에서 사용되는 응용계층 프로토콜
  • 통상 UDP 위에서 동작하며 UDP가 제공하지 못하는 실시간 서비스를 응용들에게 제공
  • 발신지와 목적지 사이에 혼합기(mixer)와 번역기(translator)라는 중간 시스템들이 존재할 수 있다.

실시간 수송제어 프로토콜(RTCP)

  • 발신지측의 응용과 목적지측의 응용 사이에서 RTP 세션을 제어하거나 관리하는 프로토콜
  • RTCP는 RTP와 쌍(pair)로 존재
  • RTCP가 수행하는 기능
  1. 데이터의 전송 품질에 관한 정보를 응용에게 제공
  2. CNAME(canonical name)이라는 RTP 발신지의 수송-준위 식별자(transport level identifier)를 운반하기 때문에 RTP 세션에 참가하고 있는 참가자를 파악할 수 있음
  3. RTCP 패킷이 네트워크 자원을 과다하게 사용하는 것을 방지하고, 더 많은 참가자에게 RTP 세션을 허용하기 위해 RTCP 패킷의 양은 전체 세션 트래픽의 5% 이내로 제한
  4. 선택 사항으로서 모든 세션 참가자들에게 적은 양의 정보를 보내기 위해 RTCP 패킷을 효과적으로 사용할 수 있음


  • RTCP에는 송신자보고(SR: Sender Report), 수신자보고(RR: Receiver Report), 송신자서술(SDES: Source description), 탈퇴(BYE), 응용(APP: application) 의 5가지 패킷 유형이 있음


도서참조 : 영상통신개론 [홍릉과학출판사]


2013년 7월 28일 일요일

HDMI CABLE PINMAP

A diagram of a type A HDMI receptacle, showing 10 pins on the top row and 9 pins on the bottom row (total 19 pins).
Type A receptacle HDMI
Pin1TMDS Data2+
Pin2TMDS Data2 Shield
Pin3TMDS Data2−
Pin4TMDS Data1+
Pin5TMDS Data1 Shield
Pin6TMDS Data1−
Pin7TMDS Data0+
Pin8TMDS Data0 Shield
Pin9TMDS Data0−
Pin10TMDS Clock+
Pin11TMDS Clock Shield
Pin12TMDS Clock−
Pin13CEC
Pin14Reserved (HDMI 1.0–1.3c), HEC Data− (Optional, HDMI 1.4+ with Ethernet)
Pin15SCL (I²C Serial Clock for DDC)
Pin16SDA (I²C Serial Data Line for DDC)
Pin17DDC/CEC/HEC Ground
Pin18+5 V (max 50 mA)
Pin19Hot Plug detect (all versions) and HEC Data+ (optional, HDMI 1.4+ with Ethernet)

2013년 1월 13일 일요일

TCP/IP Tutorial

TCP/IP HOME

TCP/IP는 인터넷의 통신 프로토콜이다.

TCP/IP는 컴퓨터가 인터넷을 통해 서로 통신하기 위해 수행해야 하는 규칙을 정의한다다.


브라우저와 서버는 TCP/IP를 사용함

브라우저와 서버는 인터넷 연결에 TCP/IP를 사용한다.
브라우저는 서버에 접근하기 위해 TCP/IP를 사용한다. 서버는 브라우저에 HTML을 되보내기 위해 TCP/IP를 사용한다.


E-Mail은 TCP/IP를 사용함

E-Mail 프로그램은 E-Mail을 보내고 받기 위해 인터넷에 연결할 때 TCP/IP를 사용한다.


인터넷 주소는 TCP/IP이다.

인터넷 주소 "121.125.98.125"는 표준 TCP/IP 프로토콜(또는 도메인 이름)의 일부입니다.