초보의 아웅다웅 설계하기 335

74HC595(시프트 레지스터) 테스트

... 4개 직렬 연결 // 74HC595_PIN13, PB10 - OE // 74HC595_PIN11, PB11 - SRCLK - SHIFT // 74HC595_PIN12, PB12 - RCLK - LATCH // 74HC595_PIN14, PB13 - SDI - DATA // 74HC595_PIN10, PB14 - CLR //- SER (Serial Input) : 시프트 레지스터로 데이터를 입력하는 핀 //- SRCLK (Shift Register Clock) : 클럭 핀(Clock Pin)의 상승 에지(Rising Edge) 신호에 동기되어 데이터 핀의 데이터가 시프트 레지스터로 들어갑니다. //- RCLK (Register Clock/Latch) : 이 핀에 신호가 들어가면 시프트 레지스터의 내..

치과용 초음파 세척

3개 회사의 Dental Ultrasonic Irrigation 의 회로의 구성을 보게 되었습니다. 2개 회사는 아래와 같은 회로는 아니지만 앞단에서 Step-up 회로로 승압을 하고 뒷단에서 Full-wave 신호를 L, C를 통해 Sign 신호로 변환하여 Langevin Transducer에 전달하는 구조였습니다. 1개는 Sepic 회로로 1차 승압을 하고 하프브릿지를 사용하여 Sign 신호로 인버팅되는 구조였습니다. 1개 업체는 단일 주파수로 되어있었고 2개 업체는 약 10kHz 정도의 주파수를 가변하면서 최적의 공진점을 찾아 그 공진점에서 동작되도록 설계 되어 있었습니다. 트랜듀서와 팁이 연결되어야 제대로 된 공진점이 생성되는 것 같습니다. 팁의 편차와 팁을 구부린 정도 형태 등에 따라 동작이 달..

STM32F0 PF0(OSC_IN), PF1(OSC_OUT) 사용

PF0, PF1을 사용하기 위해 RCC_DeInit함수 사용 /* For PF0, PF1 */ RCC_DeInit(); GPIO_InitTypeDef GPIO_InitStruct; // AFIO_REMAP_ENABLE(AFIO_MAPR_PD01_REMAP); /* Enable GPIOF clock */ RCC_AHBPeriphClockCmd(PERI_BUTTON, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); GPIO_InitStruct.GPIO_Pin = PIN_BUTTON_0 | PIN_BUTTON_1; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN; GPIO_InitStruct.GPIO_PuPd = GPI..

USB Device Mode - MSC(mass storage class)

Sound를 사용한다면 ADSTAR에서 제공하는 MSC에 들어가기 전에 Sound Clock의 설정을 변경하지 않으면 정상 동작 하지 않는 것 같습니다. ADSTAR에서 제공하는 내부 라이브러리를 확인하지 않았지만 통신중에 케이블이 빠지거나 하면 어디선가에서 무한루프에 빠져 멈춰버리고 맙니다. 만일 MSC가 주요 기능이라면 내부 라이브러리의 수정이 불가피해 보입니다. sound_init();함수 사용시 내부의 클럭 초기화 설정 void sound_clock_init() { PMU_WRITE_ENABLE; if(SND_OUTPUT_CHANNEL>1)//DIGITAL MOD *(vU32*)R_SNDCLKCON = F_SNDCLKCON_DMCLKSRC_PLLCLK;//PLL0 else *(vU32*)R_SND..

STM --cpp 옵션으로 인한 에러

C로 컴파일 할 때는 이상없이 되다가 --cpp 옵션을 넣을 경우 에러가 발생 error: #167: argument of type "void *" is incompatible with parameter of type "xxxxxxxxxxxxxxxxx *" void HAL_HCD_SOF_Callback(HCD_HandleTypeDef *hhcd) { USBH_LL_IncTimer(hhcd->pData); /* void USBH_LL_IncTimer(USBH_HandleTypeDef *phost); */ } => void HAL_HCD_SOF_Callback(HCD_HandleTypeDef *hhcd) { USBH_LL_IncTimer((USBH_HandleTypeDef *)(hhcd->pData)); }