Electro-Smith Daisy seed 를 사용한 GPIO

Daisy 출력에 사용되는 트랙 종류


Daisy의 출력은 크게
  • Audio out
  • DAC out
  • 디지털 GPIO
  • 의 3가지.핀 구성을 보면 아시겠지만 오디오 아웃과 DAC out은 각각 두 개씩 있습니다.아날로그 출력이 귀중한 만큼 루치처럼 HIGH/LOW의 2값이면 된다면, 쪼잔하게 디지털 핀을 사용하려고 한다.하지만 데이지 엑셀스에도 예가 없어서 적어놨어요...

    (출처: https://github.com/electro-smith/DaisyWiki/wiki/2.-Daisy-Seed-Pinout

    GPIO 사용 방법


    디지털 GPIO는 기본적으로 UART 통신용, I2C 통신용 등 어떤 작용을 분배하는데 예를 들어 트랙 위치를 보면 알 수 있다[1].이것을 출력에 사용하려면 다음과 같은 설정이 필요합니다.
    #define PIN_GATE 13
    
    dsy_gpio gate_output;
    
    gate_output.pin = seed.GetPin(PIN_GATE);
    
    // DSY_GPIO_MODE_OUTPUT_PP はプッシュプル。オープンドレインにしたい場合は DSY_GPIO_MODE_OUTPUT_OD。
    // ドキュメント: https://electro-smith.github.io/libDaisy/group__other.html#ga0edc3fcaf729346c5251d263d732666e
    gate_output.mode = DSY_GPIO_MODE_OUTPUT_PP;
    
    // 内部プルダウン・プルアップ抵抗を使うか
    // ドキュメント: https://electro-smith.github.io/libDaisy/group__other.html#gad8a85223f8dbcdf2c2cfc9302b3451b8
    gate_output.pull = DSY_GPIO_NOPULL;
    
    // 初期化
    dsy_gpio_init(&gate_output);
    
    이렇게 하면 dsy_gpio_write()로 값을 쓸 수 있습니다.false는low,true는high입니다.
    dsy_gpio_write(&gate_output, false);
    

    (참조) DAC out에 대한 출력


    DAC out도 seed용 코드를 준비했지만 다른 목적이 있어 사용했다가 리뷰에서 빠졌다.수중에 해본 적은 없지만 이렇게 출력할 수 있을 것 같아요.값uint16_t이니까 65536등급?
    // ここでコメントアウトされているコード。Patchなどの場合はここは不要。
    // https://github.com/electro-smith/libDaisy/blob/831f3820808f7718c55d6c844489d17bc20c2086/src/daisy_seed.cpp#L274-L284
    DacHandle::Config cfg;
    cfg.bitdepth   = DacHandle::BitDepth::BITS_12;
    cfg.buff_state = DacHandle::BufferState::ENABLED;
    cfg.mode       = DacHandle::Mode::POLLING;
    cfg.chn        = DacHandle::Channel::BOTH;
    seed.dac.Init(cfg);
    
    uint16_t value = ...;
    seed.dac.WriteValue(
      DacHandle::Channel::ONE, // あるいはTWOを指定
      value
    );
    
    각주
    덧붙여 libDaisy는 프로세서 IC(405x)와 위치 이동 레지스터 IC(595)의 함수를 준비했고 디지털 GPIO도 이곳에서 사용한다(예: https://electro-smith.github.io/libDaisy/structdaisy_1_1_adc_channel_config.html#ae8d9aafe3ca60ee3e657272fd7810fd4↩︎

    좋은 웹페이지 즐겨찾기