본문 바로가기

자동차 임베디드 SW/Aurix MCU15

AURIX MCMCAN 모듈4 -Tx Handling 노드마다 총 32개의 Tx Buffer를 가진다. Tx Buffer는 Dedicated Buffer , Tx FIFO , Tx Queue 3가지 타입으로 나뉜다. 32개의 Tx Buffer를 얘네가 나눠서 쓰는 컨셉이다. 이때, Tx FIFO랑 Tx Queue 는 동시에 사용할 수는 없다. Dedicated Buffer + Tx FIFO 또는 Dedicated Buffer + Tx Queue 조합으로 사용가능하다. 별도의 레지스터를 통해서 각 타입의 버퍼를 몇개 사용할지 정해야한다. 예를 들면 dedicated Buffer 10개, TX FIFO 5개 이런식으로 정해서 쓴다. 두 버퍼의 총합은 최대 32개이다. 각 버퍼에 송신하려는 Tx message의 ID값과 데이터 영역 등을 셋팅하고 해당 버퍼와 매.. 2023. 7. 18.
AURIX MCMCAN 모듈3 - Rx Handling 수신된 메세지를 담고 있는 공간은 총 3가지 타입이 존재한다. RX FIFO0 ,RX FIFO1, Dedicated Buffer 각 타입 모두 최대 64개의 메세지 정보를 저장할 수 있다. 한편 특정 메세지를 수신했을때 해당 메세지를FIFO로 보낼건지 Dedicated Buffer로 보낼건지 셋팅하는 부분은 필터이다. 노드별로 standard id용 필터 128개 extended id용 필터 64개가 존재한다. 각 필터에서는 필터,마스크에 대해 셋팅을 하고, 필터 마스크와 매핑되는 ID를 가진 메세지를 수신했을때 그 결과를 RXFIFO0 , RXFIFO1, Dedicated Buffer 중에 어디에 저장할지를 지정한다. 여기서 필터와 마스크란 수신된 메세지의 ID와 마스크를 AND 연산한 결과와 필터 값.. 2023. 7. 18.
AURIX MCMCAN 모듈2 2023. 7. 18.
Aurix MCMCAN 모듈 1 2023. 7. 18.
Aurix USRINFO NVM과 Flash의 Hybird한 영역이다. RAM 처럼 자유롭게 쓰고 지우기가 가능한데 값의 초기화는 오직 POWER On Reset 때만 초기화 된다. 유의점은 write protection 걸려있는 레지스터라 safetyendinit 해제 시켜야된다. 2023. 3. 9.
Aurix MCM CAN의 TX Buffer 정리 Aurix 1G에서는 Multi CAN 이라는걸 썼는데 AURIX 2G 에서는 보쉬에서 만든 MCM CAN이라는 패리펄럴을 사용한다. TX Buffer는 타입이 3가지가 존재한다. Dedicated Type FIFO Type TX QUEUE Type 한편 Tx 버퍼의 갯수는 최대 32개인데, 이 32개는 위 3가지 타입 모두 동시에 share 하는 영역이다. (타입별로 32개씩 존재하는게 아님) 또 한가지 중요한건 FIFO랑 Queue는 동시에 사용할 수 없다는 사실이다. 참고로 FIFO는 말그대로 먼저 전송 요청된 메세지를 먼저 송신하는 방식으로 동작하고, Tx Queue는 메세지 id 값이 작은것(우선 순위 높은것)을 먼저 송신하는 방식으로 동작한다. 레지스터 셋팅을 통해서 Tx Queue를 쓸건지,.. 2023. 3. 8.
Aurix Flash 기본지식 flash erase의 최소단위는 sector flash write의 최소단위는 page sector와 page 크기는 hardware 적으로 사전에 정해져있다. 유저매뉴얼을 보고 확인하면된다. (보통 sector가 page보다 훨씬 크다) Aurix에는 Pflash , Dflash 라는 2가지 타입의 flash가 존재함 각각 Program flash , Data Flash 의 약자이다. Pflash와 Dflash는 섹터와 페이지 크기가 서로 다르다. Pflash page : 32byte Dflash page : 8 byte flash에 write를 하기전에는 항상 erase를 해놓은 상태여야한다. (덮어쓰기가 안됨) 덮어쓰기 시도 할 경우(erase 상태가 아닌 flash에 write시도) trap 발.. 2023. 1. 19.
Aurix ADC - 컨버전 요청. Trigger Aurix의 VADC 모듈의 동작 주요컨셉 ▶ 3개의 큐가 존재. ▶ 컨버전 하려는 채널을 컨버전 원하는 순서대로 큐에 집어넣음 ▶ 큐에 컨버전 요청 ( Conversion Request) ▶ 컨버전 요청 받으면 큐에 집어넣은 채널의 adc conversion이 이뤄짐 ▶ 실제로 conversion이 수행되고 Conversion 결과가 Result레지스터에 담긴다. ▶ 큐에 채널 삽입하기전에 이런저런 셋팅을 하고 큐에 삽입하는데, 예를 들면 컨버전 완료되고나서 다시 큐에 자동삽입 할건지. 컨버전 완료됐을때 인터럽트나 dma로 알려줄건지(Service Request) 등을 셋팅한다. 이 셋팅한 결과에 따라 해당 채널이 큐에서 꺼내지면서 컨버전완료 된 후 동작 달라짐. ▶ Adc Conversion 완료 후.. 2022. 9. 23.
Aurix 이슈. 디버깅시 STM Stop Aurix에는 STM 이라는 타이머가 있는데 RTOS를 만들때 OS의 System Timer로 STM을 많이 사용함. 한편 RTOS에서 일반적으로 주기 Task를 많이 사용하는데, 오토사 OS에는 동일한 Task가 동시에 최대 몇번 Activation이 가능한지 설정할 수 있다. 예를 들어 1ms 주기의 TASK A가 있는데 TASK A의 실행시간이 1ms를 초과한다면, TASK A가 아직 실행중인데 TASK A가 또 한번 Activation 될 것이다. 이런 경우가 Activation이 2번 된 것이다. 만약 해당 Task의 Activation 제한값이 1인 경우,이때 에러로 판단해서 OS hook이 발생한다. 한편, Sw디버깅을 하다보면 break point에 멈춰놓고 쓸 때가 있다. 이때 break.. 2022. 9. 22.