kiss103007의 등록된 링크

키자드에 등록된 총 267개의 포스트를 확인하실 수 있습니다.

Naver Blog

STM32F4 CAN(동작모드 설명)

#CAN #STM32F #STM32F4 #STM32CubeIDE #ST Controller area network (bxCAN) - 1 이번포스팅은 STM32F4의 CAN기능에 대해 설명한다. CAN은 Controller Area Network의 약자이며 ST에서는 bxCAN(Basic Extended CAN)이라는 용어를 사용한다. CAN프로토콜버젼은 2.0A와 2.0B를 지원하고 최대 1Mbit/s의 비트전송율로 사용할 수있다. CAN의 전송기는 2개의 전송 Mailbox를 가지고 있으며 SOF전송시 타임스탬프를 추가할 수있고 여러가지 전송관련 인터럽트를 제공한다. 수신기는 3단계로 구성된 2개의 수신 FIFO를 가지고 있고 CAN1과 CAN2가 공유되는 28개의 필터뱅크를 가지고 있다. Identifier목록기능과 SOF수신 타임스탬프, FIFO 오버런등의 기능이 있다. 아래의 그림334는 CAN의 네트워크 토폴로지를 보여주고 있다. CAN Node1에는 MCU와 CAN Con

Naver Blog

STM32F4 CAN(Transmission기능설명)

#CAN #STM32F #STM32F4 #STM32CubeIDE #ST Controller area network (bxCAN) - 2 이번포스팅은 STM32F4의 CAN의 Transmission(전송)에 대해 설명한다. Transmission handling(전송 처리) 메시지를 전송하기 위해서 비어있는 Mailbox를 선택하고 identifier(식별자), data length code (DLC), data를 설정하고 CAN_TIxR레지스터에 해당 TXRQ비트를 설정해서 메시지를 전송할 수있다. Mailbox는 비어있는 상태가 되면 레지스터에 대한 쓰기접급 권한이 없다. TXRQ비트가 설정된 후 Mailbox는 대기상태로 들어가고 우선 순위가 높은 Mailbox가 될때까지 대기한다. Mailbox의 우선순위가 높은 경우 바로 전송이 예약된다. 예약된 Mailbox의 데이터는 CAN버스가 사용가능한 상태가 될 때 전송상태로 진입한다. Mailbox는 메시지가 문제없이 전송되면 비게

Naver Blog

STM32F4 CAN(Reception 기능설명)

#CAN #STM32F #STM32F4 #STM32CubeIDE #ST Controller area network (bxCAN) - 3 이번포스팅은 STM32F4의 CAN의 Identifier filtering(식별자 필터링)에 대해 설명한다. Reception handling(수신 처리) CAN모듈은 메시지 수신을 위해 FIFO로 구성된 3개의 Mailbox가 제공된다. CPU 부하를 줄이고 소프트웨어를 단순화하며 데이터 일관성을 보장하기 위해 FIFO는 완전히 레지스터로 관리된다. FIFO출력 Mailbox을 통해 FIFO에 저장된 메시지에 액세스한다.수신된 메시지는 CAN 프로토콜에 따라 올바르게 수신되고(EOF 필드의 마지막 1비트까지 오류가 없음) 식별자 필터링을 성공적으로 통과했을 때 유효한 것으로 간주된다 아래의 그림 341은 수신 FIFO의 상테에 변화에 따른 레지스터비트의 정보를 보여준다. FIFO 관리 FIFO가 빈 상태에서 시작하여 수신된 첫 번째 유효한 메시지는

Naver Blog

STM32F4 CAN(Identifier filtering 기능설명)

#CAN #STM32F #STM32F4 #STM32CubeIDE #ST Controller area network (bxCAN) - 4 이번포스팅은 STM32F4의 CAN의 Identifier filtering에 대해 설명한다. Identifier filtering CAN 프로토콜에서 메시지의 식별자는 노드의 주소와 관련되지 않고 메시지 내용과 관련되어 있다. 결과적으로 송신기는 메시지를 모든 수신기에 브로드캐스트하는데 메시지 수신 시 수신기 노드는 식별자 값에 따라 메시지가 필요한지 여부를 결정한다. 메시지가 필요한 경우 SRAM에 복사되고 필요하지 않은 경우 메시지를 폐기한다. CAN 모듈에는 28개의 필터 뱅크(27-0)를 제공라고 다른 장치에서 CAN모듈에 필요한 메시지만 수신하기 위해 14개의 필터 뱅크(13-0)를 제공한다. 필터 뱅크는 2개의 32비트 레지스터인 CAN_FxR0 및 CAN_FxR1로 구성된다. 필터를 최적화하고 조정하기 위해 각 필터 뱅크를 독립적으로 확

Naver Blog

STM32F4 CAN(Error management 및 Bit timing)

#CAN #STM32F #STM32F4 #STM32CubeIDE #ST bxCAN(Controller area network) - 5 이번포스팅은 STM32F4의 CAN의 Error management 및 Bit timing에 대해 설명한다. Error management CAN의 프로토콜에서 명시된 오류는 송신 및 수신 오류카운터가 있는데 레지스터에 의해 처리가 된다. 송신 및 수신 오류가 발생하면 카운트가 증가하고 오류가 해결되는 경우 카운터가 감소한다. CAN_ESR레지스터는 현재 CAN통신에서 발생한 오류의 정보를 확인할 수있다. CAN_IER레지스터를 설정함으로써 오류 발생시에 인터럽트도 발생할수있다. Bus-Off recovery는 에러카운터가 255보다 크면 발생하고 CAN_ESR레지스터의 BOFF비트로 확인 할수있다. Bus-Off상태가 되면 CAN의 송수신이 정지되고 CAN_MCR레지스터의 ABOM비트를 설정하여 Bus-Off상태를 Reset할 수있다. ABOM비트가

Naver Blog

STM32F4 CAN(레지스터설명)

#CAN #STM32F #STM32F4 #STM32CubeIDE #ST #bxCAN bxCAN(Controller area network) - 1 이번포스팅은 STM32F4의CAN의 레지스터에 대해 설명한다. CAN_MCR CAN_MCR은CAN Master를 설정하는 레지스터다. DBF비트는 Debug Mode에서 CAN의 동작을 정지시키는 비트다. 1로 설정하면 Debug모드동안 CAN의 송수신을 정지시킨다.(수신FIFO는 정상적으로 사용) RESET비트는 CAN Master를 Reset하는 비트다. 1로 설정하면 CAN이 Reset되고 Sleep Mode로 동작하게 된다. TTCM비트는 Time triggered communication mode를 설정하는 비트다. ABOM비트는 Bus-Off상태를 해지하는 비트로 1로 설정한 경우 Bus-off상태이후 자동으로 초기화 모드로 진입시킨다. AWUM비트는 자동 Wakeup모드를 제어하는 비트로 1로 설정하는 경우 Message가 수

Naver Blog

STM32F4 CAN(레지스터설명)

#CAN #STM32F #STM32F4 #STM32CubeIDE #ST #bxCAN bxCAN(Controller area network) - 2 이번포스팅은 STM32F4의CAN의 레지스터에 대해 설명한다. CAN_RIxR CAN_RIxR은 CAN 수신 Mailbox의 FIFO의 ID를 설정하는 레지스터다. STID/EXID비트(31~21비트)는 표준 식별자 혹은 확장식별자의 MSB값을 설정하는 비트이고 EXID비트(20~3비트)는 확장 식별자의 LSB를 설정하는 비트다. IDE비트는 Mailbox의 메시지의 식별자 타입을 설정하는 비트로 0인 경우 표준식별자, 1인경우 확장식별자로 설정할 수있다. RTR비트는 원격 전송을 요청하는 비트로 1로 설정하는 경우 원격 프레임을 요청하고 0인경우는 Data프레임을 요청한다. CAN_RDTxR CAN_RDTxR은 CAN Mailbox의 길이 및 Time Stamp를 설정하는 레지스터다. TIME비트(31~16비트)는 메시지의 Time St

Naver Blog

부의 추월차선 완결판(언스크립티드)

#부의추월차선 #부의추월차선완결판 #언스크리비드 #엠제이드마코 독서 일자 23년 4월 책소개 변화를 원하지만 변화하지 못하는 당신을 움직이게 할 이야기! 30대에 자수성가한 백만장자 사업가이며 발명가인 엠제이 드마코. 그가 젊어서 부자가 되는 길을 공개하며 ‘추월차선’이라는 말을 일반명사로 만들 만큼 큰 반향을 불러일으킨 《부의 추월차선》의 완결판 『언스크립티드』. 아직 추월차선에 진입하지 못한 이들을 위해 펴낸 이 책에서 저자는 풍요, 자유, 행복을 일깨울 청사진을 제공하고 극소수만이 꿈꾸는 인생을 자유롭게 만끽할 수 있는 기회를 제공한다. 1부에서는 저자는 우리가 성인이 된 이래로 지금까지 우리를 괴롭혀 온 문제를 드러낸다. 2부에서는 21세기 최대의 속임수를 폭로하고 그 속임수가 어떻게 우리의 꿈을 도적질해 왔는지 정확하고 정밀하게 진단한다. 3부에서는 게임을 지배하는 문화적 원칙들로부터 마음이 해방되기만 하면 무엇이 가능해지는지를 선명하게 보여준다. 4부에서는 각본 없는 기업

Naver Blog

CAN통신이란?

#CAN #STM32F #STM32F4 #STM32CubeIDE #ST Controller Area Network 이번포스팅은 CAN통신에 대해 설명한다. CAN통신은 Controller Area Network의 약자로 차량용 통신분야에 많이 사용된다. 보통 필드에서는 시리얼통신인 UART, I2C, SPI가 많이 사용되는데 차량의 경우 많은 센서와 ECU가 서로 복잡하게 연결되어 있기 때문에 일반적인 시리얼통신을 사용하는 경우 통신선로 및 추가 비용증가되기 때문에 차량에서는 CAN통신을 주로 사용한다, 아래의 그림 334처럼 CAN버스에 여러개의 노드를 병렬로 연결이 가능하기 때문에 노드가 증가함에 따른 통신선로 추가가 필요없다. CAN통신은 멀티마스터 방식을 사용하기 때문에 CAN버스에 연결된 어떠한 CAN노드라도 Master가 될수있으며 각 CAN노드별로 ID(식별자)를 가지고 있어서 CAN버스에 여러 CAN노드가 통신을 보내더라도 우선순위에 의해 1개의 노드의 정보만 전송되게

Naver Blog

STM32F4 ADC(Multi ADC Mode)

#ADC #STM32F #STM32F4 #STM32CubeIDE #ST Analog-to-digital converter - 2 이번포스팅은 STM32F4의 ADC의 기능에 대해 설명한다. 이전 포스팅에서는 Single위주로 다루었는데 이번에는 Multi ADC 모드에 대해 설명하려고 한다. Multi ADC 모드는 그림51과 같이 ADC 모듈이 2개 이상인 장치에서는 Dual, Triple ADC모드를 사용할 수 있으며 ADC_CCR레지스터의 MULTI비트의 설정값에 따라 모드가 선택되며 ADC1이 Master로 동작하여 ADC2와 ADC3을 번갈아가면서 컨버젼하거나 동시에 컨버젼이 가능하다. Multi Mode는 아래와 같이 4개의 Mode(2개는 생)로 구현이 가능하다. • Injected simultaneous mode • Regular simultaneous mode • Interleaved mode • Alternate trigger mode Injected simulta

Naver Blog

STM32F4 ADC(ADC부가 가능)

#ADC #STM32F #STM32F4 #STM32CubeIDE #ST Analog-to-digital converter - 3 이번포스팅은 STM32F4의 ADC의 부가기능에 대해 설명한다. 이전에 설명한 ADC소개글은 주로 ADC Mode위주로 설명을 했고 이번에 소개할 내용은Analog watchdog, Data management, Temperature sensor를 소개할 예정이다. Analog watchdog Analog watchdog은 ADC에 의해 변환된 결과값이 Upper Limit, Lower Limit값의 범위를 벗어나는 경우 발생합니다. Limit값은 ADC_HTR, ADC_LTR레지스터에 12비트값으로 설정이 가능하다. ADC_CR1레지스터의 AWDIE비트를 설정하면 인터럽트도 발생시킬수 있다. 이 값은 ADC결과값레지스터에 저장되기전에 비교되기 때문에 ADC_CR2의 ALIGN비트의 설정값에 영향을 받지 않는다. 아래의 테이블66은 Analog watchd

Naver Blog

데일 카네기 자기관리론

#자기관리론 #데일카네기 #책에반하다 #자기개발서베스트셀러 독서 일자 23년 3월 책소개 걱정 없이 살게 해줄 가장 효과적인 실행법! 데일 카네기는 이 책의 집필을 위해 무려 7년 동안 모든 시대에 걸쳐 철학자들이 걱정에 관해 언급한 구절들을 살펴보고, 공자부터 처칠에 이르기까지 수백 편의 전기를 읽었다. 엘리너 루스벨트, 도로시 딕스와 같은 여러 분야의 저명한 인사들을 인터뷰하기도 했다. 그리고 물론 인터뷰와 독서보다 훨씬 중요한 일들을 하기도 했다. 그것은 ‘걱정 극복연구실’에서 5년 동안이나 일하며 수강생들에게 일상에서 적용할 수 있는 걱정을 멈추기 위한 몇 가지 규칙을 제시하고, 그 결과를 수업 시간에 발표하도록 했다. 그 결과, 그는 그 누구보다 ‘걱정을 극복한 방법’에 관해 많은 이야기를 들은 사람이 되었다. 그뿐만 아니라, 우편으로 수백 개의 경험담이 적힌 편지를 받기도 했다. 이 책은 어떤 상아탑이나, 학술회에서 튀어나온 것이 아니다. 다만 한 가지 확실한 것은 이 책

Naver Blog

STM32F4 DAC(기능설명)

