Forum: Mikrocontroller und Digitale Elektronik Selbstbau-Testboard für STM32F4Discovery


von Philipp M. (lord-maricek)


Lesenswert?

Hi,

ich habe ein Stm32f4Dsicovery Board und habe damit schon ein paar 
Programmierversuche gemacht. Um aber nicht immer wieder irgentwelche 
Sachen zusammenlöten zu müssen, wenn ich etwas probieren möchte, will 
ich mir jetzt ein kleines Dev-Board entwickeln, auf das ich das 
Discovery Board draufstecken kann. Das Board möchte ich dann ätzen. Die 
Frage ist, was ich alles drauf packen soll. Ätzen und Löten kann ich 
auch SMD ohne Probleme.

Draufpacken möchte ich:
- Kamera, an das Kamerainterface (entweder direkt auch die Platine oder 
mit nem Kabel)
- mehrere Sensoren, an ADC,I2C und SPI
- ein paar Leds für DAC, und als normale ausgänge
- Taster für den/das EXTI
- einen NAND Flash für das FSMC Interface(kenn ich mich garnicht mit 
aus)
- eine Knopfzelle
- einen SD Karten Slot (Micro SD oder normal?)
- 1 oder 2 Stiftleisten zu den USARTs für ein FTDI Board
- Input Capture vom Timer rausgeführt
- ein kleines LCD

Habt ihr noch Ideen oder Anregungen?
Habt ihr Tipps zu Bauteilen oder Sensoren?

Wenn das ganze Fertig ist, stelle ich es gerne Online, und könnte 
eventuell auch die eine oder andere Platine herstellen, wenn Interesse 
besteht.

MfG
Philipp

von Verwirrter Anfänger (Gast)


Lesenswert?

Philipp Maricek schrieb:
> - Kamera, an das Kamerainterface (entweder direkt auch die Platine oder
> mit nem Kabel)

Philipp Maricek schrieb:
> - einen NAND Flash für das FSMC Interface(kenn ich mich garnicht mit
> aus)

Hast du schon mal kontrolliert, ob du an alle Pins ohne Probleme dran 
kommst? Ein paar der DCMI und FSMC Pins werden nämlich schon für andere 
Dinge benutzt. Ich hab noch nicht kontrolliert, ob man die problemlos 
doppelt belegen kann, oder ob die evtl. nicht für die normale Funktion 
gebraucht werden.

Bsp:
PD4: FSMC_NOE, CS43L22 Reset
PC7: DCMI_D1, CS43L22 MCLK
...

von Philipp M. (lord-maricek)


Lesenswert?

Hi,

es gibt da son geniales Tool für: 
http://www.st.com/internet/mcu/product/252140.jsp
Da unter Design SUpport und dann unten unter Boards and Tools, da gibts 
den MicroXplorer. Da kann man sich die Konfigurationen zusammenklicken, 
welcher Pin mit was geht, und man bekommt auch angezeigt, was nicht mehr 
geht, wenn man irgendwas aktiviert hat.

SD und Kamera, beides geht nicht, nur eins.
Was genau ich weglassen muss, werde ich entscheiden, sobald ich passende 
Hardware gefunden habe.

MfG
Philipp

von Philipp M. (lord-maricek)


Lesenswert?

Hallo,

hätte denn vielleicht irgendjemand einen Tipp zu einem Nand Flash Chip?
Ich habe schon viel gesucht aber was ich gefunden habe ist meistens 
abgekündigt.

Laut Datenblatt hat Bank 2 (Bank 3 und 4 gibts nicht bei der 100Pin 
Version)
einen Adressbereich von 4x64MB. Heißt (Datenblatt): "Banks 2 and 3 used 
to address NAND Flash devices (1 device per bank)", dass ich einen Flash 
Chip pro Bank mit 256 MB einsetzten kann?

Wie oebn schon geschrieben, finde ich keine Chips, die noch active sind, 
für meine Anforderungen:
Data Width: 16bit
Spannung: max. 3.6V
Schnitstelle: parallel
Typ: SCL
Speichergröße: ist eig. egal, das ein Testboard ist
Synchron oder Asynchron?

Weiß vielleicht jemand einen passenden Chip? Müssen natürlich nicht alle 
Anforderungen erfüllt sein.


Andere Frage. Wie lese und schreibe ich den Flash nach dem 
Konfigureiren? Der Adressraum von Bank 2 geht von 0x7000 0000 bis 0x7FFF 
FFFF.
Wenn ich die ersten 8 Byte lesen will, mache ich das direkt über einen 
Pointer? Oder muss ich dem FSMC erst mitteilen, dass ich die Daten lesen 
möchte und bekomme sie dann bereitgestellt?
1
uint64_t read_data = *((uint64_t*)0x70000000);
Wenn ich das Probiere und Debugge bekomme ich 0 ausgegeben, was 
theoretisch richtig ist, weil kein Flash dran hängt.

MfG
Philipp

von erhardd (Gast)


Lesenswert?

Philipp Maricek schrieb:
> Laut Datenblatt hat Bank 2 (Bank 3 und 4 gibts nicht bei der 100Pin
> Version)
...die 100-pin Version der stm32f407(auf Discovery z.B.) hat max.
A23 --> PIN E2;
-würde , glaub ich, für 16 MB reichen.
Allerdings nur 1 Bank(da nur ein FSMC- NE1/NCE2 auf PD7 ) = Bank1;
-alle Zugriffe über Pointer:
   /* LCD /CS is NE1 - Bank 1 of NOR/SRAM Bank1~4       */
