usb 패킷 길이 확인이라고 해야하나?

 

    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass        14 Video
      bInterfaceSubClass      2 Video Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0080  1x 128 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       2
      bNumEndpoints           1
      bInterfaceClass        14 Video
      bInterfaceSubClass      2 Video Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       3
      bNumEndpoints           1
      bInterfaceClass        14 Video
      bInterfaceSubClass      2 Video Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       4
      bNumEndpoints           1
      bInterfaceClass        14 Video
      bInterfaceSubClass      2 Video Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0b00  2x 768 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       5
      bNumEndpoints           1
      bInterfaceClass        14 Video
      bInterfaceSubClass      2 Video Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0c00  2x 1024 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       6
      bNumEndpoints           1
      bInterfaceClass        14 Video
      bInterfaceSubClass      2 Video Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x1380  3x 896 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       7
      bNumEndpoints           1
      bInterfaceClass        14 Video
      bInterfaceSubClass      2 Video Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x1400  3x 1024 bytes
        bInterval               1

[링크 : https://www.thegoodpenguin.co.uk/blog/understanding-why-usb-isochronous-bandwidth-errors-occur/]

[링크 : https://community.infineon.com/t5/Knowledge-Base-Articles/Throughput-for-Isochronous-Transfers-for-FX2LP/ta-p/250158#.]

[링크 : https://ndb796.tistory.com/392]

 

 


USB 아이소크로노스 고대역폭(High-Bandwidth Isochronous) 전송
은 오디오, 비디오, 웹캠처럼 데이터가 끊기지 않고 실시간성(Time-critical)이 보장되어야 하는 장치를 위해, 하나의 서비스 주기(Microframe) 내에서 여러 개의 데이터 패킷을 연속으로 전송하여 대역폭을 극대화하는 기술입니다. [1, 2]
USB 엔드포인트(Endpoint) 설명자와 하드웨어 수준에서 설계된 이 방식의 핵심 원리와 동작 방식은 다음과 같습니다.
 
1. 고대역폭 아이소크로노스의 핵심 원리
일반적인 USB 2.0 High-Speed 모드에서 아이소크로노스 엔드포인트는 1 마이크로프레임(Microframe = 125µs)마다 최대 1개의 데이터 패킷(최대 1024 바이트)만 전송할 수 있습니다. [1, 2]
하지만 고화질 비디오 스트리밍처럼 1024바이트를 초과하는 대역폭이 필요할 때 고대역폭 엔드포인트를 활성화합니다. [1]
 
  • 추가 트랜잭션 요청: 단일 마이크로프레임 내에서 최대 2개의 패킷을 추가로 더 요청할 수 있습니다. [1]
  • 대역폭 확장 수치 (USB 2.0 High-Speed 기준):
    • 00 (기본): 마이크로프레임당 1개 패킷 (최대 1,024 바이트)
    • 01 (1개 추가): 마이크로프레임당 2개 패킷 (최대 2,048 바이트)
    • 10 (2개 추가): 마이크로프레임당 3개 패킷 (최대 3,072 바이트)
2. 엔드포인트 기술 사양 (Descriptor 사양)
펌웨어나 USB 컨트롤러 드라이버 레벨에서 고대역폭을 활성화하려면 엔드포인트 디스크립터(Endpoint Descriptor)의 wMaxPacketSize 필드의 상위 비트를 수정해야 합니다: [1]
  • Bit 10 ~ 0: 기본 패킷 크기를 지정합니다 (예: 1024 크기면 0x400). [1, 2]
  • Bit 12 ~ 11: 마이크로프레임당 추가 전송 기회를 설정합니다.
    • 01 : 마이크로프레임당 2번 전송 (비트 추가)
    • 10 : 마이크로프레임당 3번 전송 (비트 추가)
3. USB 3.0(SuperSpeed) 이상에서의 확장
USB 3.0 SuperSpeed 이후부터는 구조가 더욱 확장되어 고대역폭 아이소크로노스를 버스트(Burst) 전송 Mult(Multiplier) 개념으로 처리합니다. [1, 2, 3]
 
  • 이론상 최대 전송량: SuperSpeed에서는 단일 주기 내에서 최대 16개의 버스트 크기와 3개의 Mult를 조합하여 1024 바이트 × 16 × 3 = 49,152 바이트를 한 주기에 쏟아부을 수 있습니다. [1]
  • 이를 통해 UHD(4K/8K) 카메라나 비압축 고화질 영상 캡처 장비도 지연 없이 안정적으로 데이터를 밀어줄 수 있습니다
4. 주요 특징 및 주의사항
  • 에러 재전송 없음 (No Retries): 벌크(Bulk) 전송과 달리 데이터에 CRC 에러가 발생해도 다시 보내지 않고 다음 패킷으로 넘어갑니다. 데이터의 무결성보다 정해진 시간에 데이터가 도착하는 시간적 연속성이 훨씬 중요하기 때문입니다. [1, 2, 3, 4, 5]
  • 대역폭 예약제: 호스트 컨트롤러는 아이소크로노스 전송을 위해 전체 USB 대역폭의 일정 비율(최대 80~90%)을 미리 고정으로 묶어둡니다. [1]
  • 대역폭 부족 오류 (Bandwidth Error): 여러 대의 고대역폭 웹캠을 하나의 USB 허브에 물리거나, 하나의 호스트 컨트롤러에 고대역폭 아이소크로노스 장치를 동시에 여러 개 연결하면 "USB 대역폭 초과" 에러가 발생하며 장치 인식이 되지 않을 수 있습니다. 이 경우 기기 드라이버에서 대체 설정(Alternative Setting)을 통해 요구 대역폭을 낮추거나 별도의 USB 컨트롤러에 분산 연결해야 합니다. [1]

'이론 관련 > 컴퓨터 관련' 카테고리의 다른 글

NCHW, NHWC  (0) 2026.05.06
품질 관리 체크리스트 - p0 p1 p2 p3?  (0) 2026.04.23
asus 메인보드 에러코드(q code)와 부팅절차  (0) 2026.04.20
intel hex 포맷  (0) 2026.03.24
sd 카드 spi 모드 관련 조사  (0) 2026.03.17
Posted by 구차니

음.. 이거 어떻게 쓰지 -ㅁ-????

윈도우에서는 "알 수 없는 장치"로 일단 뜨고 드라이버 깔아야 한다는 건데..

 

리눅스에서는 일단 FX2 device 라는 이름으로 뜨긴한다.

[188337.135281] usb 1-2: new high-speed USB device number 61 using xhci_hcd
[188337.261398] usb 1-2: New USB device found, idVendor=04b4, idProduct=8613, bcdDevice=a0.01
[188337.261404] usb 1-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[188337.299924] usbtest 1-2:1.0: FX2 device
[188337.299930] usbtest 1-2:1.0: high-speed {control bulk-in bulk-out} tests (+alt)
[188337.299986] usbcore: registered new interface driver usbtest

 

드라이버는 교체하거나 FX3로 설치하면 된다는데.. 프로그램은 그냥 공개인가?

[링크 : https://community.infineon.com/t5/Knowledge-Base-Articles/Linux-Support-for-FX2LP-USB-Peripherals-AN2131-FX-FX1-FX2/ta-p/248762]

 

[링크 : https://www.instructables.com/FX2LP-CY7C68013A-USB-Dev-Board-Logic-Analyzer/]

[링크 : https://m.blog.naver.com/mymissu/221387059280]

 

+2026.09.07

[링크 : https://sigrok.org/wiki/Lcsoft_Mini_Board]

    [링크 :https://www.reddit.com/r/AskElectronics/comments/53rq3n/how_can_i_use_this_cy7c68013a56_board_as_a_basic/?tl=ko]

[링크 : https://sigrok.org/wiki/Downloads]

'하드웨어 > logic analyzer' 카테고리의 다른 글

CY7C68013A 입력 전압범위  (0) 2026.09.08
CY7C68013A on linux  (0) 2026.09.07
sigrok(pulseview) + CY7C68013A  (0) 2026.09.07
Posted by 구차니

 아마도.. 클론이겠지?

[링크 : https://www.dfrobot.com/product-1547.html?srsltid=AfmBOooMkTxEmCmbf57uC334rqhIoFga65rLFHKAZMPfhJY2VRvNECkd]

 

외관. 기본값은 off - on - off / on - on - on 으로 되어서 왔다

microstep - 8

pulse/rev - 1600

current - 0.5A / pk 0.7A

 

뚜껑을 따니 이렇게 나오는데.. 아래에는 서포트 없이 공중 부양...?!

 

밑판은 금속재질인데 아니 왜 공중부양?!?

 

원래 써멀이 뭍어 있었는데 닦고 지우고 했는데도 잘 안보인다. 무슨 칩이지?

아무튼 U1 인것 봐서는 IC 인데.. 패턴이 두꺼운거 보면 모터 드라이버 IC 인가?

그 와중에 JAPAN.. 파트명이 머니!?!?

 

+

toshiba TB67s109aftg 라는 칩으로 TB6600 이라는 칩 보다 신형이라고

[링크 : https://toshiba.semicon-storage.com/kr/semiconductor/product/motor-driver-ics/stepping-motor-driver-ics/detail.TB67S109AFTG.html]

[링크 : https://www.reddit.com/r/hobbycnc/comments/191y62m/tb6600_or_bunk/]

 

 

NE555 단일 정밀 타이머

[링크 : https://www.ti.com/product/ko-kr/NE555]

PC817 포토커플러 1CH

[링크 : https://www.alldatasheet.co.kr/datasheet-pdf/view/43371/SHARP/PC817.html]

6N137 / 옵토커플러 1CH

[링크 : https://www.alldatasheet.co.kr/datasheet-pdf/pdf/35184/QT/6N137.html]

Posted by 구차니

이번에 구매한  모터 드라이버 연결해보려고 하는데 흐음.. 안터지겠지?

일단 모터는 아래의 스펙인데.. A상 B상은 그냥 대충 잡아 찍으면되나?

BLK A+

GRN A-

RED B+

BLU B- 로 일단 간주하고 ㄱㄱ. 안되면 서로 A/B바꾸면 되겠지 머 ㅋㅋ(아니면 반대로 돌거나)

 

2025.11.28 - [하드웨어/모터(motor)] - 스텝 모터 2상 4상

 

[링크 : https://blog.naver.com/roboholic84/222406097514]

 

+

ENA- ENA+ 에 연결하면 소비전류가 9 V 0.018 A 인데 연결하지 않으면 9 V 0.670 A를 먹고 홀딩 토크가 발생한다.

부논리인가??? 아무튼 alarm은 왜 불이 들어오는지도 모르겠고 멘붕모드..

 

[링크 : https://www.youtube.com/watch?v=OUE1JajuYGw]

 

 

내가 가진 건 유니폴라인가.. 일단 결선이 좀 다른 것 같으니 고민..

그런데.. 어짜피 black - green 묶으면 똑같지 않나?

[링크 : https://m.blog.naver.com/simonsayz/120123367852]

 

+

웃긴게(?)

0.5A로 하면 작동하고

1.0A로 하면 못돌고 떨기만 한다 -_-??

 

전류 설정 주의
스펙표의 0.95A/phase는 센터탭을 사용하는 유니폴라(하프코일) 기준값입니다. 지금처럼 센터탭을 빼고 풀코일로 쓰는 바이폴라 방식에서는 저항이 2배가 되므로, 같은 전류를 흘리면 발열이 2배가 되어 위험합니다. 일반적인 변환 공식(÷1.4)을 적용하면:

권장 전류 ≈ 0.95A ÷ 1.4 ≈ 0.7A

TB6600 DIP 스위치를 0.7A 근처로 맞추고, 너무 뜨거워지지 않는 선에서 서서히 조정해보세요. 만약 이렇게 정확히 배선했는데도 진동만 한다면, 이전 답변의 5단계처럼 A+/A-(흑/녹) 극성만 한 번 바꿔서 테스트해보시면 됩니다.

[링크 : https://claude.ai/share/37d30687-5cae-4547-8407-a48977073755]

 

속도는 아직 제어 못하고 있고 방향은 되는것 같은데..

일단 ENA는 확실히 부논리인것 같고(high로 인가되면 전원이 안들어감)

나머지도 그럼 같으니까.. 펄스를 반대로 줘야하나?

SET(high) - dir / CW

 

스텝은 pulse/rev 값을 따르면 된다.

 12Mhz 에서 딜레이 없이 하면 작동안하는걸 봐서는 최소 펄스가 있는것 같은데..

1.2us~2.5us 정도라고 한다.

[링크 : https://easyelecmodule.com/tb6600-stepper-motor-driver-tutorial/]

 

usec 딜레이 만들어서 하면 더 좋았을테지만

귀찮아서 -ㅁ- 일단 실험적으로 200 넣으면 못 돌고 250은 나름 빠르게 돌아서 일단 만족

 

신호선의 + 에 연결하고 -에는 GND 연결해줌

PB12 - EN

PB13 - DIR

PB14 - PULSE

RED A+

BLU A- 

BLK B+

GRN B-

 


전체 배선. 유니폴라 라서 선이 6개인데 4개만 연결한다.

 

pulse가 들어가면 왼쪽의 LED가 깜빡인다(ALARM) 오른쪽은 POWER라서 고정인듯

 

 

stm32 코드 (일부분)

void init_tb6600()
{
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_SET); // EN HIGH
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_13, GPIO_PIN_SET); // DIR HIGH
}

int val = 0;
void gpio_proc()
{
  int uslp = 250;
  int cnt = 800 * 5;
  sprintf((char*)usb_buf, "EN:RST DIR:RST %d pulse\r\n", cnt);
  CDC_Transmit_FS(usb_buf, BUF_SIZE);
  memset(usb_buf,0,BUF_SIZE);
  count++;

  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_RESET);
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_13, GPIO_PIN_SET);
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14, GPIO_PIN_RESET);
  for(int idx = 0; idx < cnt; idx++)
  {
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14, GPIO_PIN_SET);
      for(volatile int usec = 0; usec < uslp ; usec++);
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14, GPIO_PIN_RESET);
  }
  HAL_Delay(2000);

  sprintf((char*)usb_buf, "EN:RST DIR:SET %d pulse\r\n", cnt);
  CDC_Transmit_FS(usb_buf, BUF_SIZE);
  memset(usb_buf,0,BUF_SIZE);
  count++;

  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_RESET); // EN HIGH
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_13, GPIO_PIN_RESET); // DIR LOW
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14, GPIO_PIN_RESET);
  for(int idx = 0; idx < cnt ; idx++)
  {
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14, GPIO_PIN_SET);
      for(volatile int usec = 0; usec < uslp ; usec++);
    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14, GPIO_PIN_RESET);
  }
  HAL_Delay(2000);
}

'하드웨어 > 모터(motor)' 카테고리의 다른 글

모터 드라이버 TB6600 분해  (0) 2026.09.03
스테핑 모터와 컨트롤러  (0) 2026.08.31
진공펌프  (0) 2026.07.03
하모닉 드라이브, 사이클로이드 드라이브  (0) 2026.01.13
스텝 모터 2상 4상  (0) 2025.11.28
Posted by 구차니

어찌어찌 깔고 일단 시작

시작하면 TripleOscilator 라고 있는데 톱니를 누르고

midi 에서 midi 장치(나의 경우에는 피아노)를 연결한다.

 

F7 누르면 피아노 롤 이라고 뜨는데 no pattern이라고 뜬다.

 

song editor 에서 더블 클릭하면 piano roll -TripleOscillator 라고 뜨면서 피아노에서 누르면 누르는대로 입력된다.

 

[링크 : https://docs.lmms.io/user-manual/production/midi]

[링크 : https://docs.lmms.io/user-manual/en/navigation/piano-roll]

'모종의 음모 > midi 피아노' 카테고리의 다른 글

피아노 강좌  (0) 2026.09.04
musescore  (0) 2026.09.04
linux midi - ardour, lmms  (0) 2026.09.01
피아노 연결! (리눅스)  (0) 2026.09.01
Posted by 구차니

으읭?

 

 

 

 

+

2026.09.04

ai 업체들이 레퍼럴로 쓰려고 긁어가는 느낌이란 말이지..

'개소리 왈왈 > 블로그' 카테고리의 다른 글

해피빈 기부  (0) 2026.08.18
불법촬영물 여부 검토  (2) 2026.07.24
다음은 언제이려나? ㅋㅋ  (2) 2026.06.23
한 달에 한 번?  (0) 2026.06.17
개인정보 유출 통지 - 데이원 컴퍼니 <- 콜로소  (2) 2026.06.11
Posted by 구차니

Ardour, LMMS, REAPER 를 추천하는 듯.

[링크 : https://www.reddit.com/r/linuxaudio/comments/1uyhkdl/ardour_vs_lmms_vs_the_rest_of_the_foss/]

 

+

피아노 어떻게 연결하지? ㅋㅋㅋㅋ

 

 

---

vmpk

 

aconnectgui

[링크 : http://tedfelix.com/linux/linux-midi.html]

 

'모종의 음모 > midi 피아노' 카테고리의 다른 글

피아노 강좌  (0) 2026.09.04
musescore  (0) 2026.09.04
lmms  (0) 2026.09.02
피아노 연결! (리눅스)  (0) 2026.09.01
Posted by 구차니

 

 

$ sudo dmesg -w
[   34.570036] usb 3-1: new full-speed USB device number 2 using xhci_hcd
[   34.722053] usb 3-1: New USB device found, idVendor=8f0a, idProduct=5301, bcdDevice= 1.00
[   34.722078] usb 3-1: New USB device strings: Mfr=2, Product=3, SerialNumber=0
[   34.722086] usb 3-1: Product: KURZWEIL DIGTAL PIANO  
[   34.722091] usb 3-1: Manufacturer: KURZWEIL    
[   34.787873] usb 3-1: Quirk or no altset; falling back to MIDI 1.0
[   34.794647] usbcore: registered new interface driver snd-usb-audio

 

 

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: 92HD81B1X5 Analog [92HD81B1X5 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

 

'모종의 음모 > midi 피아노' 카테고리의 다른 글

피아노 강좌  (0) 2026.09.04
musescore  (0) 2026.09.04
lmms  (0) 2026.09.02
linux midi - ardour, lmms  (0) 2026.09.01
Posted by 구차니

아니 이렇게 짧을 줄이야 ㅠㅠ

안보고 대충 샀더니 USB Type B 케이블 30cm 으아아

'개소리 왈왈 > 컴퓨터' 카테고리의 다른 글

아 몰라 질러 ㅋㅋ  (0) 2026.08.31
qsenn pts-gk1000 한손키보드  (0) 2026.08.24
한손 키보드 지름  (0) 2026.08.22
오늘자 줍줍  (0) 2026.08.18
질러?  (2) 2026.08.07
Posted by 구차니

claude가 ai 모델 학습 관련 응답에서 갑자기 나온 첨 듣는단어.

어디서 기어나왔나 했떠니 통계쪽에서 쓰는 말인듯.

간단하게 관심을 가지는 곡선의 아래면적.  그러니까 이게 넓은게 유리한건가?

 

[링크 : https://m.blog.naver.com/i-doctor/222700461406]

 

AUROC(Area Under ROC)는 의학통계에 사용되며, 최근에는 프로그래밍 분야에서도 사용되는 개념입니다.

[링크 : https://dizarr.tistory.com/514]

'모종의 음모 > ai 프로그램' 카테고리의 다른 글

llama.cpp vulkan / intel uhd 630  (0) 2026.09.01
stable diffusion model 이란  (0) 2026.08.28
llama swap matrix  (0) 2026.08.28
claude code with local LLM  (0) 2026.08.24
Qwen3.8-27B-UD-IQ2_XXS / 1080ti 11GB  (0) 2026.08.19
Posted by 구차니