|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
marko Član
Pridružen-a: Sre 07 Jan 2004 15:14 Prispevkov: 755 Aktiv.: 3.39
|
Objavljeno: Tor Okt 21, 2014 11:41 pm Naslov sporočila: Atmel SAM3X SPI težava |
|
|
Pozdravljeni,
preden vržem stran tega ARMa me zanima, če ima mogoče kdo kakšno delujočo verzijo SPI pošiljanja. Sedaj prvič uporabljam ARM in ASF framework in je taka zmeda, da sploh ne vem kje se me kaj drži
Rad bi poslal enostavno sporočilo preko SPI protokola, pa mi nikakor ne rata. Je kup neke konfiguracije, ki je ne razumem, poleg tega pa imam CS na svojem portu in ne na tem, ki je predviden za SPI. Ne vem kako naj nastavim ta custom CS.
Tole je kar imam do sedaj spesnjeno (pobrano iz examplov), ampak ne deluje:
Koda: |
Inicializacija:
spi_enable_clock(SPI0);
spi_disable(SPI0);
spi_reset(SPI0);
spi_set_lastxfer(SPI0);
spi_set_master_mode(SPI0);
spi_disable_mode_fault_detect(SPI0);
spi_set_peripheral_chip_select_value(SPI0, SPI_CHIP_PCS);
spi_set_clock_polarity(SPI0, SPI_CHIP_SEL, SPI_CLK_POLARITY);
spi_set_clock_phase(SPI0, SPI_CHIP_SEL, SPI_CLK_PHASE);
spi_set_bits_per_transfer(SPI0, SPI_CHIP_SEL, SPI_CSR_BITS_8_BIT);
spi_set_baudrate_div(SPI0, SPI_CHIP_SEL, (sysclk_get_cpu_hz() / 672));
spi_set_transfer_delay(SPI0, SPI_CHIP_SEL, SPI_DLYBS, SPI_DLYBCT);
spi_enable(SPI0);
static void spi_master_transfer(void *p_buf, uint32_t size)
{
uint32_t i;
uint8_t uc_pcs;
static uint16_t data;
uint8_t *p_buffer;
p_buffer = p_buf;
for (i = 0; i < size; i++)
{
spi_write(SPI_MASTER_BASE, p_buffer[i], 0, 0);
/* Wait transfer done. */
while ((spi_read_status(SPI_MASTER_BASE) & SPI_SR_RDRF) == 0);
spi_read(SPI_MASTER_BASE, &data, &uc_pcs);
p_buffer[i] = data;
}
}
uint8_t cmd = 0x12;
spi_master_transfer(&cmd, sizeof(cmd));
while ((spi_read_status(SPI_MASTER_BASE) & SPI_SR_RDRF) == 0);
|
Na 8 bitniku je to par vrstic par nastavljanja portov, tu pa.. |
|
Nazaj na vrh |
|
|
marko Član
Pridružen-a: Sre 07 Jan 2004 15:14 Prispevkov: 755 Aktiv.: 3.39
|
Objavljeno: Čet Okt 23, 2014 11:25 pm Naslov sporočila: |
|
|
Je ta ARM taka redkost v Sloveniji? |
|
Nazaj na vrh |
|
|
tilz0R Član
Pridružen-a: Čet 31 Maj 2012 15:39 Prispevkov: 898 Aktiv.: 6.20 Kraj: Črnomelj
|
Objavljeno: Čet Okt 23, 2014 11:41 pm Naslov sporočila: |
|
|
Samo predlog.
Glede na to, da ima Arduino DUE gor SAM 3X, lahko mogoče njihov IDE dol potegneš (min 1.5.x verzijo) in pogledaš tam pod hardware kako imajo SPI poštiman. _________________ Knowledge sharing is caring.
majerle.eu | stm32f4-discovery.net |
|
Nazaj na vrh |
|
|
marko Član
Pridružen-a: Sre 07 Jan 2004 15:14 Prispevkov: 755 Aktiv.: 3.39
|
Objavljeno: Pet Okt 24, 2014 12:10 am Naslov sporočila: |
|
|
Tudi to sem že pogledal. Nič "oprijemljivo" drugačnega nisem tam našel. Se bojim, da je kakšen HW bug. |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 77 dni
Powered by phpBB © 2001, 2005 phpBB Group
|