#DAC #STM32F #STM32F4 #STM32CubeIDE #ST Digital-to-analog converter - 1 이번포스팅은 STM32F4의 DAC의 기능에 대해 설명한다. DAC는 디지털값을 아날로그신호로 변경하는 기능으로 내부 MICOM의 변수의 값을 디버깅하는데 많이 사용한다. STM32F4의 DAC는 2채널이 있고 12비트 또는 8비트모드로 사용할 수있다. 아래의 그림64는 DAC의 블럭다이어 그램을 보여준다. TSELx로부터 트리거 신호를 설정가능하고 DHR레지스터에 설정된 지지털값을 이용하여 DAC_OUT으로 ADC변환된 아날로그신호가 출력이 된다. DAC의 데이터레지스터는 단독으로 변경가능한 레지스터는 8비트우측, 12비트좌/우측 이렇게 3개가 존재하고 동시에 2채널을 변경할 수 있는 12비트좌/우측 8비트우측 이렇게 3개가 있다. 동시에 2개의 채널을 변경하는 레지스터와 개별로 변경하는 래지스터가 존재하는 이유는 DAC 2채널의 출력을 동기화시켜야 하는

Naver Blog

STM32F4 DAC(레지스터설명)

#DAC #STM32F #STM32F4 #STM32CubeIDE #ST Digital-to-analog converter - 2 이번포스팅은 STM32F4의 DAC의 레지스터에 대해 설명한다. DAC의 상세설명은 이전의 포스팅을 참고하길 바란다. DAC_CR DAC_CR은 DAC를 설정하는 레지스터다.DMAUDRIE2비트는 DAC채널2번의 DMA언더런인터럽트를 Enable하는 비트다. DAC언더런은 이전의 DAC의 수행이 완료되지 않은 상태에서 다시 DAC의 시작신호가 들어오면 발생한다. DMAEN2비트는 DAC채널2번의 DMA를 Enable하는 비트다. MAMP2비트(27,26,25,24)는 DAC태널2번이 파형생성모드로 선택된 경우 파형의 진폭을 선택하는 비트다. 설정값은 아래와 같다. 0000: Unmask bit0 of LFSR/ triangle amplitude equal to 1 0001: Unmask bits[1:0] of LFSR/ triangle amplitude e

Naver Blog

[제주]제주 애월 모들한상

제주시 애월읍에 위치한 모들한상이라는 음식점을 방문했습니다. 주메뉴는 돈가스와 파스타이며 간이 세지 않고 삼삼하게 먹을 수있었습니다. 저의는 고사리파스타, 돈가스, 새우구이 로제 파스타, 모들 해물 가지 커리를 주문하였습니다. 새우구이 로제 파스타와 돈가스는 맛있었지만 어디서나 먹을 수있는 맛이었습니다. 고사리파스타라는 메뉴를 파는 곳이 없어서 주문을 했는데 생각외로 담백하고 맛있었습니다. 모들해물가지커리도 가지를 잘튀겨서 특유의 식감이 좋았고 커리도 일반적인 커리가 아니라 코코넛 혹은 우유가 들어간 부드러운 커리라서 아이들이 맛있게 먹을 수있었습니다. 외관 및 인테리어 메뉴 및 가격 모들돈가스 : 15,000 고사리 보말 파스타 : 16,000 새우구이 로제 파스타 : 16,000 샐러드 파스타 13,000 모들 해물 가지 커리 : 12,000 오므라이스 : 5,000 음식사진 위치 모들한상 제주특별자치도 제주시 애월읍 하가로 180

Naver Blog

Darington IC(레벨쉬프트)

#Darington #DaringtonIC #레벨쉬프트 #TD62084 #KID65001 이번에 포스팅할 내용은 레벨쉬프트로 많이 사용되고 있는 Darington IC다. 이번에 포스팅할 IC는 TOSHIBA사의 TD62084를 포스팅할 계획이고 그외에도 Darington IC가 많이 있지만 Datasheet상의 내용은 유사하니 참고하길 바란다. 회로의 이름은 Darington이라는 사람이 발명한 회로이고 서로 전원이 다른 두전원에 신호를 전달하는 목적으로 사용된다. 5V로 구동되는 MICOM의 GPIO로 12V Fan을 동작시키던가 3.3V로 구동되는 MICOM으로 다른전압의 부하를 제어하는 목적으로 사용되며 아래의 그림처럼 레벨쉬프트가 Array형태로 구성된 IC가 많이 사용된다. 여기서 I1~I8까지는 입력되는 신호이고 O1~O8은 출력신호인데 출력되는 신호는 입력과 같은 레벨의 전압이 아니라 Commom에 연결된 전압이 출력되어 입력단과 출력단이 서로다른 레벨의 전압으로 입/

Naver Blog

2023 롯데마트 롯데슈퍼 주주총회 (위스키 오픈런)

#롯데마트 #롯데슈퍼 #주주총회 #위스키오픈런 #위스키할인 #히비키 #발베니 #맥캘란 #러셀 #2023주주총회 3월 30일부터 4월 12일까지 롯데마트X롯데슈퍼 제2회 주주총회가 개최됩니다. 작년10월정도에 1회가 개최 되었는데 올해는 3월에 열리네요. 아마 이번도 오픈런이 예상되는데요. 와인 및 위스키 600여종이 행사에 판매될 계획입니다. 위스키는 아래의 그림과 같이 발베니 11만원, 맥캘란 119000원, 히비키138000원, 러셀 119000원으로 판매될 계획인고 가격도 나쁘지 않은 것 같습니다. 가격을 그렇다 치지만 발베니, 맥캘란, 히비키의 경우는 구하기 힘들술이다 보니 구매해 놓으면 좋을 것 같습니다. 다들 오픈런 하셔서 좋은 상품 겟 하시길 빌겠습니다.^^

Naver Blog

장사의 신

#장사의신 #우노다카시 #요식업계의전설 #이자카야창 독서 일자 23년 3월 책소개 “장사하는 사람들의 0순위 필독서, 장사의 바이블이 된 책!” 장사를 시작하려는 사람들은 물론이고 이미 장사를 하고 있는 사람들에게도 지난 10년 동안 큰 영감을 주며 길잡이가 되어준 책, 《장사의 신》이 200쇄 돌파 기념 블랙에디션으로 새롭게 출간되었다. 《장사의 신》은 일본 요식업계의 전설이자 ‘장사의 신’으로 불리는 우노 다카시가 들려주는 장사에 대한 모든 것이다. 커피숍 매니저로 시작해, 200명이 넘는 자신의 직원들을 이자카야의 사장으로 만든 그는 어떤 장사에도 통하는 성공 비법을 공개한다. 가게 입지를 선정하는 방법부터 성공하는 메뉴를 만드는 비법, 접객을 통해 매출을 올리는 비법, 가게를 효율적으로 늘려가는 방법까지 날카로운 지적과 빈틈없는 가이드로 어떤 불황에도 망하지 않는 강한 가게를 만드는 전략을 알려준다. 이 책에서 저자는 실패할 각오를 하는 것보다 성공할 각오로 덤벼들고, 무모한

Naver Blog

데일리샷 글렌알리키 이벤트

#데일리샷이벤트 #글렌알리키이벤트 #글렌알리키선착순구매 #글렌알리키추첨 데일리샷에서 글렌알리키 10년 CS배치8을 선착순 판매할 예정입니다. 날짜는 3월21일(화요일)에 진행됩니다. 오후2시에는 선착순 구매가 진행되고 3시부터는 추첨으로 구매가 가능합니다. 2시 구매는 아래의 왼쪽 그림에서 구매가 가능하고(현재는 재고없음으로 나와있음) 3시 추첨은 아래의 오른쪽 데일리샷 앱 추첨 바로가기를 통해서 응모가 가능합니다.(현재 링크열리지 않음.) 이번 기회에 글렌알리키 저렴하게 구매하시길 바랍니다.

Naver Blog

실비청구시 병원 진료기록 및 진료내역 확인방법

#병원진료기록 #실비청구 #한의원실비 #병원진료기록검색 #건강보험심사평가원 #병원진료내역 이번 포스팅은 실비보험 청구를 위한 병원진료기록 확인방법을 소개하려고 합니다. 보통 부지런한 사람들은 병원진료를 마친후 영수증을 핸드폰으로 찍서어 실비를 청구합니다. 저도 그렇게 해야 하는걸 알지만 매번 연말에 해야지 하고 미뤄두다보니 언제 어느병원에서 진료를 받았는지 기억이 나지 않고 영수증을 모아놓긴 하는데 분실하는 영수증도 있고 하기 때문에 정확한 정산이 이루어지고 있지 않습니다. 그래서 이번에는 병원진료기록을 확인하는 방법에 대해 설명하려고 합니다. 먼저 연말정산간소화시스템에서 간략한건 조회가 가능하지만 조금더 상세한 정보를 얻고자 하시는 분들은 참고하시면 좋을 것 같습니다. 아래의 그림과 같이 건강보험심사평가원홈페이지에 접속합니다. 거기서 내 진료정보 열람을 클릭합니다. 스크롤을 아래로 내리다보면 '내 진료정보 열람'조회하기 버튼이 보이는데 이 버튼을 클릭합니다. 아래와 같은 본인 인증

Naver Blog

Analog-to-digital converter(레지스터)

#ADC #STM32F #STM32F4 #STM32CubeIDE #ST #SCANMODE Analog-to-digital converter 레지스터설명 이번포스팅은 STM32F4의 ADC의 레지스터에 대해 설명한다. 이전에 포스팅한 ADC에 대한 다양한 Mode, 동작을 설정하는 전반적인 내용을 포함되어 있으며 이전에 포스팅한 ADC의 설명을 참고해서 보면 더욱 도움이 된다. ADC_SR ADC_SR레지스터는 ADC의 상태를 나타내는 레지스터이다. OVR비트는 ADC데이터 레지스터의 값이 오버런이 발생한 경우 Set된다. STRT비트는 Regular채널시작시 Set되는 비트이다. JSTRT비트는 Injected채널이 시작되면 Set되는 비트이다. JEOC비트는 Injected채널의 ADC변환이 완료되면 Set되는 비트이다. EOC비트는 Regular채널의 ADC변환이 완료되면 Set되는 비트이다. AWD비트는 Analog Watchdog이 동작하는 경우 Set되는 비트이다. Anal

Naver Blog

STM32F4 PWM 예제 Code

#PWM #TIM4 #타이머인터럽트 #PWM타이머 #STM32F407 #STM32F4 #STM32CubeIDE #ST예제Code 이번 포스팅은 STM32F4의 PWM에 대해 설명한다. PWM포트는 아래의 그림과 같이 PD12로 파형을 출력할 예정이고 인터럽트를 발생시키지 않는다. 아래의 그림은 PWM을 사용하기 위해 TIM4를 사용 하였고 Clock Source는 내부클럭, 채널은 PWM CH1을 사용한다.(클럭은 16MHZ를 사용) 아래의 그림은 TIM4의 상세 파라미터를 설정하는 그림이다. 먼저 분주기를 1600분주시키고 카운터주기는 10000으로 초기 설정했다.(Code에는 변수를 사용하여 1000으로 변경함) 트리거 이벤트는 Reset으로 설정, Pulse는 5000으로 설정했다.(이부분도 Code에서는 500으로 변경함) 아래는 Main.c Code이다. gunPWM에 1000을 넣고 gunDuty에 500을 넣어서 100ms주기로 동작하고 PWM의 Duty는 50%로 설정

Naver Blog

STM32F4 ADC SW Trigger 예제 Code

#ADC #SwTrigger #STM32F407 #STM32F4 #STM32CubeIDE #ST예제Code 이번 포스팅을 STM32F4의 ADC에 예제 Code에 대해 설명하고자 한다. ADC의 방식은 SW트리거 방식이고 ADC1의 채널1(PA1핀)을 이용한다. 아래의 그림은 ST의 Discovery Board의 회로도 중 Test Pin이다. 보드에 가변저항같은것이 없기 때문에 3V를 PA1에 넣어줘서 ADC값을 측정했다. 아래의 그림은 ADC의 Code를 생성하기 위한 설정화면이다. ADC1의 IN1을 선택한다. Mode는 Indipendent Mode로 설정하고 클럭프리스케일러는 2분주로, 분해능은 12비트로 설정한다. ADC_Regular_ConversionMode에서 외부트리거 컨버젼소스는 SW로 설정을 하면 된다. 아래는 ADC의 예제 Code이다. Code를 생성한뒤 크게 변경할 내용은 없고 Main함수의 While문안에 아래의 3줄을 추가하면 된다. HAL_ADC_St

Naver Blog

3월 10일 GS더프레시 위스키오픈런(발베니12, 맥캘란12)

#위스키오픈런 #GS더프레시오픈런 #발베니12 #맥캘란12 #오픈런 3월10일(금요일) GS더프레시에서 위스키오픈런을 진행합니다. 시간은 오전10시부터 재고소진시까이입니다. 상품은 맥캘란12, 발베니12가 인기가 많을 것으로 예상됩니다. 상품은 아래의 4개이며 가격은 아래그림을 참고하세요. 카카오페이로 결제시 할인이 되니 참고하세요. 발베니와 맥캘란이 인기가 많을 것 같으니 입고 점포를 확인하시고 구매하시기 바랍니다.

Naver Blog

STM32F4 ADC Interrupt 예제 Code

#ADC #ADCInterrupt #STM32F407 #STM32F4 #STM32CubeIDE #ST예제Code 이번 포스팅을 STM32F4의 ADC에 예제 Code에 대해 설명하고자 한다. ADC의 방식은 Interrrupt 방식이고 ADC1의 채널1(PA1핀)을 이용한다. 아래의 그림은 ST의 Discovery Board의 회로도 중 Test Pin이다. 보드에 가변저항같은것이 없기 때문에 3V를 PA1에 넣어줘서 ADC값을 측정했다. 아래의 그림은 ADC의 Code를 생성하기 위한 설정화면이다. ADC1의 IN1을 선택한다. Mode는 Indipendent Mode로 설정하고 클럭프리스케일러는 2분주로, 분해능은 12비트로 설정한다. 컨티뉴어스 컨버젼 모드를 Enable하고 End of Conversion Selection을 싱클체널컨버젼의 완료후 EOC플레그를 선택한다. ADC_Regular_ConversionMode에서 외부트리거 컨버젼소스는 SW로 설정을 하면 된다. 인터

