www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Atmel SAM3X SPI težava

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
marko
Član
Član



Pridružen-a: Sre 07 Jan 2004 15:14
Prispevkov: 755
Aktiv.: 3.40

PrispevekObjavljeno: Tor Okt 21, 2014 11:41 pm    Naslov sporočila:  Atmel SAM3X SPI težava Odgovori s citatom

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 Smile

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
marko
Član
Član



Pridružen-a: Sre 07 Jan 2004 15:14
Prispevkov: 755
Aktiv.: 3.40

PrispevekObjavljeno: Čet Okt 23, 2014 11:25 pm    Naslov sporočila:   Odgovori s citatom

Je ta ARM taka redkost v Sloveniji? Sad
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tilz0R
Član
Član



Pridružen-a: Čet 31 Maj 2012 15:39
Prispevkov: 898
Aktiv.: 6.24
Kraj: Črnomelj

PrispevekObjavljeno: Čet Okt 23, 2014 11:41 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
marko
Član
Član



Pridružen-a: Sre 07 Jan 2004 15:14
Prispevkov: 755
Aktiv.: 3.40

PrispevekObjavljeno: Pet Okt 24, 2014 12:10 am    Naslov sporočila:   Odgovori s citatom

Tudi to sem že pogledal. Nič "oprijemljivo" drugačnega nisem tam našel. Se bojim, da je kakšen HW bug.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
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: 48 dni


Powered by phpBB © 2001, 2005 phpBB Group