#define LCD_BASE   0x60000000UL

dementsprechend:
#define LCD_REG16(*((volatile unsigned short *)(LCD_BASE  )))

write dann: LCD_DAT16 = dat;
read:   return (LCD_DAT16);
-natürlich verpackt in entspr. Funktionen;

von Philipp M. (lord-maricek)


Lesenswert?

Hi,

ok danke.
Jetzt steige ich glaub ich nicht mehr ganz durch.
Der 100 Pinner geht bis PE6 --> A22. Aber sind die Ax Pins nicht nur für 
die NOR Flashes?

Anscheint funtzt das mit dem Flash Interface nicht so, wie ichs mir 
gedacht hatte. Könnte mir bitte jemand erklären, oder einen Link, welche 
Pins ich brauche, wie das ganze in etwa funkioniert und was für ein 
Interface der Flash Chip haben muss?

MfG
Philipp

von erhardd (Gast)


Lesenswert?

... die AN2784
- Application note
Using the high-density STM32F10xxx FSMC
peripheral to drive external memories
Bank1 ist vorgesehen für SRAM/NOR;
Bei NAND weis' ich nicht, ob möglich ?!?

von Philipp M. (lord-maricek)


Lesenswert?

Hi,

danke. Jetzt hab ich alles kapiert. Nand Flashes brauchen die Ax Pins 
nicht, die sind nur für Nor Flashes. Für Nand Flashes fehlt nur der 
Select Pin für Bank 3, deswegen lässt sich nur Bank 3 mit maximal 256 MB 
betreiben.
In der Erklärung wird die NAND "NAND512W3A" benutzt, der aber leider 
abgekündigt ist. Es wäre weiterhin nett, wenn jemand einen passenden 
Chip kennt, es mir zu schreiben.

MfG
Philipp

von erhardd (Gast)


Lesenswert?

... ich habe da den NAND256-A , gewonnen durch
Heißluft von der VIP 1710, im Auge;
Aber, - ich bin auch mehr der "Praktiker";

von erhardd (Gast)


Angehängte Dateien:

Lesenswert?

...sieht doch nett aus !?!

von Philipp M. (lord-maricek)


Angehängte Dateien:

Lesenswert?

Hi,

verkaufste den? Ich wollte mehrere Chips probieren.
Ich habe den hier gefunden, der ist Baugleich mit den aus dem Manual des 
FSMC.
http://datasheet.elcodis.com/pdf/24/88/248837/nand512w3a2sn6e.pdf
Dazu habe ich mal ein Testboard erstellt. Da ich nur einseitig Ätze, und 
nicht alles auf eine Seite geht, sind die Blauen Linien dann 
Kabelbrücken.
Wär nett, wenn mal jemand drüber gucken könnte, ob alles passt.

MfG
Philipp

von chris (Gast)


Lesenswert?

Wäre ein SD-Kartenadapter nichts für Deine Platine?

von Philipp M. (lord-maricek)


Lesenswert?

Kommt auch noch mit drauf. Aber vielleicht mach ich auch so ne art 
Stecksystem, dann kann ich die Platinen einfach über einander stecken, 
oder ich muss versuchen das ganze 2Seitig zu machen. Ich muss mir aber 
noch angucken, wie die SD Karte angeschlossen wir, es gibt ja 1,4 und 8 
Wire, weiß aber nochnicht was ich nehmen muss, und wie es verkabelt 
wird.

von erhardd (Gast)


Angehängte Dateien:

Lesenswert?

...das Stecksystem habe ich schon für meine SRAM-Erweiterung verwendet;

von Michael N. (much)


Lesenswert?

Philipp Maricek schrieb:
>  Da ich nur einseitig Ätze, und
> nicht alles auf eine Seite geht, sind die Blauen Linien dann
> Kabelbrücken.
> Wär nett, wenn mal jemand drüber gucken könnte, ob alles passt.

mal davon abgesehen, dass die hälfte der Bauteile/Leitungen sich 
außerhalb des Boards befinden würde ich sagen, dass du unter dem Chip 
keine Brücken plazieren kannst.

lg much

von erhardd (Gast)



Lesenswert?

...obwohl 2-seitig, kam ich nicht um Drahtbrücken 'rum;
(die gelben Linien im .brd)
Im Vordergrund Bild 018 die beiden Porterweiterungen WS82C55,
 -- dabei bin ich grade...

von Philipp M. (lord-maricek)


Lesenswert?

Michael N. schrieb:
> Philipp Maricek schrieb:
>>  Da ich nur einseitig Ätze, und
>> nicht alles auf eine Seite geht, sind die Blauen Linien dann
>> Kabelbrücken.
>> Wär nett, wenn mal jemand drüber gucken könnte, ob alles passt.
>
> mal davon abgesehen, dass die hälfte der Bauteile/Leitungen sich
> außerhalb des Boards befinden würde ich sagen, dass du unter dem Chip
> keine Brücken plazieren kannst.
>
> lg much


Stimmt, die Kabekbrücken unter dem Chip habe ich nicht beachtet. Aber da 
liegt nichts außerhalb, Das Board unter dem Discovery ist größer, man 
kann die Dimensionen aber nicht auf dem Bild sehen. War aber auch nur 
maln erster Versuch. Ich werd das ganze nochmal vernünftig ausarbeiten 
und gleich mit SD Karten Slot.