Naver Blog

기아,현대 자동차 부품 검색 및 구매

#기아자동차부품 #현대자동차부품 #자동차부품구매 #자동차부품검색 이번 포스팅은 기아, 현대 자동자 순정 부품을 검색하고 구매하는 과정에 대해 설명한다. 기아 및 현대는 동일한 사이트에서 검색 및 구매가 가능하다. 아래의 그림과 같이 네이버에 자동차 부품검색을 입력하면 www.mobis-as.com이라는 링크가 나오는데 여기로 들어간다. 사이트에서 아래의 그림과 같이 A/S부품의 부품상세검색을 클릭한다. 현대 자동차 ID로 로그인한다. 아이디가 없는 경우 회원가입을 하면되는데 개인정보에 차대번호를 입력해야 하니 차량등록증의 차대번호를 미리 적어주면 좋다. 로그인을 완료하면 아래의 WPC 접속하기를 클릭한다. 회원가입시 등록한 모델과 차대번호가 맞는지 확인하고 확인버튼을 누른다. 아래의 그림처럼 엔진, 드랜스미션, 샤시, 바디, 트림 일렉트릭, 커넥터 탭을 클릭해서 자신이 원하는 부품을 클릭한다.(차종에 따라 다르게 표시될 수 있음) 헤드램프를 교환하는 과정을 소개 하겠다. 91-921

Naver Blog

STM32F4 ADC DMA 예제 Code

#ADC #ADCDMA #STM32F407 #STM32F4 #STM32CubeIDE #ST예제Code 이번 포스팅은 STM32F4의 ADC에 예제 Code에 대해 설명하고자 한다. ADC의 방식은 DMA방식이고 ADC1의 채널1(PA1핀), 채널2(PA2)를 이용한다. DMA란 Direct memory access의 약자로써 Memory를 직접 접근하는 방식으로 이전의 포스팅은 1개의 ADC를 1회 수행하는 경우라면 여러개의 ADC를 Scan Mode로 동작시킬때 여러 ADC결과를 한번에 저장하는 기능이라고 생각하면 된다. 아래의 그림은 ST의 Discovery Board의 회로도 중 Test Pin이다. 보드에 가변저항같은것이 없기 때문에 3V를 PA1과 PA2에 넣어줘서 ADC값을 측정했다. 아래의 그림은 ADC의 Code를 생성하기 위한 설정화면이다. ADC1의 IN1, IN2를 선택한다. Mode는 Indipendent Mode로 설정하고 클럭프리스케일러는 4분주로, 분해능은

Naver Blog

STM32F4 DAC 예제 Code

#DAC #STM32F407 #STM32F4 #STM32CubeIDE #ST예제Code 이번 포스팅은 STM32F4의 DAC 예제 Code에 대해 설명하고자 한다. DAC의 출력핀은 아래의 그림과 같이 PA4와 PA5이며 8비트의 디지털값을 아날로그로 변경하는 기능이다. 아래의 그림은 ST의 Discovery Board의 회로도 중 Test Pin이다. DAC는 PA4와 PA5를 이용하여 아날로그출력을 확인 가능하며 오실로스코프와 디버거의 디지털값을 비교하여 검증을 한다. 아래의 그림은 DAC의 Code를 생성하기 위한 설정화면이다. DAC의 Mode설정중 OUT1, OUT2 Configuration을 클릭하고 2개의 출력버퍼를 Enable한다.(그외의 설정은 필요없음) 아래는 DAC의 예제 Code이다. Code를 생성한뒤 DAC에 사용할 변수를 2개 선언하고 MX_DAC_Init함수 안에서 HAL_DAC_Start(&hdac,DAC_CHANNEL_1), HAL_DAC_Start(

Naver Blog

자동차 엔진오일 싸게 교환하는 법(오일구매)

#자동차엔진오일 #엔진오일구매 #엔진오일교환 #무주지포트 #유진상사 #공임나라 #합성유교환 이번 포스팅은 자동차엔진오일을 싸게 교환하는 방법에 대해 설명한다. 2차례에 걸쳐서 포스팅을 할 계획이고 1차는 오일싸게 구매하는 법과 2차는 싸게 오일교환 하는법에 대해 설명한다. 먼저 오일을 교환하려면 자신의 차종에 따른 오일규격표를 확인해야 한다. 아래의 그림은 카니발4세대(KA4)의 오일사양표이다. 보통은 차량을 구매하고 받은 차량설명서에 나와 있고 인터넷검색으로 쉽게 찾을 수 있다. 여기서 주로 확인할 내용은 추천사양 및 용량이다. 추천사양은 5w30, 0w30, 5w40, 0w40등의 오일을 선택한뒤 오일의 등급이 내차에 사용가능한지를 확인해야 하고 사용가능하다면 오일의 용량도 확인해야 한다. 엔진오일의 사양을 확인했으면 엔진오일을 구매를 해야 한다. 보통 많이 사용하는 사이트는 무주지포트, 유진상사, 네이버검색등이 있는데 설명은 무주지포트로 설명한다. 만약 교환하려고 하는 제품이

Naver Blog

자동차 엔진오일 싸게 교환하는 법(오일교환)

#자동차엔진오일 #엔진오일구매 #엔진오일교환 #무주지포트 #유진상사 #공임나라 #합성유교환 이번 포스팅은 자동차엔진오일을 싸게 교환하는 방법(오일교환)에 대해 설명한다. 무주지포트, 유진상사의 경우 공식대리점이 있어서 그곳에서 교환을 해도 되지만 교환이 되지 않는 지역이 많기 때문에 공임나라를 이용하는것을 추천한다. 네이버에서 공임나라를 검색해서 홈페이지로 들어오면 아래와 같은 그림이 나오는데 먼저 회원가입을 먼저한다. 회원가입이 끝나면 로그인한뒤 아래쪽의 정비예약을 클릭한다. 정비예약을 클릭하면 아래와 같은 화면이 나오는데 국산차, 수입차를 선택하고 자신의 지역을 선택한다. 지역을 선택하면 아래와 같이 나오는데 잔유제거를 클릭하고 자신의 위치와 가까운 곳의 정비예약을 클릭한다. 스크롤을 아래로 내리면 아래의 그림과 같이 날자별 예약현황이 나오는데 예약이라고 표시된 날자를 클릭한다. 예약을 클릭하면 아래와 같이 정비예약화면이 나오는데 예약일 및 시간, 차량모델이랑 연식 차량번호, 정

Naver Blog

2023 서울국제주류&와인박람회 사전등록

#서울국제주류박람회 #와인박람회 #박람회사전등록 #위스키 #와인 2023년 6.22(목) ~ 24(토)까지 서울 코엑스에서 주류&와인 박람회를 개최한다. 22년에 15개국 279개의 업체가 참가하였고 부스규모는 378부스 관람객은 40,399명이 방문했다. 세계주류 판매업체들이 참가하는 만큼 다양한 브랜드가 전시될 것으로 예상된다. 상세 행사개요 및 전시품목은 아래의 그림을 참고하길바란다. 동시에 국제맥주전시회와 세계쩐통주페스티벌도 개최되니 볼거리가 많을 것으로 예상된다. 사이드에 방문해서 조기등록을 할 경우 17,500원에 판매를 하고 있으니 관심이 있으신분들은 조기등록을 통해 참여 하면 좋을 것 같다.

Naver Blog

STM32F4 GPIO

#GPIO #STM32F4 #STM32CubeIDE #ST 이번포스팅은 STM32F4의 GPIO에 사용되는 레지스터에 대해 설명한다. GPIOx_MODER GPIOx_MODER레지스터는 GPIO의 Mode를 선택하는 레지스터이다. 32비트레지스터로 구성되어있고 2개의 비트의 값을 변경하여 총 16개의 PIN의 Mode를 선택할 수 있다. Mode는 총4가지로 입려, 출력, Alternate, Analog Mode로 구성되어 있다. Alternate Mode는 GPIO외에 Timer, UART, ADC등의 다른기능으로 사용하는 것이고 Analog Mode는 GPIO를 High Impedance-Analog로 설정하는 것이다. 2개의 비트에 익력되는 값이00이면 입력모드, 01은 출력모드 10은 Alternate기능사용, 11은 Analog Mode로 설정할 수있다. 예를 들어 PA0를 출력으로 PA15를 Analog Mode로 설정하려면 GPIOA_MODER레지스터에 11 00 00

Naver Blog

STM32F4 Interrupts and events(NVIC)

#외부인터럽트 #STM32F #STM32F4 #STM32CubeIDE #ST #NVIC 이번포스팅은 STM32F4의 외부인터럽트에 사용되는 레지스터에 대해 설명한다. ST에서는 NVIC(Nested vectored interrupt controller)라는 용어를 사용하고 있고 Mask가능한 82개의 인터럽트를 가지고 있으며 프로그래밍가능한 16개의 우선순위 설정레빌을 가지고 있다. Datasheet상에는 23개의 외부인터럽트(Reset, Wake-up, Edge Detect등)가 사용가능하고 Pin의 엣지 디텍드로 동작하는 외부인터럽트는 아래의 그림과 같이 EXT0~EXT15까지 총 16개를 사용할 수 있다. 다른 MICOM과 특이한 점은 PortA~PortI중에 어떤 Port에든 연결이 가능하다는 것이다. 아래의 그림에서 EXTI0를 보면 SYSCFG_EXTICR1레지스터의 설정에 따라 PA0~PI0까지 어느 Port에서든 연결이 가능하고 Port0~Port15모두 이와 같은 방

Naver Blog

마흔에읽는동의보감

#마흔에읽는동의보감 #동의보감 #허준 #방성혜 #리더스북 독서 일자 23년 3월 책소개 동의보감, 마흔의 생로병사를 말하다! 100세 장수하는 생활 습관을 담은『마흔에 읽는 동의보감』. 현직 한의사인 저자 방성혜가 본격적으로 노화가 시작되는 시기인 40대에 맞춰《동의보감》을 재해석한 책이다. 본문은 총 2부로 구성되어 있으며, 기억력 저하, 노안, 정력 감퇴, 탈모, 우울증, 분노조절장애 등 40대에 흔히 나타나는 몸과 마음의 병중에 초점을 맞춰 설명하였다. 실제로 저자의 한의원을 찾아온 마흔 환자의 사례를 토대로 마흔의 나이에 느끼는 몸과 마음의 변화에 대해 설명하였으며, 100세 건강을 누리기 위해 40대가 가져야 할 생활습관을 구체적으로 다루었다. 또한 생명이 잉태되는 이치와 삶이 운영되는 이치가 일맥상통함을《동의보감》의 구절에서 찾아 보여주며, 마흔의 삶에 적용할 수 있는 통찰과 지혜를 전한다.(네이버 책소개) 개인적인 생각, 이책을 읽게 된 계기는 인문학책을 찾다가 국내고전

Naver Blog

STM32F4 Main Clock설정방법

#클럭설정#STM32F #STM32F4 #STM32CubeIDE #ST #LSE #LSI #HSE #HSI #PLL #SYSCLK #HCLK 이번포스팅은 STM32F4의 Clock설정에 대해 설명한다. 아래의 그림은 STM32CubeIDE의 클럭설정부분에 있는 그림이다. Datasheet보다 직관적으로 표현하고 있어서 이그림으로 설명한다. 클럭은 LSE(Low Speed External), LSI(Low Speed Internal), HSE(High Speed External), HSI(High Speed Internal) 이렇게 4개가 있으며 상세설명은 아래에서 한다. LSE는 32.768khz의 클럭을 사용하며 주로 RTC(Real Time Clock)에만 사용된다. LSI는 32Khz의 클럭을 사용하며 RTC와 IWDG(Independent Watchdog)의 클럭으로 사용가능하다. RTC는 RTC Clock Mux를 이용하여 HSE_RTC, LSE, LSI의 클럭을 선택할 수

Naver Blog

2023 대한민국 주류대상 시상식 및 시음회

#위스키 #시음회 #와인 #맥주 # 주류시상식 2023년 4월 6일(목) 웨스틴조선호텔에서 대한민국 주류대상 시상식 및 시음회가 있습니다. 위스키, 와인, 맥주 등의 대상 품목을 시음가능하다고 하니 위스키, 와인을 좋아하는 사람들이 많이 참석할 것으로 예상됩니다. 일반인의 경우 18:30~20:30분까지 참여가 가능하고 참가비는 얼리버드기준 22,000원(100명 선착순), 얼리버드이후 33,000원 입니다. 상세내용은 아래의 홈페이지를 확인하시면 됩니다. 대한민국주류대상 sites.google.com 2022년도 수상품들은 아래와 같으며 수상품들을 시음하는 행사도 같이 진행했다고 합니다. 2023년도에는 어떤 제품이 수상할지에 따라 시음가능품도 변경될 예정이니 참고하시기 바랍니다.

Naver Blog

STM32F4 Basic Timers(TIM6 & TIM7)

#BasicTimer #STM32F #STM32F4 #STM32CubeIDE #ST #TIM6 #TIM7 Basic Timers(TIM6 & TIM7) 이번포스팅은 STM32F4의 Basic Timer의 설정에 대해 설명한다. STM32F4에는 16비트의 Up카운터로 자동재시작이 가능한 TIM6과 TIM7이 있다. 아래의 그림에서 보면 이 타이머는 물리적으로 DAC와 연결되어 있어서 DAC의 트리거로도 사용할 수 있다. 내부클럭이 타이머로 입력되고 (CK_INT) 그 클럭을 DAC에 트리거로 사용하거나 프리스케일러(CK_PSC)를 거쳐서 CNT카운터를 Up카운터로(0에서부터 Max까지 증가하는 방식) 동작하고 Auto-reload Register와 CNT값이 같아지면 자동으로 초기화후 카운팅을 다시 시작한다. TIMx_CR1 TIMx_CR1레지스터는 Basic Timer의 동작을 설정하는 레지스터이다. 7번 비트(ARPE)는 자동 Reload의 동작을 Enable/Disable하는

