STM32F2xx FSMC mit Epson S1D13517: Config Problem

Gast #3278839
Lesenswert?
• ▲
▼
Hallo zusammen,
ich bin noch relativ unbewandert im Umgang mit dem FSMC des STM32F2xx 
und habe deshalb ein kleines Problem mit dessen Konfiguration. Hier mal 
die Eckdaten der Verkabelung:

Der S1D13517 ist mit 16bit Breite verbunden D0..15
#HWE ist an FSMC_NWE
#HRE ist an FSMC_NOE
#HC/S ist an FSMC_NE1
#HD/C ist an A16
#HALE ist auf GND
#RESET ist steuerbar
Damit ist das ganze Host-Interface angeschlossen, mehr gibts nicht.

Hier meine FSMC Einstellungen (GPIO's sind als Alternate Function 
initialisiert):

  RCC_AHB3PeriphClockCmd(RCC_AHB3Periph_FSMC, ENABLE);

  FSMC_NORSRAMDeInit(FSMC_Bank1_NORSRAM1);
  FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct  = &p_read;
  FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct      = &p_write;
  FSMC_NORSRAMStructInit(&FSMC_NORSRAMInitStructure);

   /*-- FSMC Configuration 
------------------------------------------------------*/
  p_write.FSMC_AddressSetupTime = 0x1;
  p_write.FSMC_AddressHoldTime = 0x5;
  p_write.FSMC_DataSetupTime = 0xA;
  p_write.FSMC_AccessMode = FSMC_AccessMode_A;

  p_read.FSMC_AddressSetupTime = 0x1;
  p_read.FSMC_AddressHoldTime = 0x5;
  p_read.FSMC_DataSetupTime = 0xA;
  p_read.FSMC_AccessMode = FSMC_AccessMode_A;

  FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
  FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = 
FSMC_DataAddressMux_Enable;
  FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;
  FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = 
FSMC_MemoryDataWidth_16b;
  FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = 
FSMC_BurstAccessMode_Disable;
  FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = 
FSMC_WaitSignalPolarity_Low;
  FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
  FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = 
FSMC_WaitSignalActive_BeforeWaitState;
  FSMC_NORSRAMInitStructure.FSMC_WriteOperation = 
FSMC_WriteOperation_Enable;
  FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
  FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = 
FSMC_ExtendedMode_Disable;
  FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
  FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct  = &p_read;
  FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct      = &p_write;

  FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);

  FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);

Jetzt hätte ich versucht an Register 0 die Product ID zu lesen um zu 
sehen ob Kommunikation zustande kommt, lese aber immer nur 0.

Ich lese an der Adresse: 0x60000000
Ist das die richtige? Und welche Adresse müsste ich später für die Daten 
nehmen? Da ich A16 benutze 0x60020000 oder?
Hab ich das richtig gelesen, dass in diesem Modus die Registeradressen 
um 1 nach rechts geshiftet sind?

Steh grade ein bißchen auf dem Schlauch oO.

mfG,
pJs

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.