von erhardd (Gast)


Angehängte Dateien:

Lesenswert?

... beim SD-Kartenslot orientiere Dich hieran;
dann kann man die Anbindung flexibler gestalten...

von chris (Gast)


Lesenswert?

Hast Du auch eine DEBUG-Schnittstelle auf Deiner Platine? Vielleicht 
wäre ein FTDI-Chip mit USB geeignet.

von erhardd (Gast)


Lesenswert?

... mit dem vorhandenen ST-Link des Discovery kann man,
 wenn bei so kleinen Progr. überhaupt nötig,
unter Keil-µVision4 prima debuggen...

von Philipp M. (lord-maricek)


Lesenswert?

USB ist direkt im Prozessor mit drin.
Die Debugging Schnittstelle nutzte ich, als anfänger sehr oft, da oft 
irgentwas nicht funktioniert und ich damit gut checken kann, was nicht 
geht.

von erhardd (Gast)


Lesenswert?

http://www.conrad.de/ce/de/product/411246/TRANSCEND-MICRO-SD-KARTE-2GB-DUAL/0412037&ref=list
...zum Thema SD-Karte
  -Ein Tip:
ich mache hier keine Schleichwerbung, aber hier stimmen Preis/Leistung
-beim grossen C nicht selbstverständlich ;-)
Der miniSD-Adapter wird mit Lötlack-Draht verkabelt und dient als 
Adapter
(fest montiert-geklebt) auf der LP;
Über den SD-Adapter ist der Zugriff an jedem Lesegerät möglich...

Im Bild 018 oben links, ragt dieser Adapter etwas über den Rand 
hinaus(besserer Zugriff)...

von Philipp M. (lord-maricek)


Lesenswert?

Ok danke, allerdings muss ich mir den Flash soweiso bei digikey 
bestellen, weil ich hier keinen Laden finde, der was passendes hat, da 
gibts auch günstig SD Karten und Adapter. Dann spar ich zumindest einmal 
Versand.

von erhardd (Gast)


Lesenswert?

erhardd schrieb:
> Der miniSD-Adapter wird mit Lötlack-Draht verkabelt und dient als
> Adapter
> (fest montiert-geklebt) auf der LP;

korrekter:
Der miniSD-Adapter dient als festmontierter Slot;
der SD-Adapter als Adapter der micro-SD in einem Kartenleser;
Es sind 3 Teile...

von Philipp M. (lord-maricek)


Lesenswert?

Hi,

ist vielleicht ein bisschen Off-Topic. Da ich mitlerweile SMD ätzen und 
löten kann, und das auch oft anwenden werde, und ich sowieso bei Digikey 
(Nor/Nand Flash usw.) bestellen werde, möchte ich mir ein kleines SMD 
Bauteile Sortiment zusammenstellen. Die Kondensatoren und Widerstände 
werden in 0805 sein.

Hat vielleicht jemand ne Liste mit Bauteilen, die oft verwendet werden, 
und die ich mit bestellen sollte? Preislich habe ich so 100-200Euro 
eingeplant.
Widerstände und Kondensatoren werde ich mir wohl in Rollen bestellen. 
(200,600 oder 5000).

Bisher werde ich bestellen:
-Widerstände (welche Werte wären passend? werden in vielen Schaltungen 
ja die gleichen verwendet, 10k z.b)

-Kondensatoren (Welche Werten empfehlt ihr?)

-Spannungswandler

-Dioden

Noch irgendwelche Tipps?

Wenn ich noch für jemanden mitbestellen soll, einfach ne mail schicken:
philipp.maricek@gmx.de

Bestellen werde ich gegen Ende dieser Woche, oder Anfang nächster Woche.

MfG
Philipp

von erhardd (Gast)


Lesenswert?

...schau mal unter "SMD-Sammelbestellung" hier, in diesem Kino;
Zwar vorbei, -aber alle gängigen Werte...

von erhardd (Gast)


Lesenswert?

...und frag' mal die klasse Jungs, was das für Arbeit macht...

von Philipp M. (lord-maricek)


Lesenswert?

erhardd schrieb:
> ...schau mal unter "SMD-Sammelbestellung" hier, in diesem Kino;
> Zwar vorbei, -aber alle gängigen Werte...

Danke, werde ich mal durchgehen, scheint sehr umfangreich zu sein.

erhardd schrieb:
> ...und frag' mal die klasse Jungs, was das für Arbeit macht...

Wenn du damit auf die Arbeit anspielst, die ich habe, wenn ich die 
Bestellung weiterleite, ich nehme keine 100te Bestellungen an, lediglich 
ein paar.

MfG
Philipp

von Philipp M. (lord-maricek)


Lesenswert?

Hi,

Wie der Flash angeschlossen wird, weiß ich jetzt. Aber nochmal zum 
Verständnis: Bei der 100pinner Version kann man Bank 1 (nur 64MB) und 
Bank 2 nutzen. Kann ich Bank 1 und Bank 2 (1x nand und 1 x nor Flash) 
gleichzeitig benutzten? Kann ich dann bei der 176pinner Version alle 4 
Bänke gleichzeitig nutzen? Oder jeweils nur Nor, Nand oder PCCard?