Naver Blog

STM32F4 ADC -1 (Mode설명)

#ADC #STM32F #STM32F4 #STM32CubeIDE #ST #SCANMODE Analog-to-digital converter-1 이번포스팅은 STM32F4의 ADC의 기능에 대해 설명한다. 이번 포스팅에서는 STM32F4의 전반적인 기능만 설명할 계획이고 다음 포스팅은 ADC의 레지스터에 대해 설명한다. STM32F4에는 12Bit레졸루션을 가지고 있으며 최대 19개의 ADC MUX채널이 있어서 16개의 외부 소스, 2개의F 내부소스, VBAT채널의 신호를 측정할수 있다. 아래의 그림 44는 ADC의 블럭다이어그램을 나타낸다. GPIO포트로부터 ADC신호가 입력되고 Injected Channels과 Regular Channels로 연결해서 ADC를 수행한다. 수행된 결과는 Injected Data레지스터 혹은 Regular Data레지스터에 결과값이 저장되거나 DMA에 의해 결과값을 저장할 수 있다. ADC가 완료되면 ADC와 관련된 Flag가 설정되고 각 Flag에

Naver Blog

롯데잇츠 네고왕 이벤트

#롯데잇츠 #네고왕 #무료쿠폰 #롯데리아무료쿠폰 #크리스피무료쿠폰 롯데잇츠앱설치하고 회원가입시 롯데리아버거 및 커피, 크리스피 도넛을 무료로 증정하는 이벤트를 진행중입니다. 쿠팡잇츠앱을 설치하고 실행하면 아래와 같은 화면이 나오는데 회원가입 및 로그인을 하면 자동으로 쿠폰이 등록됩니다. 접속시 아래의 그림과 같이 대기화면에서 비행기모드로 변경한뒤 다시 비행기모드를 취소하면 바로 접속이 가능하니 참고하시기 바랍니다. 회원가입을 하고 쿠폰함에 들어가면 아래의 그림과 같이 쿠폰이 들어와 있는 것을 확인할 수 있습니다. 추가로 쿠폰 발급도 가능하니 50%이상 할인쿠폰은 받아두는게 좋을 것 같네요. 사용기한은 4월 5일까지니 얼른 사용하시길 바랍니다.

Naver Blog

[공유] PDF 전자책 소책자 무료 배포 "쌩초보가 키워드 없이 블로그 이웃 3000명 만드는 단계별 꿀팁"

[공유] PDF 전자책 소책자 무료 배포 "쌩초보가 키워드 없이 블로그 이웃 3000명 만드는 단계별 꿀팁" [출처] PDF 전자책 소책자 무료 배포 "쌩초보가 키워드 없이 블로그 이웃 3000명 만드는 단계별 꿀팁"|작성자 달성 같이 성정하는 블로거가 되는 좋은 자료인것같습니다.

Naver Blog

ST 외부인터럽트 예제 Code

#외부인터럽트 #STM32F407 #STM32CubeIDE #ST예제Code 이번포스팅은 ST MICOM의 외부인터럽트에 대해 설명한다. ST MICOM의 IOC를 더블클릭해서 아래의 그림과 같이 PIN설정을 한다.PA0는 외부인터럽트0으로 PD12는 GPIO Output으로설정한다. 이전에 포스팅인 GPIO의 Push버튼과 LED를 사용할예정이며 Push버튼은 GPIO의 Input으로 사용하지 않고 외부인터럽트를 사용할 계획이다. 아래의 그림처럼 왼쪽 카테고리탭에서 System Core-> GPIO -> PA0 -> 입터럽트 상승엣지에서 인터럽트감지로 설정한다. 이번에는 인터럽트를 NVIC를 아래의 그림처럼 왼쪽 카테고리탭에서 System Core-> NVIC -> 입터럽트 Enable로 설정하고 ALT + K를 눌러서 Code를 생성한다. Code Generator를 이용하여 Code를 생성하면 아래의 그림과 같은 폴더에 Code가 생성되는데 이번에 사용하는 파일은 Main.c와

Naver Blog

ST Timer 예제 Code

#Timer #타이머인터럽트 #타이머 #STM32F407 #STM32CubeIDE #ST예제Code 이번 포스팅은 STM32F4의 Timer에 대한 예제 Code이다. 내부 Timer를 이용하여 1초 주기로 LED를 토글하는 Code에 대해 설명한다. 먼저 LED를 켜기위해 PD12를 GPIO 출력핀으로 설정한다. ST의 Discovery 보드를 사용하며 LED는 다른LED를 사용해도 무방하다. 먼저 Timer의 주기를 선택하기 위해 아래의 그림과 같은 Clock설정화면으로 이동한다. 현재 설정은 16Mhz로 설정을 했으며 Main클럭은 다양하게 선택이 가능하기 때문에 원하는 클럭을 설정하면 된다. 아래는 Timer7의 내부 Timer를 설정하는 사진이고 Activated Mode로 선택하고 프리스케일러를 1600분주 시킨다. 이렇게 하면 Timer7이 16M의 1600분주마다 카운팅이 된다. 16,000,000 / 1,600 = 10000(10us주기) 1초를 만들기 위해서는 카운

Naver Blog

데일 카네기 인간관계론

#인간관계론 #데일카네기 #현대지성 #책읽어드립니다방송도서 독서 일자 22년 3월 책소개 사람의 마음을 사로잡는 가장 빠르고 확실한 방법! 데일 카네기가 전하는 성공하는 인간관계의 비밀 인간관계는 친구를 만들고 적을 만들지 않는 것에서 시작된다. 『데일 카네기 인간관계론』은 이런 인간관계의 핵심을 꿰뚫는다. ‘친구를 만들고, 사람을 설득하는 법’이라는 제목으로 1936년 처음 출간된 데일 카네기의 책은 80년 넘게 수많은 사람들에게 영향을 끼쳐 왔다. 이후에 나온 모든 자기 계발서들이 이 책의 영향을 받았다고 해도 과언이 아니다. 세계적인 투자자 워런 버핏의 인생을 바꾼 책이자, 누구나 꼭 읽어야 할 책이기도 하다. 『데일 카네기 인간관계론』은 가장 단순하고 실용적인 원칙들로 복잡한 인간관계에 대한 우리의 고민을 명쾌하게 해결해 준다. 이 책은 1936년 출간된 초판을 완역해 원전의 맛을 살렸다. 개정판에서 삭제되었던 5부 ‘기적 같은 결과를 낳은 편지들’과 6부 ‘결혼 생활을 행복

Naver Blog

IGBT 업체별 비교(ST vs INFINION)

#IGBT고르기 #IGBT선정 #ST #INFINION #IGW40N60 #STGW39NC60 이번포스팅은 IGBT를 선택하는 경우 업체별로 특성을 비교하려고 한다. IGBT제조업체는 많지만 이번 포스팅은 ST와 INFINION사의 IGBT를 비교하려고 한다. 600V에 40A Spec을 가진 두 IGBT를 비교하며 업체별 장단점을 알아보고 IGBT를 선정하는데 고려사항까지 다루도록 하겠다. 업체 Datasheet가 서로 동일한 파라미터를 설명하지 않아서 비교하기가 어려울수 있는데 동일하고 중요하게 봐야할 부분위주로 비교를 하겠다. 그리고 이왕이면 25의 파라미터 보다는 100의 파라미터위주로 설명한다. 설명은 Symbol이름위주로 설명하니 Symbol명으로 좌우를 비교하면 쉽게 비교가 가능하다. 아래의 표는 업체별 IGBT의 Spec을 비교한 표이다. 먼저 V_CE를 보면 600V로 동일하고 I_C의 경우 40A로 비교한 내용인데 INFINION은 48A로 표시하고 있다. 보통 I

Naver Blog

Safety Function :Flash memory CRC operation function(High Speed CRC)

#RENESAS #RL78 #G14 #기능안전 #SafetyFunction #MemoryCRC #60335 #60730 이번 포스팅은 Memory CRC기능에 대해 설명한다. Flash Memory의 값을 확인하고 Flash Memory의 값이 변경되지 않았는지를 확인하는 기능이다. 안전과 관련된 Code가 Flash Memory에 저장된 경우 이 Code들이 변경이 되었는지를 감지하고 Code가 변경된 경우는 MICOM을 Reset해야 한다. RL78/G14에서는 이러한 Flash Memory값을 확인할 수 있는 기능을 제공하고 있어서 쉽게 구현이 가능하다. CRC는 CRC-16-CCITT를 이용하였는데 CRC를 계산하는 규격화된 방법이다. CRC16-CCITT는 x^16+x^12+x^5+1의 다항식을 사용하고 0x1021(Normal, Reverse, Reversed Recoprocal 3가지 방식이 있는데 Normal을 사용함 )과 XOR연산을 해서 CRC값을 구한다. Data

Naver Blog

Safety Function : CRC operation function (general-purpose CRC)

#RENESAS #RL78 #G14 #기능안전 #SafetyFunction #CRCcheck #60335 #60730 이번에 포스팅할 내용은 일반 CRC기능이다. 이전에 포스팅한 CRC와 방식(CRC316-CCITT)은 동일하지만 사용하는 목적에서 차이가 있다. 이전에 설명한 CRC는 전원이 On된 시점에서 Flash Memory의 정해진 영역에서만 검사가 가능했는데 이번에 설명할 일반CRC는 영역의 구분이 없고 제품이 동작하는 중에도 CRC검사가 가능하다. IEC60730에서는 초기 전원이 인가된 상태에서도 CRC검사를 하지만 제품이 동작하는 동안에서도 검사를 해야 하기 때문에 제품이 동작하는 동안에는 일반 CRC가 사용된다. 데이터값 0x12345678이 입력되었을때 계산되는 과정을 아래의 그림에서 보여준다. 데이터는 비트순서로 반전된 다음 계산되는데 0x12345678이 0x78563412로 바뀐다, 이값을 4비트씩 짤라서 스위치해주고 다항식을 이용하여 계산하면 CRCD에 0x

Naver Blog

초음파 거리측정 센서(SRF05)

#초음파센서 #거리측정센서 #SRF05 #UltraSonic 이번포스팅은 초음파거리센서인 SRF05에 대해 설명한다. 초음파센서는 송신부와 수신부로 구성이 되어 있고 송신부로 부터 초음파를 발생시켜서 물체로부터 반사된 초음파를 수신부에서 수신했을때의 시간을 이용해서 거리를 측정할수 있다. SRF05의 경우는 인식거리는 4m이다. SRF05는 2개의 모드로 사용이 가능하며 Mode1은 아래의 그림과 같이 2개의 핀을 Trigger Input/ Echo Output핀을 이용하여 거리를 측정할 수 있다. 오른쪽의 핀들은 제조사에서 가용하는 핀이기 때문에 사용하지 않는다. 아래의 그림은 SRF05의 Mode1의 타이밍차트를 나타낸다. 약 10us정도의 Trigger신호를 SRF05의 입력핀으로 입력하고 SRF05의 Echo Output핀을 통해 구형파가 나오게 된다. 이구형파의 길이를 측정하여 거리를 계산할 수 있으며 100us~25ms범위로 신호가 출력된다. 아래의 그림은 Mode2로 사

Naver Blog

GY521(MPU6050)자이로가속도센서

#자이로센서 #가속도센서 #GY521 #MPU6050 GY521은 자이로, 가속도계가 각각 3축으로 구성된 센서다. 벨런싱로봇이나 핸드폰의 걸음, 블랙박스의 충격감지 등에 많이 사용되고 있다. 아래의 그림은 GY521의 제품사진을 보여준다. GY521의 내부에 사용되는 CHIP은 MPU6050이고 관련자료를 검색할 경우 MPU6050으로 검색을 하면 많은 자료가 검색된다. MPU6050은 I2C인터페이스(400kHz)를 이용하여 센서의 값을 받을 수 있으며 XDA, XCL핀은 외부 컴파스와 연결하여 사용가능하다. 그리고 자이로스코프는 ±250, ±500, ±1000, ±2000의 스케일범위가 사용할 수 있고 가속도는 ±2g, ±4g, ±8g, ±16g의 스케일범위를 사용할 수 있다. 아래의 그림은 자이로센서의 성능을 보여준다. 여기서 중요하게 볼 내용은 FS_SEL에 따른 LSB이다. 위에서 설명한 것처럼 자이로 센서의 스케일은 FS_SEL의 값을 변경하여 ±250, ±500, ±1

Naver Blog

초음파 거리측정 센서 예제Code(SRF05)

#RENESAS #RL78 #G14 #SRF05Code #르네사스예제Code 이번 포스팅은 SRF05의 예제Code에 대해 설명한다. 1초주기(TAU10)로 10us의 PWM신호(TMRD0)를 발생시키고 Inputcapture(TAU00)로 펄스의 폭을 측정하는 Code이다. Input Capture의 범위가 131.071ms이고 16비트의 값으로 계산되기 때문에 65535에 131071을 나눠줘서 시간값으로 변경해서 사용해야 한다. 스케일은 약 2가 되는데 디지털값이 1이 읽히면 2us라는 의미이고 65535값이 읽히면 131070이되기 때문에 Input Capture에서 읽은 값에 2를 곱하면 시간값을 계산 할 수 있다. 이결과에 58을 나누면 CM로 변경이 가능하다. 1초 Timer설정 Input Capture설정 PWM설정 Main함수 #include "r_cg_macrodriver.h" #include "r_cg_cgc.h" #include "r_cg_timer.h" #in

Naver Blog

ST 개발환경 설치(STM32CubeIDE)

