tag:blogger.com,1999:blog-6346200245600677355.post7535877651002022149..comments2024-01-31T16:07:46.670+09:00Comments on Linux Kernel Hacks: Device Tree 기반의 SPI programmingSlowboothttp://www.blogger.com/profile/16580188960257697703noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-6346200245600677355.post-84339708302137352022019-01-10T10:17:20.062+09:002019-01-10T10:17:20.062+09:00좋은글 감사합니다. 좋은글 감사합니다. Anonymoushttps://www.blogger.com/profile/15265881554973318441noreply@blogger.comtag:blogger.com,1999:blog-6346200245600677355.post-18717724248691928302016-05-27T10:47:56.873+09:002016-05-27T10:47:56.873+09:00상세한 설명 감사 드리며 많은 도움이 되고 있습니다.
"그림 7.4 AM335x...상세한 설명 감사 드리며 많은 도움이 되고 있습니다.<br /><br />"그림 7.4 AM335x SPI Controller 구조"에 대해 질문이 있습니다.<br /><br />해당 그림에서는 Slave Device 두 개를 하나의 SPI포트에 연결하여 CS0,1을 사용하여 제어 하고 있습니다.<br /><br />리눅스에서 이와 같이 사용하고자 한다면 어느부분을 수정 또는 무엇을 참고 해야 할지 알고 있으시면 도움 부탁드립니다. <br /><br />감사합니다.Anonymoushttps://www.blogger.com/profile/16379806159460601414noreply@blogger.comtag:blogger.com,1999:blog-6346200245600677355.post-75268644708653635442016-01-26T15:55:28.614+09:002016-01-26T15:55:28.614+09:00좋은 자료 제공해 주셔서 감사합니다.좋은 자료 제공해 주셔서 감사합니다.Anonymoushttps://www.blogger.com/profile/00722897824502489929noreply@blogger.comtag:blogger.com,1999:blog-6346200245600677355.post-21132723552481398192014-04-16T21:06:34.295+09:002014-04-16T21:06:34.295+09:00글쎄요 .... 좀 고민이되는 문제군요.
일단은 먼저, "AM335x ARM C...글쎄요 .... 좀 고민이되는 문제군요.<br />일단은 먼저, "AM335x ARM Cortex-A8 Microprocessors Technical Reference Manual"을 살펴 보는 것으로 시작을 해야 할 것 같군요.<br /><br /><br />==================================<br />24.3.4 Slave Mode<br />McSPI is in slave mode when the bit MS of the register MCSPI_MODULCTRL is set.<br />In slave mode, McSPI can be connected to up to 4 external SPI master devices. McSPI handles<br />transactions with a single SPI master device at a time.<br />In slave mode, McSPI initiates data transfer on the data lines (SPIDAT[1;0]) when it receives an SPI clock<br />(SPICLK) from the external SPI master device.<br />The controller is able to work with or without a chip select SPIEN depending on<br />MCSPI_MODULCTRL[PIN34] bit setting. It also supports transfers without a dead cycle between two<br />successive words.<br />-------------------------------------------------------------------------------------------------------------------------------------------------<br />위의 내용을 잠시 살펴 보면, McSPI controller가 slave 모드로 동작하기 위해서는 MCSPI_MODULCTRL 레지스터의 MS bit(3번째 bit임)를 1로 설정해 주어야만 한다는군요(관련 레지스터의 필드 정보는 4492 페이지에서 참조 가능).<br /><br />위의 내용과 관련한 SPI controller driver(drivers/spi/spi-omap2-mcspi.c)의 코드 내용(원본)을 살펴보면 아래와 같습니다.<br />코드를 보시면 아시겠지만, omap2_mcspi_probe() 함수의 끝 부분에서 omap2_mcspi_master_setup() 함수를 호출하고, 다시 이 함수에서 아래 함수를 호출해 주고 있는 것을 알 수 있습니다.<br /><br />static void omap2_mcspi_set_master_mode(struct spi_master *master)<br />{<br /> struct omap2_mcspi *mcspi = spi_master_get_devdata(master);<br /> struct omap2_mcspi_regs *ctx = &mcspi->ctx;<br /> u32 l;<br /><br /> /*<br /> * Setup when switching from (reset default) slave mode<br /> * to single-channel master mode<br /> */<br /> l = mcspi_read_reg(master, OMAP2_MCSPI_MODULCTRL);<br /> l &= ~(OMAP2_MCSPI_MODULCTRL_STEST | OMAP2_MCSPI_MODULCTRL_MS); /* 이 부분을 수정해야 함 */<br /> l |= OMAP2_MCSPI_MODULCTRL_SINGLE;<br /> mcspi_write_reg(master, OMAP2_MCSPI_MODULCTRL, l);<br /><br /> ctx->modulctrl = l;<br />}<br /><br />그렇다면, 이 부분만 수정하면 될 까요 ? 솔직히 두대의 BBB를 가지고 직접 연결 시험을 해본 것이 아니므로, 위의 내용 외에도 의심(고심)해 보아야할 부분을 아래에 몇자 적어 보았습니다.<br /><br />----------------<br />0) MCSPI_MODULCTRL 레지스터의 MS bit(3번째 bit임)를 1로 설정(이미 앞서 설명한 내용)<br /><br />1) SPIDAT0(MOSI), SPIDAT1(MISO)의 방향 값을 바꿔야 할 수도 있을 듯 보임(MCSPI_SYST 레지스터 설정 변경)<br /> => 두개의 data line을 cross로 연결하거나, 레지스터 설정을 변경하여 방향을 바꿔야 할 수도 있을 듯.<br /> => 연결 선을 최대한 짧게 해야 할 수도 있을 보임. 아래 site 내용도 한번 참조해 보시구요.<br /> (http://linux.omap.com/pipermail/linux-omap-open-source/2007-July/010633.html)<br /><br />2) BBB 두대를 상호 연결하는 것이니, BBB 확장 헤더의 특정 핀을 사용해야 할텐데, 이를 위해서는 필히 pinmux 설정을 해주셔야 함(이 내용은 본 블로그 내용 참조). <br /><br />이 밖에도 실제로 실험을 하다보면, 예상치 못한 다른 문제가 발견될 수 있을 것으로 보이는데, 직접 한번 해보시고, 내용 공유해 주시면 감사하겠네요^^.<br /><br /><br />Slowboothttps://www.blogger.com/profile/16580188960257697703noreply@blogger.comtag:blogger.com,1999:blog-6346200245600677355.post-2402081154214776862014-04-16T11:32:32.356+09:002014-04-16T11:32:32.356+09:00BBB SPI 1:1 통신을 하려고 합니다. BBB의 Slave 셋팅은 어떻게 하나요??BBB SPI 1:1 통신을 하려고 합니다. BBB의 Slave 셋팅은 어떻게 하나요??Anonymousnoreply@blogger.com