Als Flash möchte ich den hier verwenden:
http://de.mouser.com/Search/ProductDetail.aspx?R=SST39VF010-70-4I-WHvirtualkey57940000virtualkey804-39VF0107IWH
Das ist ein Multipurpose Flash. Der hat die D-Pins und A-Pins. Brauche 
ich die A-Pins(Adress), wenn ich das ding als Nand Flash anschließe?

MfG
Philipp

von bastler (Gast)


Lesenswert?

sag mal, ist da neben deinem print ein schädel explodiert? oO

von Philipp M. (lord-maricek)


Lesenswert?

bastler schrieb:
> sag mal, ist da neben deinem print ein schädel explodiert? oO

Den check ich jetzt nicht so ganz. Eine einfach ja das geht oder nein 
das geht nicht Antwort wäre hilfreicher gewesen.

von bastler (Gast)


Lesenswert?

wegen dem haare und blut sumpf auf der ram platine

von erhardd (Gast)


Lesenswert?

...ach, der meinte mich!
Nun, lieber Bastelfreund! Dies ist meine Art, die freiliegenden
Lötlackdrähte zu fixieren.
Sehr oft reisst man sonst unbeabsichtigt einen Draht ab.
Das "wie" sei jedem selbst überlassen, -dennoch ist es ratsam , es zu 
"tun"...

@ Philipp
...schau mal hier
Beitrag "Baseboard Discovery f4"
-mein Ansatz für ein Bord;
Bin dabei, die Software auf eine freie Toolchain anzupassen...

von Philipp M. (lord-maricek)


Lesenswert?

Ok danke,

ich hatte jetzt endlich auch noch einen Schaltplan von dem Keil Dev 
Board gefunden. Da sind auch NOR, NAND, LCD und RAM angeschlossen, ohne 
irgendwelche Jumper, um etwas zu deaktivieren. Anscheint geht das.

Welches LCD Board hast du verwendet?

MfG
Philipp

von erhardd (Gast)


Lesenswert?

...schau mal hier
Beitrag "Re: LPC2148-DRAW"
- ist ein 3,2" Touchscreen mit ILI-Controller;
-seinerzeit bei STEITEC bezogen(googlen);
gibt's aber auch in deutschen Landen bei WATTEROTT ...

von erhardd (Gast)


Lesenswert?

...zu deiner Frage
Philipp Maricek schrieb:
> Kann ich Bank 1 und Bank 2 (1x nand und 1 x nor Flash)
> gleichzeitig benutzten?

Du sprichst verschiedene Adressbereiche an. Dies führt zu 
unterschiedlichen Chip-select Signalen. Je nachdem welche Bank, ist dies 
NE1 bis 4 oder NCE2
oder ähnliches.
Für Memory-übergreifenden Zugriff ohne Zutun der CPU gibt's dann noch
DMA. Aber das steht auf einem anderen Blatt ...

Bei mir(meinem Board) führe ich NE1 als CS auf einen 74HC00.
Einmal negiert und "ver-nandet" mit den Adressleitungen für A23 (LCD_CS) 
und
nochmal mit A22 (EXP_CS) (und A21 für SRAM);
Je nachdem, was ich ansprechen will, setze ich die Adressleitungen;
Dies geschiet bereits automatisch durch das Festlegen der 
address-base...

Hoffe, ich konnte helfen ...

von Philipp M. (lord-maricek)


Lesenswert?

Hi,

ja danke.
Als Nor Flash wollte ich den hier verwenden.
http://de.mouser.com/ProductDetail/Spansion/S29GL256P11TFI010/?qs=boflksbqthq5DfGNsW9NejUUe%2f6N%2fuhrXbhY9Uv3p9g%3d
 der hat als Schnittstelle "Page Mode", es sind allerdings die gleichen 
Pinbezeichnungen, oder bei Flashes mit "CFI" sind auch die gleichen 
Pinbezeichnungen. Kann ich einen Flash mit CFI oder Page Mode auch 
verwenden, oder muss es parallel sein?

Ich hab bei mouser keinen passenden NAND Flash gefunden, und möchte 
nicht noch extra irgendwo anders für einen Flash bestellen. Deswegen 
habe ich mir diesen MultiPurpose Flash ausgewählt:
http://de.mouser.com/Search/ProductDetail.aspx?R=SST39VF010-70-4I-WHvirtualkey57940000virtualkey804-39VF0107IWH
Der hat allerdings auch Adress Pins, wenn ich den als NAND verwenden 
will, muss ich die Adress Pins trotzdem verwenden?

MfG
Philipp

von erhardd (Gast)


Lesenswert?

...nun, -lass' die Frage einfach mal so im (Forum-)Raum stehen;

Ich bin dabei, den vorhandenen Flash vollzuschreiben;
Dabei gibt's genug Baustellen. z.B. Web-Zugriff. Den habe ich zwar schon 
begonnen:  Beitrag "stm32f4 --> LwIP_Aufbauvorschlag",
 aber die Audio mp3-Ausgabe ist jetzt aktueller...
Wünsch Dir
           - Gutes Gelingen -

von Dimitri M. (dimitri)


Lesenswert?

Ich hab's geschafft, ein USB PHY an Discovery anzuschliessen. Das 
Mikrofon musste weichen.

von Dimitri M. (dimitri)


Lesenswert?

EVOPrimer für STM32F4xx hat RAM, Camera und hi-speed OTG schon drauf.