#ST #STM32F407 #STM32CubeIDE #ST개발환경 이번포스팅은 ST MICOM의 개발환경설치방법에 대해 소개하고자 한다. MICOM은 STM32F407을 사용하고 개발Tool은 STM32CubeIDE를 사용할 계획이다. 기존에 가지고 있던 ST사에서 만든 STM32F4DISCOVERY 개발 Kit으로 포스팅을 진행하며 제품사진은 아래와 같다. STM32F4DISCOVERY키트는 보드에 다운로더장비가 같이 아트웍되어 있어서 별도의 디버깅장비가 필요하지 않기 때문에 사용하기 편리하고 인터넷에 4만원 내외로 구매가 가능하다. 먼저 네이버에 ST로 검색해서 아래의 ST MICOM업체 사이트로 접속한다. 검색창에 STM32CubeIDE를 검색한다. 검색결과가 1개 나오는데 STM32CubeIDE를 클릭한다. Get Software를 클릭한다. 아래의 List중에 자신의 운영체제에 맞는 것을 선택한다. (Window를 사용하면 아래의 Get latest를 클릭후 Accept를

Naver Blog

ST-LINK Updata

#ST디버거업데이트 #STLINKUpdate #STM32CubeIDE에서디버 이번 포스팅은 ST MICOM의 다운로드 및 디버깅 장비인 J-Link업데이트 하는 법에 대해 설명한다. 디버거가 오래된경우 업데이트를 하지 않으면 디버깅이 되지 않거나 장비가 검색이 되지 않는 경우가 발생하기 때문에 Updata를 한후에 사용하는 것을 권장한다. 아래의 그림에서 Help-> ST Link Upgrade선택 아래의 그림에서 Device List를 리프레쉬해서 ST-LINK/V2-1을 선택(장비명이 뜨지 않으면 연결확인) 2번의 Open In Update Mode를 클릭 Version정보등을 확인하고 3번의 Updata를 클릭 업그레이드 진행 맨 하단의 Upgrade Successful이 뜨면 완료

Naver Blog

ST IGBT의 특성분석(STGW39NC60VD)

#STIGBT #IGBT #STGW39NC60VD 이번 포스팅은 대전류 스위칭소자로 사용되는 IGBT에 대해 설명한다. IGBT의 제조사는 인피니온, ST, 도시바등 여러업체가 있는데 각업체별로 제조공법에 따른 특성이 다르기 때문에 유사한 IGBT라도 특성을 잘확인해서 사용해야 한다. 이번에 포스팅은 ST의 STGW39NC60VD를 설명할 계획이며 주요파라미터는 동일하기 때문에 이번 포스팅에서 설명하는 파라미터를 확인하여 다른 업체의 IGBT를 선택해도 무방하다. IGBT는 아래의 그림과 같이 Gate에 전압을 인가하여 Collector와 Emitter를 스위칭하며 C와 E에 병렬로 연결되 다이오드로 Off시 방전전류를 방전하도록 구성이 되어 있다. 아래의 테이블2는 IGBT의 정격을 나타내고 있다. V_CES는 콜렉터와 에미터에 걸리는 최대 전압으로 600V가 최대 이기 때문에 600V이하로 사용해야 한다. I_c는 콜렉터에 흐르는 전류인데 여기서 25와 100가 있는데 보호회로

Naver Blog

ST GPIO 예제 Code

#GPIO #ST32F407 #STM32CubeIDE #ST예제Code 이번포스팅은 ST MICOM의 GPIO에 대해 설명하려고 한다. ARM Core를 사용하는 다른 MICOM도 그렇지만 Hal이라는 개념을 사용해서 옛날처럼 레지스터에 직접 값을 쓰거나 하지 않고 ARM에서 제공하는 API함수를 많이 사용한다. 이번에 포스팅할 ST32F407은 STM32CubeIDE라는 개발환경을 사용하는데 ARM에서 제공하는 API함수를 사용한다. GIOP의 개념부분은 이전에 MICOM에 많이 소개를 했기 때문에 생략하고 MICOM의 설정법과 API함수에 대해서만 소개하려고 한다. 먼저 STM32CubeIDE를 실행해서 프로젝트를 생성하면 아래와 같은 MICOM그림을 먼저 볼수 있다. 만약 보이지 않는다면 왼쪽의 포로젝트창에서 프로젝트이름.ioc<< 파일을 더블클릭하면 아래와 같은 그림이 나온다. 이 기능은 이전에 포스팅한 RENESAS의 Code Generator와 동일한 기능이고 GUI로 구

Naver Blog

ST GPIO

#GPIO #ST32F407 #STM32CubeIDE 이번포스팅은 ST MICOM의 GPIO에 대해 설명하려고 한다. ARM Core를 사용하는 다른 MICOM도 그렇지만 Hal이라는 개념을 사용해서 옛날처럼 레지스터에 직접 값을 쓰거나 하지 않고 ARM에서 제공하는 API함수를 많이 사용한다. 이번에 포스팅할 ST32F407은 STM32CubeIDE라는 개발환경을 사용하는데 ARM에서 제공하는 API함수를 사용한다. GIOP의 개념부분은 이전에 MICOM에 많이 소개를 했기 때문에 생략하고 MICOM의 설정법과 API함수에 대해서만 소개하려고 한다. ST 개발환경 설치(STM32CubeIDE) #ST #STM32F407 #STM32CubeIDE #ST개발환경 이번포스팅은 ST MICOM의 개발환경설치... blog.naver.com 프로젝트를 생성하고(프로젝트를 생성하는 방법은 위의 포스팅을 참고) 아래의 그림과 같이 stm32f4xx_hal_gpio.c를 더블클릭해서 GPIO의

Naver Blog

ELC(EVENT LINK CONTROLLER)

#RENESAS #RL78 #G14 #ELC #Eventlink 이번 포스팅은 이벤트 링크컨트롤에 대해 설명한다. ELC는 peripheral과 peripheral을 연결해주는 기능이라고 생각하면 된다. peripheral이란 단어를 많이 쓰진않는데 쉽게 설명하면 MICOM의 기능과 그능을 연결하는 것이라고 생각하면 된다. 예를 들어 ADC를 하고 싶은데 SW트리거가 아니라 HW트리거로 하고 트리거 신호를 외부 인터럽트나 Timer로 사용하는 것을 뜻한다. 즉, MICOM의 어떤 기능을 사용하는데 트리서 신호로 MICOM의 다른 인터럽트를 사용한다는 것이다. 아래의 그림 20-1에서 ELC의 블럭다이어그램을 보여주고 있다. 간략하게 되어있는데 왼쪽의 프리페럴펑션이 이벤트컨트롤로 입력되고 오른쪽의 프리페럴펑션으로 신호가 전달된다.(프리페럴이라고 부르지 않고 기능이라고 부르겠음) 위에서 설명한 것과 같이 서로다른 기능들을 연결하여 트리거 신호로 사용된다고 볼수 있다. 아래의 테이블20-

Naver Blog

ELC(EVENT LINK CONTROLLER) 예제Code

#RENESAS #RL78 #G14 #ELC #예제코드 이번 포스팅은 ELC의 예제Code에 대해 설명한다. ELC의 설명은 이전포스팅을 참고하길 바란다. ELC(EVENT LINK CONTROLLER) #RENESAS #RL78 #G14 #ELC #Eventlink 이번 포스팅은 이벤트 링크컨트롤에 대해 설명한다. ... blog.naver.com 이번에는 DAC기능과 Timer를 연결하여 Timer의 컴페어매치시점마다 DAC가 동작하도록 Code를 구성했다. 아래의 그림은 ELC의 Code Generator를 보여준다. 그림에서와 같이 DA0와 DA1을 TAU(타이머)00과 TAU01에 연결하였다. 아래의 그림처럼 ELC로 설정가능한 기능들이 나열되어 있고 이벤트발생소스를 선택(0~25)하여 연결 가능하다. DAC0, DAC1사용 TAU00설정(1000ms) TAU01설정(500ms) Main함수 #include "r_cg_macrodriver.h" #include "r_cg_c

Naver Blog

LVD(Low Voltage Detector)

#RENESAS #RL78 #G14 #LVD #VoltageDetector 이번포스팅은 LVD에 대해 설명하려고 한다. LVD는 Low Voltage Detector로 MICOM의 VDD전압을 내부 비교기에서 감지해서 설정한 전압값보다 작은 경우 인터럽트를 발생시키거나 MICOM을 Reset하는 역활을 한다. 보통 SMPS를 설계해서 전원을 공급하는 경우 5V단에 피드백을 한다면 문제가 없지만 스위칭소자를 스위칭하는 제품에 사용되는 경우 12V나 15V정도의 스위칭전압에 피드백을 하고 5V는 전압레귤레이터로 만드는 경우가 많다. 이경우 5V레귤레이터가 5V를 출력하기 위해서는 조금더 큰전압이 필요한데 부하가 동작하는 시점에서 전압이 Down되고 5V수준의 전압이 레귤에이터로 입력이 되면 VDD가 떨어져서 MICOM이 오동작을 하게 된다. 그래서 LVD를 설정해서 MICOM을 Reset하거나 인터럽트를 걸어서 전압이 Down되는 것을 감지한다.아래의 그림은 LVD의 블럭 다이어그램을

Naver Blog

LVD(Low Voltage Detector) Code

#RENESAS #RL78 #G14 #LVD #VoltageDetector 이번 포스팅은 LVD의 예제Code를 설명한다. LVD의 Code Generator설정은 아래그림과 같다. Mode는 인터럽트 & Reset Mode로 설정하고 인터럽트레빌은 3.06V, Reset레벨은 1.84V로 설정했다. 예제Code는 3.06이하 1.84이상인 경우는 인터럽트에서 Port P43을 1로 만들고 1.84V미만으로 떨어지는 경우는 MICOM이 Reset되도록 설정하였다. 아래의 그림은 LVD를 설정한뒤 Option Byte값을 확인한 결과이다. Option Byte에는 LVD외에 다른 기능설정도 있기 때문에 동일한 값이 나오지 않을 수 있으며 DataSheet의 해당하는 값을 확인해야 한다. 설정값을 읽어보면 아래의 표와 같다. 녹색이 Watchdog, 노랑이 LVD, 파랑이 Main클럭이다. LVD설정값과 비교한경우 동일한 설정을 확인 할 수 있다. Main설정 #include "r_cg

Naver Blog

Reset Function

#RENESAS #RL78 #G14 #Reset #MICOM리셋기능 이번 포스팅은 리셋기능에 대해 설명한다. 리셋기능은 MICOM의 이상동작을 감지한 경우 MICOM을 안정화 시키기 위해 초기화하는 기능이며 RL78G14에는 아래와 같이 7개의 리셋기능이 있다. 외부 리셋핀 와치독타이머 파워온리셋 저전압감지 RAM 페리티에러 명령어 오류 잘못된 메모리접근 리셋신호가 발생하면 00000H와 00001H주소부터 프로그램이 재시작한다. 아래의 그림은 리셋기능의 블럭 다이어그램을 보여주고 있으며 위의 7가지 리셋소스에 의해 MICOM을 리셋하고 리셋과 관련된 레지스터에 정보를 전달한다. 아래의 그림24-2는 외부 리셋핀에 의한 타이밍차트를 보여준다. 클럭들이 동작하고 외부리셋이 동작하면(High에서 Low로 신호가 떨어짐) 클럭들을 멈추고 리셋이 풀리면 일정시간뒤에 클럭이 동작한다. 그림에서와 같이 클럭이 정상적으로 발진하는데 시간이 걸리기 때문에 클럭설정시 지연시간을 줘서 클럭이 안정화되

Naver Blog

POWER-ON-RESET CIRCUIT

#RENESAS #RL78 #G14 #Reset #Poweronreset #파워온리셋 이번에 포스팅할 내용은 파워온리셋에대해 설명한다. 이전에 설명한 리셋과 유사한데 조금더 상세한 설명이라고 보면된다. 파워온 리셋이 중요한 이유는 MICOM에 전원이 공급되고 클럭과 여러가지 기능들이 동작하기 까지 안정화 시간이 있어야 하는데 이런 안정화와 관련된 타이밍을 보여준다. MICOM에 5V를 입력하겠지만 내부코어들은 그보다 낮은 전압에서 동작하기 때문에 전압별로 어떤 기능들이 동작하는지를 파악하면 MICOM의 이상동작시 분석이 가능하다. 이전에도 설명했지만 SMPS를 사용하는 제품의 경우 부하가 동작하면 전압이 다운되는데 5V라인이 떨어질수도 있기 때문에 LVD와 같은 기능을 사용해서 MICOM을 리셋해줘야 한다. 아래의 그림25-2~4는 리셋동작별로 타이밍차트를 보여준다.(그림이 3개인데 크게 다른내용은 없음)파워온리셋은 전원이 켜질때 리셋신호를 생성하고 VDD전압이 V_POR을 넘을 때

Naver Blog

소크라테스 익스프레스(철학이 우리 인생에 스며드는 순간)

#소크라테스익스프레스 #철학이우리인새에스며드는순간 #에릭와이너 #김하현 #어크로스 독서 일자 22년 2월 책소개 “인생에서 길을 잃는 수많은 순간마다 이 철학자들의 목소리가 들려올 것이다” 《소크라테스 익스프레스》는 마르쿠스 아우렐리우스부터 몽테뉴까지 역사상 가장 위대한 철학자들을 만나러 떠나는 여행기이자, 그들의 삶과 작품 속의 지혜가 우리 인생을 개선하는 데 어떻게 도움이 되는지 답을 찾아가는 책이다. 매력적인 글솜씨로 “빌 브라이슨의 유머와 알랭 드 보통의 통찰력이 만났다”는 평가를 받는 에릭 와이너가 이 여행의 동반자로 나선다.(네이버 책소개) 개인적인 생각, 이책은 저자가 철학자들이 살던곳에 여행을 다니면서 철학자들처럼 생각하고 철학자들과 대화를 하는것처럼 서술한다. 마르쿠스, 소크라테스, 루소, 간디, 공자, 니체등 여러 철학자들이 소개되고 있고 저자의 딸과 같이 여행을 하는 이야기도 나온다. 솔직히 철학이라는 것이 무엇이냐고 정의를 못한상태에서 이책을 읽었고 책에서 소개

Naver Blog

Safety Function(ADC)

