전체 글 443

ST의 디자인 툴

ST사에서 웹으로 설계 프로그램을 지원하고 있습니다. NFC쪽을 그리다 안테나 설계를 안테나 회사에 다니는 친구에게 부탁을 할까하면서 구글링을 하다보니 ST에서 지원하는 것을 알게 되었습니다. 여러가지 설계 지원 툴 중 하나지만 제가 필요한 건 이거니까. 값을 변경해가면서 바로바로 결과를 알 수 있으니 좋습니다. 실제 PCB를 제작했을때도 동일하게 나올지는 잘 모르겠네요. 요즘 TI도 그렇고 ST도 그렇고 원하는 결과만 넣으면 값과 회로도까지 툭하고 튀어나오니 진짜 편하네요. 한편으로는 하드웨어 엔지니어인 제 자리가 위험하다는 생각이 드네요. 몇년뒤면 하드웨어 엔지니어는 없어지지 않을까 하는 걱정까지 듭니다. 펌웨어도 설정을 하면 기본 소스가 나오는 걸 보면 그 자리도 위험하긴 매한가지겠네요. 에휴 앞으..

PSOC - Timer 생성

CPLD나 FPGA를 하시는 분들에게는 익숙하신 TopDesign에 들어가서 Timer를 찾아 생성하여 줍니다.(물론 CPLD나 FPGA에서는 이러한 라이브러리들이 지원되지 않아 만들어 쓰거나 구매하여 쓸 수 있습니다...) 생성한 후에는 빌드를 한번하여 주어야만 프로그램 라이브러리들이 생겨서 프로그램에서 사용할 수 있습니다. /* Timer Interrupt */ CY_ISR(Timer_Int_Handler) { DEBUGPRINT("Timer \r\n"); Timer_ClearInterrupt(Timer_INTR_MASK_TC); } int main() { /* Start communication component */ UART_Start(); /* Enable global interrupts */ ..

W7500P - UART 설정

W7500P에서 UART RX를 인터럽트 구조로 잡은 상태에서 UART를 연결하지 않으니 정상동작을 하지 않았습니다. 때문에 UART RX 단자를 처음 셋팅때 연결되어있는지 확인하고 연결이 되어 있으면 인터럽트로 동작하도록 잡았는데 가만 생각해보니 풀업 설정만 해도 될 것 같았습니다. void UART_Config(uint8_t uart, uint32_t baud) { uint8_t RXStatus = 0; GPIO_InitTypeDef GPIO_InitStruct; UART_InitTypeDef UART_InitStructure; if(uart == USART_0){ PAD_AFConfig(PAD_PA, GPIO_Pin_14, PAD_AF0); GPIO_InitStruct.GPIO_Pin = GPIO_..

W7500P - 리셋타이밍

주로 많이들 사용하는 같은 급의(ST, NXP 등등) MCU와 다르게 W7500P의 리셋타이밍에는 문제가 좀 있는 듯 싶습니다. 위즈넷사에서 제공하는 노트에도 명시되어 있는 부분입니다. 20ms를 명시해놓은 걸로 기억하는데 만일 지연 타이밍이 없다면 초기에 동작하지 않을 수 있습니다. 일단 R 200K, C 1uF으로 지연시간을 좀 늦추니 동작을 합니다. 양산시에는 보증할 수 없지만 테스트 용도로는 충분할 것 같습니다.

PSOC - 디바이스 변경

PSOC의 단점이자 장점 PLD 기반이기에 CPLD나 FPGA 제품처럼 디바이스를 변경하여 사용할 수 있는 부분입니다. 초기에 판매했던 개발보드와 나중에 판매하는 개발보드가 이름은 동일한데 칩이 변경되거나 기제품을 단종시켜버려서 넘어가야 하는 경우가 있어 난처할 때가 있습니다. 그럴때 디바이스를 아래와 같이 변경하여 사용하면 됩니다. 변경되는 화면이 일반 펌웨어 엔지니어들에게는 조금 생소합니다. Keil이나 IAR 등에서도 IC를 변경하여 설정하고 사용하는 것이 있지만 그 선택하는 부분이 알테라의 디바이스 변경과 더 비슷한 느낌입니다. 사용하시는 분들은 당연히 아시겠지만 PLD와 MCU의 조합이기 때문입니다. 요즘 나오는 징크같은 칩을 보면 PSOC과 비슷하다는(사용법이 아닌 방식이) 느낌을 느낄 수 있..