Die Chinesen bieten ein Board mit STM32F407 mit RAM und Flash und allen 
Pins nach aussen.

von erhardd (Gast)


Lesenswert?

Beitrag "stm32f4-USB Buchse TypB"
...hier hatte ich auch eine Lösung Vorgestellt;
-- und alles noch drauf...

von erhardd (Gast)


Lesenswert?

@Dimitri M. (dimitri)
...und vergess nicht den Spass an der Freude, wenn man ein Board, das in 
den Staaten und Canada verschenkt wird, Stück für Stück ebenso wertvoll 
macht, wie ein gekauftes (um die 200€ von Olimex u.a.);...

von erhardd (Gast)


Lesenswert?

...und ich bin es leid, dem deutschen Zoll für jede Leuchtdiode in einem 
100-er Beutel eine Einfuhrunbedenklichkeits- und 
Abfallbeseitigungserklärung abzugeben...

von Dimitri M. (dimitri)


Lesenswert?

Das Chinesische Teil kostet 45-50 USD. Inkl. Lieferung.

http://www.ebay.com/itm/170818749248?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

Beim Discovery-Board sind in der Tat viele nützliche Pins anderweitig 
belegt. So musste ich für hi-speed USB PHY das Mikrofon killen. Zuerst 
mit Seitenschneider dann mit glühend heissem Lötkolben.

von Philipp M. (lord-maricek)


Lesenswert?

Hi,

danke für die Tipps, konnte grad noch das letzte ergattern. Das sieht 
ganz interessant aus. Mal schauen obs Probleme beim Zoll oder so gibt.
Werde mich melden, wenn ich dazu maln feedback geben kann.

von Dimitri M. (dimitri)


Lesenswert?

In der Schweiz macht der Zoll keine Probleme. Bis 60 CHF wird 
durchgewinkt. Der nette Chinese gibt den Wert bei 20 USD an. Ich habe 
bei ihm bereits bestellt und die Ware erhalten. Das Board mit STM32F407 
hatten sie damals noch nicht. So kaufte ich eines mit STM32F207 drauf.

Und dann... schickten sie es nach Swaziland statt Switzerland :-D Es 
ging noch mal gut: die Post korrigierte die Adresse.

Er hat übrigens mehr als 10 (more than 10 available) ;-)

von Philipp M. (lord-maricek)


Lesenswert?

Oh ja stimmt, das hab ich garnicht gesehen.

Mal schauen was Zoll DE sagt. Die holen eigentlich immer gerne 
irgendwelche Elektronik raus.
Wenn ich hinmuss, hat jemand Erfahrung gemacht, was ich alles brauche?
Die Rechnung von Ebay und die Bestätigung von paypal?

Philipp

von Dimitri M. (dimitri)


Lesenswert?

Mehr wirst du wohl auch nicht bieten können, oder?
Grundsätzlich musst du nichts nachweisen. Der Verkäufer deklariert den 
Wert und basta. Ich glaube nicht, die beim Zoll würden irgendwie dagegen 
argumentieren können. Das Board sieht "billig" aus. Es ist kein 
Tablet-PC oder so.

von Dimitri M. (dimitri)


Lesenswert?

Hier ist mein "Shield" für das Discovery-Board (russisch-sprachiges 
Forum aber sollte klar sein)

http://forum.easyelectronics.ru/viewtopic.php?f=17&t=9886

Ich nehme an, die Post übernimmt die Verzollung (kostet halt etshhas 
extra)

von erhardd (Gast)


Lesenswert?

...nun, dann sind wir jetzt 3, die mit dem neuen Teil demnächst 
entwickeln...

von Dimitri M. (dimitri)


Lesenswert?

Ich reizt mich ungemein, mit STM32F4xx etwas Besonderes zu kreieren. 
Hi-speed USB ist nun bewältigt. Die Camera mit JPEG-Komprimierung kommt 
vermutlich als nächstes.

von erhardd (Gast)


Lesenswert?

... der Zoll beanstandet, das die Rechnung nicht, wie vorgeschrieben 
(vom deutschen Zoll für den Rest der Welt), aussen sichtbar angebracht 
wurde und somit eine Berechnung der Zollgebühren nicht möglich ist...

von Dimitri M. (dimitri)


Lesenswert?

Die Chinesen benützen doch auch diesen grünen Zettel, oder?

von erhardd (Gast)


Lesenswert?

...reicht nicht...

von Philipp M. (lord-maricek)


Lesenswert?

Danke,

wir wollen ein autonomes Fluggerät mit dem Stm32f4 entwickeln, bzw. ein 
Modellflugzeug mit Flugstabilisierung und Autopilotfunktion. Vielleicht 
sogar Auto-Landungen. Dazu gehört z.b. eine Sensorfusion von 3-Achs Gyro 
+ Acc und Magnetometer. Der Gyro wird mit 8kHz und der Acc mit 1kHz 
geupdatet. Da ist auch die DMA und FPU sehr hilfreich.

Philipp

P.S. Ich möchte hier bitte kein Beiträge zu Gesetzten usw. haben, die 
z.b. UAV's verbieten. Wir kennen unsere Rechte und Pflichten und halten 
die ein.

von Barney (Gast)


Lesenswert?

Was braucht man eigentlich um LAN ans Discovery zu bringen? Reicht eine 
RJ45 mit Uebertrager oder muss da auch ein PHY dran?