#RENESAS #RL78 #G14 #기능안전 #Safetyfunction #ADCcheck #60730 #60335 이번 포스팅은 IEC60730규격에서 많이 사용되는 ADC Check기능에 대해 설명하고자 한다. ADC체크는 AD변환기, 아날로그입력채널, 온도센서의 +기준전압과 -기준전압을 ADC하여 ADC모듈이 정상적으로 동작하는 지를 확인한다. ADC는 보통 센서의 값을 센싱하거나 전압, 전류를 감지하는 기능으로 사용되는데 이러한 기능이 오돌작을 일으키면 안되는 제품(사람에게 상해를 일으키는 제품)에서 ADC기능을 사용하고 있다면 ADC체크를 필수로 해야지만 제품규격을 취득할 수 있다. 아래의 그림은 AD Test의 기능을 나타내고 있다. ADC Check에 사용되는 내부 1.45V전압과 VSS, VDD전압을 ADC를 해서 검사할 수 있다. ADTES레지스터는 ADC테스트에 사용되는 소스를 선택하는 레지스터다. ADTES1과 ADTES0을 0으로 설정하면 ANIxx/온도센서/

Naver Blog

Safety Function(Frequency Detection Function)

#RENESAS #RL78 #G14 #기능안전 #SafetyFunction #주파수검사 #60335 #60730 이번포스팅은 RL78 MICOM의 주파수감지기능에 대해 설명한다. 주파수감지기능은 IEC60730표준에서 요구하는 기능으로 MICOM에 사용되는 Clock의 이상유무를 감지하는 기능이다. 1초마다 Error검사를 하는 로직이 있는 경우 1초라는 시간이 중요하다고 판단되면 이기능을 이용하여 1초가 어느정도의 오차를 가지고 있는지를 확인해야 한다. 오차범위를 벗어나는 경우는 MICOM Reset을 해야 한다. 아래의 그림27-13은 주파수감지기능의 블럭다이어그램을 보여준다. Datasheet상에는 2개의 방법을 소개하고 있는데 첫번째 방법은 F_CLK를 TAU의 Input Capture에 입력해서 F_CLK의 길이(주파수)를 측정하는 방식이다. 두번째 방식은 F_IL을 TAU의 Input Capture에 입력해서 F_IL의 길이(주파수)를 측정하는 방식이다. 여기서 주의해야

Naver Blog

Safety Function(I/O Output Test)

#RENESAS #RL78 #G14 #기능안전 #Safetyfunction #IOCheck #60730 #60335 이번 포스팅은 IEC60730규격에서 많이 사용되는I/O Check기능에 대해 설명하고자 한다. I/O핀의 디지털출력신호레벨감지기능을 사용하면 포트가 출력모드로 성정된 경우 핀의 출력값이 뭔지 읽을 수 있다. 예를 들어 Port로 1을 출력하라고 한경우 포트에 1을 출력하는 레지스터인 P01(예를들기위해 P1로 설명함)에 값을 읽고 현재 출력되는 디지털출력값을 읽어서 서로 같은지를 확인하여 출력이 이상이 없다는 것을 확인한다. 아래의 PMS레지스터는 포트의 상태를 확인하는 레지스터이다. PMS0비트의 값을 0으로 설정하면 현재 Port의 입출력이 어떤상태로 설정된지(출력의 경우 0으로 읽힘)를 읽을 수있고 1로 설정하면 현재 Pin의 출력상태를 읽을 수있다. Port의 출력상태를 검증하는 순서는 아래와 같다. PMS레지스터의 PMS0비트에 0을 써서 Port가 출력상태

Naver Blog

IICA(I2C)

#RENESAS #RL78 #G14 #IICA #I2C 이번포스팅은 RENESAS의 I2C에 대해 설명하려고 한다. I2C의 기본동작 원리는 아래의 포스팅을 참고하길 바란다.(ATMEGA128로 설명함) ATMEGA128 TWI(I2C) #ATMEGA128 #I2C #TWI #SERIAL #씨리얼통신 #2WIRE 이번 포스팅은 ATMEGA128의... blog.naver.com PER0레지스터는 여러가지 HW Module에 클럭을 공급하는 레지스터다. 4번비트와 6번비트는 I2C 모듈에 클럭을 공급하는 비트로 1로 설정하는 경우 I2C0번과 I2C1번을 사용 할 수 있다. IICCTLn0레지스터는 I2C를 Enable/Disable하고 클럭을 설정하는데 사용되는 레지스터이다. 먼저 IICEn비트는 I2C를 Enable/Disable하는 비트로 1로 설정하는 경우 Enable된다. LRELn비트는 통신을 종료하고 대기모드로 동작하는 비트이다. 0인 경우는 일반동작이고 1로 설정하면 현

Naver Blog

Watchdog Timer

#RENESAS #RL78 #Watchdog 이번포스팅은 Watchdog Timer에 대해서 설명한다. Watchdog Timer는 MICOM의 이상을 감지하는데 사용하는데 MICOM의 Main클럭이 죽거나 Program Counter가 멈추거나 프로그램이 정상적으로 동작하지 않는 경우 MICOM을 RESET하는 용도로 사용된다. 아래의 그림에서 보는것과 같이 Watchdog Timer가 설정된 시간이 지나면 Reset시그널을 발생시켜서 MICOM을 Reset한다. 그리고 WatchDog에 사용되는 Timer는 Main클럭과 다른 클럭을 사용해야 Main MICOM의 이상을 감지할 수 있다.(Whtchdog은 Low-on-chip oscillator clock을 사용) 특이한게 RENESAS RL78 MICOM의 WatchDog은 레지스터로 설정하는 것이 아니고 OptionByte로 설정이 가능하다. 아래의 CS+컴파일러 그림에서 왼쪽의 빌드툴을 더블클릭하고 Link옵션에 User

Naver Blog

Watchdog Timer Code

#RENESAS #RL78 #G14 #Watchdog #예제코드 이번 포스팅은 WatchDog Timer의 예제코드에 대해 설명한다. 아래의 그림은 Code Generator의 Watchdog설정이다. 특별한 것은 없고 오버플로우시간, 윈도우오픈주기만 설정하면된다.(인터럽트를 사용하려면 인터럽트클릭) 보통 Watchdog은 Main함수의 While루프에 넣어서 사용하는데 MICOM의 전반적인 동작이 Main함수의 While루프에서 동작하기 때문이다. 물론 인터럽트도 있다. Main문이 돌아가다가 인터럽트가 걸려서 Main문의 Watchdog을 Reset해주지 못하는 경우가 발생하기 때문에 While루프의 맨 마지막에 넣어서 사용한다. 이전 포스팅에서 설명한 것과 같이 Watchdog은 Option Byte를 이용하여 설정하기 때문에 아래의 그림처럼 컴파일러의 옵셥을 사용하여 설정한다.(정확한 설정법은 이전포스팅 참고) Watchdog Timer #RENESAS #RL78 #Watch

Naver Blog

SLA7024 Datasheet분석(스테핑모터드라이버)

#SLA7024 #SLA7026 #SLA7029 #스테핑모터드라이버 #SLA7024분석 이번 포스팅은 스테핑모터에 많이 사용되는 SLA7024에 대해 설명하겠습니다. SLA7024는 유니폴라 방식(스테핑모터에 대한 내용은 추후 포스팅할 예정이며 이번 포스팅에서는 모터드라이버위주의 설명을 진행할 예정입니다.)의 스테핑모터를 사용하기위한 모터드라이버IC로 많이 사용됩니다. 먼저 주요 Spec에 대해 알아보겠습니다. SLA7024는 연속적으로 1.5A의 출력을 사용할 수있고 Peak전류는 3A까지 허용합니다. FET출력전압은 최대100V까지 사용가능한데 일반적인 스테핑모터를 사용하신다면 12V의 출력으로 구동이 가능합니다. 그 외에도 저항과 캐패시터를 이용하여 Off Time Delay를 설정가능하고 출력전류를 센싱하여 출력전류를 제한하는 기능도 가지고 있습니다. 아래의 그림은 SLA7024의 블럭 다이어그램을 나타내고 있습니다. 아래의 그림1은 1개의 드라이빙 회로를 나타내고 있으며 그

Naver Blog

2월 10일 GS더프레시 위스키 오픈런 발베니 맥캘란 김창수

#GS위스키오픈런 #김창수위스키 #맥캘란 #발베니 #김창수 #우드포드 #글랜피딕 내일 2월10일 금요일 GS더프레시 오픈런을 진행합니다. 카카오페이로 할인 가능하며 위스키별판매매장이 있으니 참고하셔서 구매하시기 바랍니다.

Naver Blog

자녀교육 베스트 100

#자녀교육 #가토노리코 #서사원 #하버드추천 #시카고대학교추천 독서 일자 22년 2월 책평가 자녀교육에 필요한 내용을 간결하게 나열하였고 여러 논문과 조사자료를 예시로 들고 있다. 중요한 문구는 줄이 그러져 있어서 책을 읽을 시간이 없거나 간단하게 읽고 싶은 경우 각 책터의 제목과 줄이 그어져 있는 부분만 읽어도 괜찮을 것 같다. 아이의 커뮤니케이션을 키우는법, 사고력을 키우는법, 자존감을 키우는 법, 창의력을 키우는 법, 학력을 높이는 법, 체력을 키우는 법으로 대분류되어 있으며 책을 읽을 때 순서와 상관없이 책을 읽는 사람이 관심이 있는 부분을 먼저 읽을 수 있어서 가볍게 읽기 좋은 책인 것 같다. 개인적인 생각, 자기개발서나 인문학책만 읽다가 처음으로 자녀 교육에 대한 책을 읽게 되었다. 과연 나는 좋은 부모인가? 좋은 아빠인가를 생각해봤을 때 책에서 나오는 내용의 3분의 1도 지키지 못하고 있다는 생각이 들었다. 아이가 말을 할때 진심어린 눈빛으로 대답을 해주었는가, 아이가

Naver Blog

SPI통신이란?

#SPI #시리얼통신 이번 포스팅은 SPI통신에 대해서 설명하려고 합니다. 먼전 SPI는 Serial Peripheral Interface의 약자로 직렬주변기기 통신입니다. 이전에 포스팅한 UART, I2C와 함께 시리얼통신(직렬통신)에서 많이 사용되는 기법입니다. SPI는 아래의 그림과 같이 1개의 Master, 다수의 Slave와 통신을 할 수 있으며 클럭, MISO(Master Input Slave Output), MOSI(Master Output Slave Input), SS(Slave Select)이렇게 4개의 신호선으로 통신을 하는 Full-Duplex통신입니다. 이전에 설명한 UART와 I2C는 Master와 Slave간의 통신에서 단방향으로만 통신이 가능한데(무전기와 같이 한사람이 통신을 하고 있으면 상대방은 통신을 하지 못함) SPI는 Full-Duplex방식이라서 양방향통신(핸드폰 통화처럼 두사람다 말을 할 수 있음)이 가능합니다. 아래의 그림은 SPI의 통신 선

Naver Blog

MyGyro300SPI

#MyGyro300 #SPI #MyGyro300SPI #Gyro센서 #자이로센서 #각속도센서 이번 포스팅은 WITHROBOT사의 MyGyro300SPI에 대해 설명하려고 합니다. 10년전에 자이로 센서와 ARM Cortex-M3보드판매로 인기가 있는 회사였는데 요즘은 센서류는 판매를 하지 않고 있는 것 같습니다. SPI통신을 해보려고 찾다가 SPI가 되는 센서가 있어서 선택하게 되었구요. 당근카폐에 중고로 매물이 간혹 있는것 같습니다.(요즘은 워낙 값이 싼 MEMS제품이 많이 나와서 인기가 없는 듯 합니다.) 아래의 그림은 MyGyro300SPI의 제품사진과 핀 Map을 보여주고 있습니다. 총 16핀으로 구성되어 있고 5~8번핀이 SPI통신과 관련된 부분입니다. 센서를 소개하는 목적보다는 SPI통신을 설명하는 방향으로 진행할 계획이니 참고하시고 보시면 될 것 같습니다. 5번핀은 CS(SS)로 Slave Select핀이고 6번핀은 DIN (Master Output Slave Input

Naver Blog

MyGyro300SPI

#RENESAS #RL78G14 #RL78 #SPI #자이로센서예제 #Mygyro300 이번포스팅은 MyGyro300SPI의 예제코드에 대해 설명하려고 합니다. TAU를 사용하여 10ms타이머 인터럽트를 만들고 10ms마다 MyGyro300SPI로 통신을 하는 Code입니다. CS는 GPIO의 P156을 사용하였고 CLK는 P30(SCK00), MISO는 P51(SO00), MOSI는 P50(SI00)을 사용하였습니다. Code Generater Clock설정 Code Generater Port설정 Code Generater SPI설정 Code Generater Timer설정 Main Code #include "r_cg_macrodriver.h" #include "r_cg_cgc.h" #include "r_cg_port.h" #include "r_cg_serial.h" #include "r_cg_timer.h" #include "r_cg_wdt.h" #include "r_cg_use

Naver Blog

SPI

#RENESAS #RL78G14 #SAU #SPI #씨리얼통신 RL78/G14에는 Serial Array Unit이라는 용어로 사용되는데 이기능은 UART, I2c, SPI를 통칭해서 사용하는 용어입니다. 씨리얼통신의 경우 대부분 유사한 방식을 사용하기 때문에 SAU기능으로 묶에서 사용하는듯 합니다. 이번 포스팅은 SPI(CSI라고 되어 있는데 그냥 SPI라고 사용함)에 대해서 설명합니다. 현재 사용하는 100Pin기준으로 SPI는 까지 총3개가 있고 핀수에 따라 다르기 때문에 아래의 그림을 참고하길 바랍니다. 다음은 레지스터에 대한 설명이다. 이전에 설명한 UART의 레지스터와 동일한 레지스터를 사용하기 때문에 이전 UART포스팅과 겹치는 부분이 많으니 참고하시기 바랍니다. Peripheral enable register 0 (PER0) PER0레지스터는 Peripheral에 Clock공급여부를 설정하는 레지스터입니다. SUA0EN, SUA1EN비트를 1로 설정하면 Clock이 S

Naver Blog

SPI파형 분석방법

