일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- FGPA #반도체설계 #verilog #시프트레지스터 #uart
- Multiple transaction
- single copy atomic size
- atomic access
- Verilog
- STM32
- ordering model
- Low-power Interface
- cacheable
- AMBA
- 임베디드시스템
- ERROR RESPONSE
- 카운터
- tff
- Multiple outstanding
- 레지스터슬라이스
- stepmotor
- 펌웨어
- AXI3
- AXI4
- FPGA
- T flip flop
- QoS
- SoC
- 구조적모델링
- Interoperability
- APB3
- out-of-order
- 스텝모터
- ABMA
- Today
- Total
목록전기전자/ARM (5)
CHIP KIDD

ARM을 이용해 Circular Queue 를 구현하는 자료입니다. 위 그림에서 설명하는 단계대로 코드를 구현해보겠습니다. 중요한 점은 Full 과 Empty 상태를 알아내는 것. + Rear와 Front는 항상 붙어다니는 존재이기에 TypeDef Struct 를 통한 구조체로 만드는게 편리합니다. + 포인터를 이용해 직접 메모리에 접근하겠습니다. ( * / -> / &) Queue.c /* * Queue.c * * Created on: May 6, 2021 * Author: kccistc */ #include "Queue.h" void QueInit(QUEUE *que) { que->rear = 0; que->front = 0; } uint8_t isQueFull(QUEUE *que) { return ..

I2C를 이용해서 DS3231으로 부터 시간값을 얻자, 얻은 값을 OLED에 송출하기 (이건 SPI) /* * ds3231.c * * Created on: Mar 22, 2021 * Author: kccistc */ #include "ds3231.h" I2C_HandleTypeDef *hi2c; void DS3231_Init(I2C_HandleTypeDef *I2C_Handler) { hi2c = I2C_Handler; } void I2C_Transmit(uint8_t devAddr, uint8_t memAddr, uint8_t *pData, uint16_t Size ) { HAL_I2C_Mem_Write(hi2c, (devAddr day = BCDtoDEC(getDate[0]); sDate -> dat..

UART I2C SPI 1:1 1:N 1:N 비동기 동기 동기 slave device 주소 chip select (pin 개수 증가 단점) slow fast 통신 단순 복잡 단순 ※ 동기 vs 비동기 기준신호 : Clock Clock을 생성하는 것 : Master / Clock을 받는 것 : Slave → Clock을 기준으로 동작 하는 것 : 동기 SPI 동작 구조 ※ MOSI : Master Out Slave In → Write MISO : Master In Slave Out → Read 특징 Bit 단위 신호로 데이터 전송 SCLK (동기신호)에 맞춰 Write 하고 Read 함 CPOL (0) : 시작위치 HIGH (1) : 시작위치 LOW CPHA (0) : 첫번째 Edge에서 동기화 (1) :..

엘레베이터를 제작하는데 있어서, 층별 이동시 층을 구별하고 층에 따른 동작을 구현하기 위해서는 층을 구별해줄 수 있는 장치가 필요합니다. 따라서 포토 인터럽터 센서를 이용하여 엘레베이터 층을 변경하고자 합니다. 동작원리 검출 물체가 없을 때 발광다이오드(LED)의 적외선이 포토트랜지스터에 닿으면서 광전류가 흐르게 되는 구조입니다. 검출 물체가 발광다이오드(LED)의 적외선을 막게 되면 포토트랜지스터에 적외선이 닿지 않아 광전류가 흐르지 않게 되고, 이때 물체를 검출할 수 있는 구조입니다. 실제 구현 / 세팅 포토인터럽터 센서를 회로에 연결한뒤 어떻게 사용할 것인가? ARM의 인터럽터를 이용하여 포토 인터럽터 센서를 이용할 수있습니다. 목적이 층구별이기 때문에, 계속적으로 Callback 함수가 돌아가는 ..
STM32F411RE : ARM 코어중 Cortex M4를 사용하였습니다. 현장에서는 Cortex M3(STM32F103계열)를 많이 사용함 : 가성비가 좋다. 싸고 고성능. 사용하는 사람이 많다(자료많음). M4와 M3의 차이점은 FPU유무이다. M4는 FPU를 제공하기 때문에, 곱셈, 나눗셈, 소수점 연산이 더 빠르게 해준다. 컴파일러 Tool 로써 STM 사에서 제공하는 IDE Cube를 이용하여 컴파일 합니다. ( 많이 사용하는 tool로 Keil, IAR이 있습니다.) *CubeMX는 초기화 코드를 생성하는 tool입니다. 이번 실습에서 제가 구현하고자 하는 것은 Step 모터와 버튼을 이용하여 스텝모터의 회전속도와 방향을 제어하고자 합니다. 버튼 1번 : On / Off 버튼 2번 : 방향 변..