von Philipp M. (lord-maricek)


Lesenswert?

Hi,

sorry dass ich schon wieder damit nerve, aber ich habe heute dieses 
Display modul bekommen und werde damit ein bisschen mit meinem Discovery 
Experementieren, bis das Board vom Chinamann mit der 144pinner Version 
kommt.
http://de.mouser.com/ProductDetail/mikroElektronika/MIKROE-495/?qs=jBNCx3lXxWvH4dQ1aeiElfFbOEUFzRAgm6jooJRy7Pk%3d
Das mit der Adressleitung und Adressbase habe ich irgenttwie noch nicht 
so ganz gerallt.

Die Pins D1-8 und 10-17 werden an den MCU angesclossen, extra 
Adresslines gibt es nicht -> also Multiplexed Mode?

Die Adresse hat 12bit, also 2^12 = 4096byte bzw. 8192, weil immer 2 byte 
gelesen wird?

Der RS Pin soll an einen Ax Pin, und das LCD sollte dann über die 
Adress-Base ansprechbar sein, aber wie funktioniert das genau? Welcher 
Pin genau, und wie finde ich die Adress Base für Register und Ram des 
LCD's raus?

Man gibt bei Bank 1 zwar eine Adresse von 0x60000000 - 0x6FFFFFFF an, 
aber der FSMC müsste das doch theoretisch umrechnen, dass er von 0x00 
anfängt?
Aber der FSMC hat doch nur 24 Adress Pins, das entspräche doch nur einem 
Adressraum von 16Mbyte, bzw. 32Mbyte, wenn der FSMC immer in 16bit 
schritten liest? Wie kommt man dann auf die 64Mbyte pro NOR/SRAM 1/4 
Bank?

Ich hoffe ihr könnt mich nochmal helfen.

MfG
Philipp

P.s. Das hier habe ich noch gefunden, da steht aber auch nur drin, dass 
ich den LCD RS Pin an Ax anschließen muss und die zwischen Register und 
Ram mittels Adres base wechsel.

von Philipp M. (lord-maricek)


Lesenswert?


von erhardd (Gast)


Lesenswert?

...da geht einiges munter durcheinander;
-bereits in meinem ersten post habe ich darauf hingewiesen:

erhardd schrieb:
> Allerdings nur 1 Bank(da nur ein FSMC- NE1/NCE2 auf PD7 ) = Bank1;
> -alle Zugriffe über Pointer:
>    /* LCD /CS is NE1 - Bank 1 of NOR/SRAM Bank1~4       */
> #define LCD_BASE   0x60000000UL
>
> dementsprechend:
> #define LCD_REG16(*((volatile unsigned short *)(LCD_BASE  )))

-pointer sind Zeiger auf die Adresse eines Registers;
wenn die Adresse "LCD_BASE" gleich 0x60000000 (32-bit = 8x4bit) ist,
besagt bit[27:26] == b00 , das es Bank 1 ist.
bei b01 entspricht Bank2
    b10            Bank3
    b11            Bank4

-bei 8-bit ext.Memory HADDR[25:0] 64Mbytesx8bit
-bei 16-bit              [25:1 >> 1] 64Mbytes/2 x 16bit;

#define LCD_REG16(*((volatile unsigned short *)(LCD_BASE  ))) bedeutet,
 die 16bit Daten, die auf den Registerplatz, auf den der Pointer zeigt,
 gelegt werden, -- sind für das LCD-Kommandoregister bestimmt;
dementsprechend:

#define LCD_DAT16  (*((volatile unsigned short *)(LCD_BASE | 
0x00020000)))  // A16(RS) = 1
 die 16-bit Daten sind für den RAM des LCD bestimmt(Pixeldaten);

A16 ist auf RS, die Command/Daten - Umschaltung des LCD zu legen;

