BASIC4MCU | 질문게시판 | atmega128a 다시 질문이요~
페이지 정보
작성자 초짜 작성일2019-08-05 10:30 조회13,181회 댓글4건본문
Atmega128a 에서 ISP 연결할때 mosi miso sck reset 이렇게 연결하는데 Sck는 컴퓨터 클럭을 받아오잖아요.
근데 제가 알기론 xtal에 연결된 16M 크리스탈도 클럭을 만드는 걸로 알고 있습니다.
그래서 생각을 해보니 보통 SCK 값을 줄때 설정값을 atmega128a 주파수의 1/4이하값으로 Sck 값을 설정하는데 그 이유가 sck에서 나온 클럭을 크리스탈로 보내 증폭해서 그 증폭한 클럭값으로 사용을 하는건가요??
댓글 4
조회수 13,181master님의 댓글
master 작성일
몇 가지로 나누어서 답변을 드려야겠습니다.
1. sck의 역할은 spi 통신을 공부하셔야합니다.
2. xtal은 (외부 xtal로 동작 시) mcu 내부의 모든 클럭의 기본입니다. sck도 xtal의 클럭으로 구동 됩니다.
3. spi 통신에서 마스터가 어디인가를 구분해서 생각하세요
컴퓨터에서 mcu로 프로그램을 구울 때에는 컴퓨터가 마스터입니다.
마스터가 sck를 공급합니다.
이 경우 mcu는 xtal 클럭을 기반으로 움직이지만 컴퓨터에서 제공하는 sck는 xtal(mcu 클럭)과 관련이 없으며
sck는 spi 통신에만 관여합니다.
초짜님의 댓글
초짜
그럼 궁금한게 크리스탈 없을때 업로더가 안되던데 그 이유가 먼가요??업로드 할때 atmega128a 의 sck도 같이 구동되야 하기 때문인가요? ㅠㅠ
마지막으로 ㅠㅠ sck 설정값을 줄때 왜 sck값이 1/4값 이하로 줘야된다는 데 왜 그런가요 ㅠㅠ
master님의 댓글
master
mcu의 클럭은 어떤 형태로든 있어야지 동작합니다.
외부 xtal이 없으면 내부클럭으로 동작시키면 됩니다.
//
sck 설정을 클럭의 1/4 이하로 줘야하는데 무슨 문제라도 있나요?
mcu 내부의 모든 기능을 사용하기 위한 클럭은 mcu 기본 클럭보다 빠를 수는 없습니다.
//
xtal은 mcu의 기본클럭 중의 하나입니다.(내부 클럭도 있슴)
sck를 mcu의 기본클럭이라고 생각하는 것 같은데요. sck는 mcu 내부의 기능 중의 하나일 뿐입니다.
타이머에서도 클럭이 필요하고, ADC에서도 클럭이 필요합니다.
SPI처럼 시리얼통신인 USART나 I2C에서도 클럭이 필요합니다.
SPI의 SCK는 위에 언급한 여러가기 기능 중 하나에 불과합니다.
기본클럭인 xtal과 혼동을 하면 안됩니다.
초짜님의 댓글
초짜
아!! 그러니깐 Sck는 정보보내는 클럭용이고. 크리스탈 클럭은 내부 atmega128a 클락인거군요! 즉 둘다 사용을 해야 정보를 받을수 있는거고.
이제야 이해가 갑니다! 감사합니다!