#SPI파형분석 #SPI #시리얼통신파형 #파형분석 #MyGyro300SPI 이번 포스팅은 SPI의 파형을 분석하는 방법을 소개하려고 한다. 이전에 포스팅한 Mygyro300SPI를 이용하여 SPI통신을 하였고 MICOM설정은 RENESAS RL78G14를 사용하였다.(센서와 Code포스팅은 아래를 참고하시기 바랍니다.) MyGyro300SPI포스팅 MyGyro300SPI #MyGyro300 #SPI #MyGyro300SPI #Gyro센서 #자이로센서 #각속도센서 이번 포스팅은 WITHR... blog.naver.com MyGyro300SPI Code포스팅 MyGyro300SPI #RENESAS #RL78G14 #RL78 #SPI #자이로센서예제 #Mygyro300 이번포스팅은 MyGyro300SP... blog.naver.com 통신주기는 10ms로 설정하여 통신을 하였고 아래의 그림은 SPI통신파형을 오실로스코프를 이용하여 측정한 사진이다. 노랑색이 CLK신호선이고 하늘색이 MO

Naver Blog

포토커플러(LTV817)

#포토커플러 #LVT817 #포토커플러원리 이번 포스팅은 포토커플러(포토커플러의 종류는 많지만 LTV817에 대해 설명하려고 한다.)에 대해 설명하려고 한다. 아래의 그림은 포토커플러의 내부구성을 보여주고 있다. 포토커플러는 주로 1차측과 2차측의 절연을 목적으로 사용되며 1차측의 발광부 2차측은 수광부로 되어 있어서 1차측의 신호를 2차측으로 전달하는 과정에서 빛으로 전달하기 때문에 절연이 되는 장점이 있다. 포토커플러 Datasheet를 확인해보면 원리가 간단해서 별다른 설명이 없다. 포토커플러에 대한 설명(글로 작성된)은 없지만 중요하게 봐야 할 부분은 표와 그래프들이다. 아래 부터는 표의 내용과 그래프위주로 설명을 할예정이다. 아래의 표는 포토커플러의 최대 정격에 대한 내용을 보여주고 있다. IF는 포워트 전류로 1차측에 흐르는 최대 전류이다. 50mA를 넘지 않도록 설계해야 하며 이값은 1차측에서 사용하는 저항값을 변경하여 조절 할 수 있다.(스위칭을 TR로 하는 경우는 T

Naver Blog

I2C파형 디버깅방법

#I2C #파형분석 #I2C파형분석 #I2c디버깅 이번포스팅은 I2C의 파형분석에 관한 내용을 설명하려고 합니다. 파형분석전에 기본적으로 I2C통신에 대해 기본개념을 알아야 하기때문에 아래의 포스팅을 한번 보고 오시는걸 추천드립니다. https://blog.naver.com/kiss103007/222990578978 ATMEGA128 TWI(I2C) #ATMEGA128 #I2C #TWI #SERIAL #씨리얼통신 #2WIRE 이번 포스팅은 ATMEGA128의... blog.naver.com 먼저 I2C의 설정에 대해 설명하겠습니다. 특별한 것은 없고 I2C의 주파수는 100Khz를 사용하였고 Slave마다 통신 속도 및 Address, 동작 Data명령이 다르기 때문에 Slave로 사용한 디바이스의 Spec을 확인해서 Address와 data를 설정해주면 됩니다. 저는 MPU6050(자이로센서)을 사용하였고 Address는 0xD0, Data는 0x1A와 0x05를 보냅니다. 아래의

Naver Blog

거인의 포트폴리오

#거인의포트폴리오 #경제적자유 #분산투자 #강환국 #신진오 #페이지2북스 독서 일자, 23년 1월 책평가, 인생포트폴리오를 만들기 위한 투자시스템을 소개하는 책으로 자산배분전약과 마켓타이밍기법을 소개한다. 사람은 주식투자에 있어서 원숭이와 같으며 자신은 다른사람과 다르다는 생각을 가지고 있어서 분산투자보다는 몰빵투자를 하는 경향이 많으며 저자가 소개한 포트폴리오에 손해가 나면 포트폴리오를 변경하거나 투자를 접는 사람이 많다고 소개 한다. 이책은 주식투자를 전문적으로 하지 않는 일반인부터 투자에 관심이 많은투자자들이 참고할 수 있는 전반적인 투자전략을 챕터별로 나누어서 소개한다. 개인적인 생각, 책을 읽고 리스크를 최소화하고 돈을 버는 것보다 잃지 않는 것이 더 중요하다는 말이 기억에 남으며 주식, 금, 부동산등 여러가지 자산에 투자를 하려면 투자 전문가를 통해서 투자를 해야 한다고 생각했는데 그인식을 많이 바꿔준 책인다. 개인적으로 주식이나 투자에 대한 공부를 많이 하지 않아서 용어

Naver Blog

세븐일레븐 어플 양주 오픈런 맥캘란, 발베니 재고 검색법

#세븐일레븐양주 #세븐일레븐오픈런 #세븐일레븐 #세븐일레븐어플 #세븐일레븐맥캘란 #세븐일레븐발베니 #세븐일레븐재고검색 이번 포스팅은 세븐일레븐 2월 위스키행사에 대한 내용이다. 2월1일부터 2월28일까지 발베니와 맥캘란을 판매하는 행사를 진행중이다. 현장에서 카카오페이로 결제시 15%할인까지된다. 솔직히 할인보다는 물량이 없어서 못사는 지경이기 때문에 오픈런이 예상되며 오픈런시 매장에 재고 상황을 파악하는 방법을 소개한다. 먼저 구글스토어에서 세븐일레븐 App을 다운받는다. App을 실행시켜서 아래의 그림의 부분을 클릭한다. 다음 화면에서 아래의 그림의 우리 동네 상품찾기를 클릭 다음 화면의 오픈런 위스키 찾기 클릭 다음 화면의 발베니 혹은 맥캘락을 클릭 아래의 지도화면이 나오면 지도를 이동하면서 재고확인(화면을 많이 이동하니 화면이 보이지 않는 현상이 발생하는데 이경우 처음부터 다시 검색하면 됨) 아직 김해에는 재고가 없는데 수시로 재고를 확인해야 겠다. 포스팅을 보신분들은 오픈런

Naver Blog

ACM0802(8X2 Character LCD)제어 Code

#RL78G14 #SampleCode #ACM0802 #TXTLCD 이전에 포스팅한 ACM0802의 Sample Code를 소개한다. 2라인모드에 5X7dot, 4bit통신, 커서 On, 블랭크 On커서이동 증가, 디스플레이 쉬프트 하지 않음으로 설정하였다. Clock설정 #include "r_cg_macrodriver.h" #include "r_cg_cgc.h" #include "r_cg_userdefine.h" void R_CGC_Create(void) { /* Set fMX */ CMC = _00_CGC_HISYS_PORT | _00_CGC_SUB_PORT | _00_CGC_SYSOSC_DEFAULT | _00_CGC_SUBMODE_DEFAULT; MSTOP = 1U; /* Set fMAIN */ MCM0 = 0U; /* Set fSUB */ XTSTOP = 1U; OSMC = _10_CGC_RTC_CLK_FIL; /* Set fCLK */ CSS = 0U; /* Set fIH

Naver Blog

ACM0802(8X2 Character LCD)제어

#ACM0802 #8X2LCD # CharacterLCD # 이번 포스팅은 Character LCD제어에 대해 소개하려고 합니다. 이번에 사용될 LCD는 ACM0802(8X2) LCD Module로 저가형 LCD모델입니다. 아래의 그림은 ACM0802 LCD의 블럭 다이어 그램입니다. U1은 외부 Pin의 정보를 전달받는 IC이고 IC에서는 4~14번 Pin의 정보를 감지하여 LCD로 신호를 보내서 LCD에 문자를 Display합니다.(BackLight기능은 사용하지 않음) 아래의 Table은 ACM0802 LCD의 Pin정보를 나타냅니다. 먼저 1번과 2번은 ACM0802 LCD의 전원이고 3번은 LCD의 contrast조절하는 핀이라고 하는데 정확히는 모르겠고(아시는 분은 댓글좀 달아주세요) 이번에는 사용하지 않았다. 4번핀은 Register Select핀으로 ACM0802 LCD에 내장된 DDRAM에 Data를 쓰거나 읽는 경우에 사용합니다. 5번핀은 Data를 읽은 건지 쓸건

Naver Blog

IR 거리감지 센서(GP2Y0A21)

#IR센서 #거리감지센서 #GP2Y0A21 #SHARP 이번 포스팅은 IR거리감제 센서에 대해 설명하고자 합니다. IR센서의 원리는 아래그림의 블럭다이어그램에서 보는 것과 같이 적외선 송신부(LED)에서 적외선을 보내게 되고 물체에 의해 반사되어 다시 되돌아 오는 적외선을 수신부(PSD)에서 수신받아 송신과 수신으로 부터의 시간을 계산하여 거리를 측정하는 원리입니다. 적외선을 쏘거나 수신받는 기능은 GP2Y0A21모듈에서 자체적으로 수행하기 때문에 센서를 사용하는 경우 거리에 따른 출력파형만 센싱하면 간편하게 거리를 측정할 수 있습니다. 아래의 그림은 IR거리감지 센서의 Pin정보를 나타내고 있습니다. 제품의 핀의 역확은1번핀은 출력핀(GP2Y0A21의 경우 Analog출력, GP2Y0D21은 Digital 출력이고 이번에는 Analog출력을 사용), 2번핀은 Gnd, 3번핀은 Vcc로 사용됩니다. 위의 동작원리에서 설명한 것과 같이 GP2Y0A21은 Analog출력이기 때문에 1번

Naver Blog

IR 거리감지 센서(GP2Y0A21) Code

#RENESAS #RL78G14 #IR센서예제코드 #예제코드 #GP2Y0A21 이번 포스팅은 IR거리감지 센서를 이용하여 거리를 측정하는 예제코드를 설명하겠습니다. IR센서의 원리에 대해서 먼저 읽어보고 오시는것을 추천드립니다.(아래의 포스팅참고) IR 거리감지 센서(GP2Y0A21) #IR센서 #거리감지센서 #GP2Y0A21 #SHARP 이번 포스팅은 IR거리감제 센서에 대해 설명하고자 ... blog.naver.com 먼저 프로그램에 대해 간단하게 설명하면 TAU(Timer Array Unit)를 이용하여 100us인터럽트를 발생시키고 인터럽트서비스루틴에서 ADC를 해서 거리별 ADC전압값을 측정하였습니다. ADC설정은 아래의 그림을 참고하시면 됩니다. 10bit Resolution을 사용하였고 SW Trigger모드로 설정, 원샷모드, AD채널은 14번을 사용하였습니다. 시험방법은 거리별에 따라 전압값을 오실로스코프로 측정하고 RL78/G14의 ADC기능을 이용하여 ADC값도

Naver Blog

마케팅이다(This is Marketing)

#This is Matketing #세스고딘 #쌤엔파커스 독서 일자, 23년 2월 책평가, 현대 사회는 너무 많은 정보에 노출되어 있다. 많은 정보중에 소비자가 원하지 않는 여러정보가 있으며 마케팅을 하는 사람들은 의미 없는 스팸메일과 문자를 보낸다. 인터넷이 발달하기 초반에는 이런 마케팅이 통했겠지만 이제 소비자는 조금더 현명해졌기 때문에 소비자의 마음을 움직여야 한다. 책의 초반에 마케팅을 정의하는 경우 "누구를 도울 것인가?"라고 저자는 정의한다. 마케팅은 나를 위한다기보다 소비자가 무엇을 원하는지 마케팅으로 인해 소비자들의 어떤 이득을 얻을 수있는지를 고려해야 한다고 소개된다. 이 책은 현대 사회에 살아가는 마체터들에게 어떻게 마케팅을 해야하는가와 무엇을 해야 하는가를 잘 알려주는 책인 것 같다. 개인적인 생각, 마케팅이란 무엇일까? 제품을 홍보하는 것? 나를 알리는것? 블로그를 하는것? 인스타를 하는것? 내가 이 책을 읽기 전에는 마케팅의 정의를 위와 같은 뜻으로 많이 해석

Naver Blog

Analog Comparator

#ATMEGA128 #SampleCode #AVRSTUDIO Comparator Code Comparator의 출력상태가 변경될 때마다 인터럽트가 발생하고 PG0를 토글하는 Code #include <avr/io.h> #include <avr/interrupt.h> void main(void) { DDRG = 0x01; // 포트 PC0 출력 설정 DDRE = 0b00000000; // AIN0(PE2), AIN1(PE3) 입력 설정, ACSR = 0b00001000; // 아날로그 비교기 인터럽트 인에이블 ACIE='1', Rising Edge 인터럽트 발생 SREG = SREG | 0x80; // 전역 인터럽트 플래그 셋 while(1); } // 아날로그 비교기 인터럽트 처리 함수 SIG(ANALOG_COMP_vect) { PORTG ^= 0x01; // AIN0 >= AIN1 }

Naver Blog

DAC(Digital Analog Converter)

#RL78G14 #SampleCode DAC Normal Mode 1초 Timer인터럽트서비스루틴안에서 DAC값을 변경 DAC Normal Mode로 설정 DAC값 0으로 초기화 Timer 설정(1초 주기) Main #include "r_cg_macrodriver.h" #include "r_cg_cgc.h" #include "r_cg_dac.h" #include "r_cg_timer.h" #include "r_cg_wdt.h" #include "r_cg_userdefine.h" void R_MAIN_UserInit(void); void main(void) { R_MAIN_UserInit(); /* Start user code. Do not edit comment generated here */ R_TAU0_Channel0_Start(); R_DAC0_Start(); R_DAC1_Start(); while (1U) { R_WDT_Restart(); ; } /* End user code

Naver Blog

DAC(Digital Analog Converter)