-all dies ist hier angewendet worden, Du hättest es nur lesen müssen :-(
http://www.mikrocontroller.net/attachment/142183/myboard.7z

von erhardd (Gast)


Lesenswert?

...von hier:
Beitrag "stm32f4 Bord"

von Philipp M. (lord-maricek)


Lesenswert?

Hi,

das DevBoard vom Chinamann ist heute gekommen, mit dem SRAM und NAND 
Flash drauf. Der SRAM ist auch schon in betrieb, aber beim Nand Flash 
habe ich noch so Probleme. Wenn ich das "Hello" in den Flash schreibe, 
und danach wieder auslese, bekomme ich nur "O" ausgegeben, und ich frage 
mich wo der rest abgeblieben ist.
Der NAND hängt an Bank2.
Hier die Initfunktion:
1
void NAND_Init(void) {
2
  RCC_AHB3PeriphClockCmd(RCC_AHB3Periph_FSMC, ENABLE);
3
  RCC_AHB1PeriphClockCmd(
4
      RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOG | RCC_AHB1Periph_GPIOE,
5
      ENABLE);
6
7
  GPIO_InitTypeDef gpio;
8
  gpio.GPIO_Mode = GPIO_Mode_AF;
9
  gpio.GPIO_OType = GPIO_OType_PP;
10
  gpio.GPIO_PuPd = GPIO_PuPd_NOPULL;
11
12
  //GPIOD
13
  gpio.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5
14
      | GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10
15
      | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_14 | GPIO_Pin_15;
16
  GPIO_Init(GPIOD, &gpio);
17
18
  GPIO_PinAFConfig(GPIOD, GPIO_PinSource0, GPIO_AF_FSMC);
19
  GPIO_PinAFConfig(GPIOD, GPIO_PinSource1, GPIO_AF_FSMC);
20
  GPIO_PinAFConfig(GPIOD, GPIO_PinSource4, GPIO_AF_FSMC);
21
  GPIO_PinAFConfig(GPIOD, GPIO_PinSource5, GPIO_AF_FSMC);
22
  GPIO_PinAFConfig(GPIOD, GPIO_PinSource6, GPIO_AF_FSMC);
23
  GPIO_PinAFConfig(GPIOD, GPIO_PinSource7, GPIO_AF_FSMC);
24
  GPIO_PinAFConfig(GPIOD, GPIO_PinSource8, GPIO_AF_FSMC);
25
  GPIO_PinAFConfig(GPIOD, GPIO_PinSource9, GPIO_AF_FSMC);
26
  GPIO_PinAFConfig(GPIOD, GPIO_PinSource10, GPIO_AF_FSMC);
27
  GPIO_PinAFConfig(GPIOD, GPIO_PinSource11, GPIO_AF_FSMC);
28
  GPIO_PinAFConfig(GPIOD, GPIO_PinSource12, GPIO_AF_FSMC);
29
  GPIO_PinAFConfig(GPIOD, GPIO_PinSource14, GPIO_AF_FSMC);
30
  GPIO_PinAFConfig(GPIOD, GPIO_PinSource15, GPIO_AF_FSMC);
31
32
  //GPIOG
33
  gpio.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_9;
34
  GPIO_Init(GPIOG, &gpio);
35
36
  GPIO_PinAFConfig(GPIOG, GPIO_PinSource6, GPIO_AF_FSMC);
37
  GPIO_PinAFConfig(GPIOG, GPIO_PinSource7, GPIO_AF_FSMC);
38
  GPIO_PinAFConfig(GPIOG, GPIO_PinSource9, GPIO_AF_FSMC);
39
40
  //GPIOE
41
  gpio.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10
42
      | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14
43
      | GPIO_Pin_15;
44
  GPIO_Init(GPIOE, &gpio);
45
46
  GPIO_PinAFConfig(GPIOE, GPIO_PinSource7, GPIO_AF_FSMC);
47
  GPIO_PinAFConfig(GPIOE, GPIO_PinSource8, GPIO_AF_FSMC);
48
  GPIO_PinAFConfig(GPIOE, GPIO_PinSource9, GPIO_AF_FSMC);
49
  GPIO_PinAFConfig(GPIOE, GPIO_PinSource10, GPIO_AF_FSMC);
50
  GPIO_PinAFConfig(GPIOE, GPIO_PinSource11, GPIO_AF_FSMC);
51
  GPIO_PinAFConfig(GPIOE, GPIO_PinSource12, GPIO_AF_FSMC);
52
  GPIO_PinAFConfig(GPIOE, GPIO_PinSource13, GPIO_AF_FSMC);
53
  GPIO_PinAFConfig(GPIOE, GPIO_PinSource14, GPIO_AF_FSMC);
54
  GPIO_PinAFConfig(GPIOE, GPIO_PinSource15, GPIO_AF_FSMC);
55
56
57
  //FSMC
58
  FSMC_NANDInitTypeDef fsmc;
59
  FSMC_NAND_PCCARDTimingInitTypeDef time_1;
60
  FSMC_NAND_PCCARDTimingInitTypeDef time_2;
61
  fsmc.FSMC_AttributeSpaceTimingStruct = &time_1;
62
  fsmc.FSMC_CommonSpaceTimingStruct = &time_2;
63
64
  FSMC_NANDStructInit(&fsmc);
65
  FSMC_NANDInit(&fsmc);
66
  FSMC_NANDCmd(FSMC_Bank2_NAND,ENABLE);
67
68
}

Und hier die Main Funktion:
1
#define Bank1_SRAM2_ADDR  ((uint32_t)0x64000000)
2
#define Bank2_NAND_ADDR ((uint32_t)0x70000000)
3
4
/* Includes */
5
#include "stm32f4xx.h"
6
#include "stdio.h"
7
#include "stdlib.h"
8
#include "arm_math.h"
9
#include "arm_common_tables.h"
10
11
12
void SRAM_Init(void);
13
void SRAM_WriteBuffer(uint16_t* pBuffer, uint32_t WriteAddr,
14
    uint32_t NumHalfwordToWrite);
15
void SRAM_ReadBuffer(uint16_t* pBuffer, uint32_t ReadAddr,
16
    uint32_t NumHalfwordToRead);
17
18
void NAND_Init(void);
19
20
int main(void) {
21
  int i = 0;
22
23
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
24
25
  SRAM_Init();
26
  NAND_Init();
27
28
  uint16_t out[50];
29
  uint16_t in[50];
30
31
  SRAM_WriteBuffer(out, 0x00, 50);
32
  SRAM_ReadBuffer(in, 0x00, 50);
33
34
  *(uint8_t*)(Bank2_NAND_ADDR+0) = 'H';
35
  *(uint8_t*)(Bank2_NAND_ADDR+1) = 'E';
36
  *(uint8_t*)(Bank2_NAND_ADDR+2) = 'L';
37
  *(uint8_t*)(Bank2_NAND_ADDR+3) = 'L';
38
  *(uint8_t*)(Bank2_NAND_ADDR+4) = 'O';
39
40
  uint8_t aa[] ={0,0,0,0,0};
41
  for(int i=0;i<5;i++)
42
  {
43
    aa[i] = *(uint8_t*)(Bank2_NAND_ADDR+i);
44
  }
45
46
  while (1) {
47
    i++;
48
  }
49
}

Die Timingwerte habe ich direkt in fsmc.c angepasst. Aber nur tar und 
tclr musste ich anpassen, der rest hat gepasst.

Hab ich was vergessen oder einen Pins falsch initialisiert?

MfG
Philipp

von Philipp M. (lord-maricek)


Lesenswert?

So, nochmaln kleines Update, aber es läuft immer nochnet. Ich habe das 
Waitfeature aktiviert, und warte mit schreiben und lesen immer bis ich 
eine Steigende Flanke bekomme, dann müsste er ja fertig sein, aber immer 
noch das gleiche. Wenn ich als letztes nen anderen Buchstaben sende, 
bekomme ich dann den in allen Array Elementen.
1
*(uint8_t*)(Bank2_NAND_ADDR+0) = 'H';
2
  while(!FSMC_GetFlagStatus(FSMC_Bank2_NAND,FSMC_FLAG_RisingEdge));
3
  *(uint8_t*)(Bank2_NAND_ADDR+1) = 'E';
4
  while(!FSMC_GetFlagStatus(FSMC_Bank2_NAND,FSMC_FLAG_RisingEdge));
5
  *(uint8_t*)(Bank2_NAND_ADDR+2) = 'L';
6
  while(!FSMC_GetFlagStatus(FSMC_Bank2_NAND,FSMC_FLAG_RisingEdge));
7
  *(uint8_t*)(Bank2_NAND_ADDR+3) = 'L';
8
  while(!FSMC_GetFlagStatus(FSMC_Bank2_NAND,FSMC_FLAG_RisingEdge));
9
  *(uint8_t*)(Bank2_NAND_ADDR+4) = 'O';
10
  while(!FSMC_GetFlagStatus(FSMC_Bank2_NAND,FSMC_FLAG_RisingEdge));
11
12
  uint8_t aa[] ={0,0,0,0,0};
13
  for(int i=0;i<5;i++)
14
  {
15
    aa[i] = *(uint8_t*)(Bank2_NAND_ADDR+i);
16
    while(!FSMC_GetFlagStatus(FSMC_Bank2_NAND,FSMC_FLAG_RisingEdge));
17
  }

Irgentwleche Tipps?

MfG
Philipp

von Timo W. (twischer)


Lesenswert?

erhardd schrieb:
> ...das Stecksystem habe ich schon für meine SRAM-Erweiterung verwendet;

Hi Erhard,

mich würde interessieren, ob du um das RAM verwenden zu können noch 
etwas auf dem Discovery-Board verändert hast?
Was ist mit den Ausgängen INT1 und INT2 vom Gyroskop? Wie sieht das mit 
der Over-Current-Signalisierung vom USB-Host aus. Hast du R50 
ausgelötet?

Könntest du die Eagle-Datei vom Schaltplan mit anhängen.

von erhardd (Gast)


Angehängte Dateien:

Lesenswert?

Hallo, Timo
...hier mal die eagle -Dateien;
-allerdings habe ich das Projekt abgebrochen, wegen der Beschränkungen
durch die Mehrfachbelegung der Pins;
bei www.PowerMCU.com gibt's die 144-pin Variante mit allem drauf
(spart Nerven);

von erhardd (Gast)


Angehängte Dateien:

Lesenswert?

...so besser?

von Timo W. (twischer)


Lesenswert?

Super erstmal großes Dankeschön.

Hattest du den das RAM erfolgreich nutzen können.
Bin am überlegen ob ich das Gyroskop runterlöte.

Ansich finde ich das Board nämlich ganz gut. Vor allem bei dem Preis. Da 
kann man sich auch mal ein paar mehr von kaufen.

Gruß

Timo

von erhardd (Gast)


Lesenswert?

...wenn Du die Komponenten des Boards nicht aktivierst
(sprich-enable), stören die auch nicht;
Ob im Einzelfall ein Pin per SW auf z-impedanz(oder hochohmig und 
Eingang)
zu schalten ist, hätte ich als nächstes überprüft;
...ansonsten, billiger geht's nur in den Staaten und wohl auch Kanada.
Da gibt's (gab's?) das Board als Werbegeschenk...

von erhardd (Gast)


Lesenswert?

...Zusatz:
RAM über FSMC und mux-enable;
FSMC macht keine Probleme, (auch DMA und DCMI nicht);
schau mal Beitrag "Baseboard Discovery f4"
da läuft der Zugriff auf die beiden Porterweiterungen WS82C55
auch über FSMC...

von erhardd (Gast)


Lesenswert?

...sind, soweit ich mich erinnere(4 Wochen sind die halbe Ewigkeit),
die gleichen Addr/Datenltg. ;
- nur NE2-Pin negiert und vernandet, damit SRAM und Porterweiterung
getrennt angesprochen werden können;
Frag bitte nicht nach einem Schaltplan.
Die "Kleinigkeit" habe ich aus dem Gedächtnis(und Datenblatt :)   )
verdrahtet...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.