#RENESAS #RL78G14 #DAC #변수디버깅 이번포스팅은 RL78/G14의 DAC기능에 대해 설명한다. ADC는 많이 들어봤겠지만 DAC에 대해서는 생소한 사람들이 많을 것이다. 보통 ADC는 센서나 전압, 전류등 Analog값을 센싱(ADC)하여 Digital값으로 변환하는 기능인데 DAC는 반대로 Digital값을 Analog값으로 변환을 한다. 보통 DAC기능은 내가 MICOM Debugging용으로 많이 사용하며 컴파일러의 Debug기능으로 확인이 어려운 변수의 변화등을 감지하는데 사용한다. 컴파일러의 Watch창으로 변수값이 모니터링 가능하지만 제어주기가 빨라서 값의 변화가 눈으로 확인 불가한 부분은 DAC기능을 이용하여 오실로스코프를 사용하여 디버깅을 한다. 나도 개발시 센서의 ADC값이 디지털로 변환했을때 정확히 변경이 되었는지를 검증하기 위해 DAC기능을 사용했고 제품동작중 상태변화나 불량발생시점을 확인하기 위해 많이 사용했다. RL78/G14에는 총 2개(A

Naver Blog

SERIAL ARRAY UNIT(UART)

#RENESAS #RL78G14 #SAU #UART #씨리얼통신 RL78/G14에는 SErial Array Unit이라는 용어로 사용되는데 이기능은 UART, I2c, SPI를 통칭해서 사용하는 용어이다. 씨리얼통신의 경우는 대부분 유사한 방식을 사용하기 때문에 SAU기능으로 묶에서 사용하는듯 하다. 이번 포스팅은 UART에 대해서 설명한다. 내가 사용하는 100Pin기준으로 UART0~UART3까지 총4개의 UART가 있고 핀수에 따라 다르기 때문에 아래의 그림을 참고하길 바란다. UART는 2개의 신호선 RX, TX를 이용하여 통신을 주고받는 통신이고 쉽게 사용할 수있기 때문에 많이 사용된다.(UART의 상세설명은 아래의 포스팅을 참고) USART란? #ATMEGA128 #UART #USART #BAUD #보드레이트 #parity USART(Universal Asynchro... blog.naver.com Peripheral enable register 0 (PER0) PER0레

Naver Blog

SERIAL ARRAY UNIT(UART)

#RL78G14 #SampleCode 1BYTE UART통신(수신받은 내용을 바로 TX로 보냄) UART 채널2번 사용하고 TX와 TX사용 UART RX설정 8비트데이터 LSB None Parity 1 Stop Bit 9600baud UART TX설정 8비트데이터 LSB None Parity 1 Stop Bit 9600baud Main Code #include "r_cg_macrodriver.h" #include "r_cg_cgc.h" #include "r_cg_serial.h" #include "r_cg_timer.h" #include "r_cg_wdt.h" #include "r_cg_userdefine.h" void R_MAIN_UserInit(void); void main(void) { R_MAIN_UserInit(); /* Start user code. Do not edit comment generated here */ R_UART1_Start(); R_TAU0_Channel

Naver Blog

ATMEGA128 TWI(I2C)

#ATMEGA128 #I2C #TWI #SERIAL #씨리얼통신 #2WIRE 이번 포스팅은 ATMEGA128의 TWI에 대해 설명한다. TWI는 Two Wire Interface의 약자로 2가닥의 선을 이용하는 씨리얼통신이다. 보통 I2C라는 용어로 많이 알려져 있는데 ATMEGA에서는 TWI라는 용어를 사용한다. TWI의 장점은 다른 씨리얼통신과는 다르게 씨리얼 통신 선로에 Slave Device를 병렬로 연결하여 Master에서 1대다 통신이 가능하다. Slave는 각각 고유 Address를 가지고 있는데 아래의 그림처럼 병렬로 연결된 Device에 개별 Address를 할당해서 Master에서는 Slave로 Address를 먼저 보낸다. 이 Address정보는 모든 Slave Device들이 모두 수신하게 되는데 이중 해당하는 Address를 가진 Slave만이 ACK신로를 보낸다. ACK신호를 Master에서 받으면 Master는 Data를 전송한다. Master에서는 Add

Naver Blog

원씽(The One Thing)

#원씽 #아마존베스트셀러 #이코노믹북스 #게이캘러 #제이파파산 #비즈니스북스 독서 일자, 23년 1월 책평가, 성공하는 사람들은 같은 시간을 사용하더라도 더욱 효율적이고 중요한 일을 한다. 책의 저자는 시간은 모든사람에게 동일하게 주어지며 동일 시간에 어떤일을 하느냐에 따라 개인간의 성공이 달라진다고 한다. 하루라는 짧은 시간에 모든일을 하겠다는 생각보다는 한개의 일을 하더라고 중요한 일을 하라는 말이 최고였다. 그리고 중요한 일을 하는데 방해를 하는 여러가지 들이 있으며 그것들은 잘이겨내야 한다고 한다. 개인적인 생각, YES맨이 되는 것보다 NO를 하는 것도 중요하다는 저자의 말에 우리나라에서 그렇게 하는게 쉬울 것인가라는 생각을 했다. 선입견일 수 있겠지만 너무 거절하다보면 인간관계에 문제가 있을수 있다는 생각을 한다. 하지만 나또한 이전 회사에 다닐때 자기일을 먼저 처리해 달라는 사람들을 많이 봤고 No라고 하지 못하고 꾸역꾸역 일을 해주면서 정신적으로 육체적을 스트레스를 받

Naver Blog

제주도 겨울 스노우체인 구입방법

#제주도 #제주도스노우체인파는곳 #제주도통제 #제주도스노우체인 올 1월에 제주도 여행을 다녀오면서 폭설로 인한 통제구간이 많아서 운전하는데 어려움이 많았다. 먼저 아래의 제주도 지도에서 1136, 1139, 1131등의 제주도 남부와 북부, 동부와 서부를 가로지르는 도로(고지가 높은 도로)는 모두 통제되었고 스노우 체인을 부착한 차량만 통과를 시켜주기 때문에 스노우체인을 부착하지 않은 차량은 해안도로를 이용하는 방법밖에 없다. 서귀포시에서 여행을 하다가 한화리조트(어느길로 가더라도 고지가 높은 길이 있음)로 이동하는 중에 1131도로를 반정도 올라간 상태에서 경찰분들의 통제로 인해 다시 해안도로로 내려와서 동쪽해안 도로를 타고 돌아갔었다. 랜터카 업체에서는 패치나 스프레이를 팔긴하지만 스노우체인이 아닌이상 통과를 시켜주지 않는다. 그래서 오랜 검색끝에 스노우체인을 많이 파는 매장을 알게 되었고 관련하여 포스팅을 하고자 한다. 아래의 그림처럼 드림자동차 제주라고 검색하면 스노우체인을

Naver Blog

UART파형 디버깅 방법

# UART #파형디버깅 #UARTDebug 이번 포스팅은 UART의 파형디버깅을 하려고 한다. UART통신을 많이들 사용하고 있는데 UART 통신이 되지 않거나 통신은 되는데 값이 틀어져서 나오는 경우 UART파형을 디버깅하여 어느 부분에 문제가 있는지를 확인해야 한다. 일반적으로 문제가 되는 요인은 Baud Rate가 다른경우, UART IC가 불량이어서 정확한 High Low파형이 나오지 않는 경우, UART 레지스터 설정시 파형의 반전 및 비반전 설정이 다른 경우, Parity bit의 규약이 서로 다른경우등이 있다. 이런 경우 씨리얼프로그램을 통해서 디버깅을 하더라도 어느 부분에서 문제가 생기는지 확인 할수 없기 때문에 UART통신 파형을 오실로스코프로 찍어서 파형을 분석해야 한다. 먼저 UART의 설정을 간략하게 소개하고 파형분석설명을 하겠다. UART통신 Baud Rate는 9600이고 Stop bit는 1비트, None Parity bit, 8비트 Data사용, LSB

Naver Blog

Reset Synchronous PWM

#RL78G14 #SampleCode #Code Generator를 이용하여 Timer RD의 Reset Synchronous PWM Mode설정하는 방법 내부클럭 사용설정 TRD0와 TRDGRA0(주기설정레지스터)의 값이 같아지더라도 카운터를 계속 연속적으로 진행 PWM주기는 1ms PWM1은 80%, PWM2는 40%, PWM3는 20% Duty로 설정 PWM초기상태 tjfwjd 인터럽트설정 Main Code #include "r_cg_macrodriver.h" #include "r_cg_cgc.h" #include "r_cg_adc.h" #include "r_cg_timer.h" #include "r_cg_wdt.h" #include "r_cg_userdefine.h" void R_MAIN_UserInit(void); { R_MAIN_UserInit(); /* Start user code. Do not edit comment generated here */ R_TMR_RD0_S

Naver Blog

PWM3 Mode

#RL78G14 #SampleCode #Code Generator를 이용하여 Timer RD의 PWM3 Mode설정하는 방법 Clock설정 PWM주기1ms Duty설정(Duty는 Code를 참고바람) : 주기값만 변경할 경우 자동으로 Duty및 Dead Time이 설정되도록 Code화 시킴 PWM출력핀 설정 인터럽트 설정 Main Code #include "r_cg_macrodriver.h" #include "r_cg_cgc.h" #include "r_cg_adc.h" #include "r_cg_timer.h" #include "r_cg_wdt.h" #include "r_cg_userdefine.h" uint16_t gunFreq = 0; uint16_t gunDuty = 0; uint16_t gunDeadTime = 0; void R_MAIN_UserInit(void); void main(void) { R_MAIN_UserInit(); /* Start user code. Do no

Naver Blog

ADC(Analog Digital Converter)

#RL78G14 #SampleCode #Code Generator로 ADC예제를 설정(SW Trigger방식) TAU Timer를 1초주기마다 인터럽트를 발생시키고 1초마다 ADC의 결과를 저장 10비트 ADC사용 Vref+를 VDD로 설정 Vref-를 VSS로 설정 소프트웨어 트리거 모드설정 1회만 ADC하도록 설정 ADC채널8선택 컨버젼 Time Mode를 Normal1으로 설정 Upper / Lower Limit설정 TAU 1초 설정 Main Code #include "r_cg_macrodriver.h" #include "r_cg_cgc.h" #include "r_cg_adc.h" #include "r_cg_timer.h" #include "r_cg_wdt.h" #include "r_cg_userdefine.h" void R_MAIN_UserInit(void); void main(void) { R_MAIN_UserInit(); /* Start user code. Do not e

Naver Blog

External Interrupt(외부 인터럽트)

#ATMEGA128 #SampleCode #AVR STUDIO Code 아래의 Code는 INT4를 하강엣지로 설정하고 외부 인터럽트로 신호가 들어오는 경우 PORTC의 0번핀(PC0)을 토글하는 Code이다. #include <avr/io.h> #include <avr/interrupt.h> void main(void) { // 포트 초기화 DDRC = 0x01; // 포트 C 출력 설정 DDRE = 0b00000010; // 포트 E 입력(PE1 출력) PORTC = 0x00; // 포트 C에 초기값 출력 // 인터럽트 초기화 EICRB = 0b00000010; // 외부 인터럽트4 : 하강 에지 EIMSK = 0b00010000; // 외부 인터럽트4 인에이블 SREG = 0x80; // 전역 인터럽트 인에이블 비트 셋 while(1); } // 외부 인터럽트4 서비스 루틴 ISR(INT4_vect) { PORTC ^= 0x01; }

Naver Blog

ADC(Analog Digital Converter)

#ATMEGA128 #SampleCode #AVRSTUDIO ADIF레지스터의 값을 이용하여 ADC하는 예제Code(폴링방식) #include <avr/io.h> #include <avr/interrupt.h> #include <delay.h> void main(void) { int ad_val; DDRF = 0xF0; // PF4-PF7 출력, PF0-PF3 입력 ADMUX = 0x0; // ADC0 단극성 입력 선택 ADCSRA = 0x87; // ADEN=1, 16MHz 256분주 -> 125kHz delay_ms(5); while(1) { ADCSRA = 0xC7; // ADEN=1, ADSC = 1 변환 시작 while((ADCSRA & 0x10) == 0); // ADIF=1이 될떄까지 ad_val = (int)ADCL + ((int)ADCH << 8); // A/D 변환값 읽기 } } 외부인터럽트4번이 감지되면 ADC를 시작하고 ADC가 완료되면 ADC Interrupt

Naver Blog

USART

#ATMEGA128 #SampleCode #AVRSTUDIO UART를 Flag정보를 이용하여 송수신하는 code(폴링방식) 수신된 1바이트값에 그대로 송신 #include<avr/io.h> void Putch1(char); // UART0 한 바이트 송신 char Getch1(void); // UART0 한 바이트 수신 void Putch2(char); // UART1 한 바이트 송신 char Getch2(void); // UART1 한 바이트 수신 void init_UART0(); void init_UART1(); int main(void) { // USART 초기화 UCSR0A = 0x0; UCSR0B = 0b00011000; // 송수신 인에이블 TXEN = 1, RXEN=1 UCSR0C = 0b10000110; // 비동기 데이터 8비트 모드 UBRR0H = 0; // X-TAL = 16MHz 일때, BAUD = 9600 UBRR0L = 103; while(1) { Putc

Naver Blog

8bit Timer/Counter0

#ATMEGA128 #SampleCode #AVRSTUDIO Timer0 normal Mode(overflow interrupt사용) #include <avr/io.h> #include <avr/interrupt.h> void main(void) { // 포트 초기화 DDRC = 0x01; // 포트 G 출력으로 설정 PORTC = 0x00; // 포트 G에 초기값 출력 // 인터럽트 초기화 TIMSK = 0x01; // TOIE0 = 1; TCCR0 = 0x07; // 일반모드, 프리스케일 = CK/1024 TCNT0 = 0x00; // 타이머/카운터0 레지스터 초기값 SREG = 0x80; // 전역 인터럽트 인에이블 비트 I 셋. while(1); // 무한 루프 } // 타이머/카운터0 오버플로우 서비스 루틴 // 인터럽트 발생 주기 1/16,000,000 * 1024분주 * 256 = about 16ms ISR(TIMER0_OVF_vect) { PORTC ^= 0x01; }

1 2 3