Forum: Mikrocontroller und Digitale Elektronik Hilfe, Start mit Cypress CY4640, Aller Anfang ist Schwer!


von Beginner (Gast)


Lesenswert?

Hallo Leute.

Ich werde demnächst mit dem EVA-Board Cypress Cy4640 arbeiten.
Es hat den Controller CY7C67300 drauf.

Ich hab zwar schon viel in C geschrieben (Anwendungen für Windows) und
in Praktikas(Studium Elektrotechnik) kleine Programme in Assembler
geschrieben und auf einen 16-Bit Controller geladen.
Der Controller war aber schon komplet verkabelt und bestückt.

Jetzt steh ich vor dem Problem das ich das Bord habe aber keine Ahnung
habe wie ich ein C Programm auf meinem Controller zu laufen bekomme.

Ein paar Tips für den Start wären nicht schlecht. Vorschlag für
Enwicklungsumgebung, Möglichkeiten zum Laden auf Controller usw.

Ich hoffe es ist jemand dabei der schon mal mit dem nichtso
verbreiteten CY7C67300 zu tun hatte.

Danke schon mal im vorraus!!

von Clemens (Gast)


Lesenswert?

Hallo ich habe mich auch schon damit beschäftigt und wenn du das Getting
Started von Cypress liest dürfte es kein Problem sein! Ließ das mal
durch, wenn du es dann immer noch nicht geschafft hast poste nochmal!

Und sonst halte mich auf dem laufenden, es interessiert mich nämlich
wie du mit dem mitgelieferten Sourcecode zurecht kommst! Ich hatte
nämlich meine Probleme damit (Geschwindigkeit)! Obwohl ich (meiner
Meinung nach) den Code so gut wie möglich optimiert habe.

von Clemens (Gast)


Lesenswert?

Was hast du eigentlich genau damit vor? Denke mal etwas mit USB und MSD.
Vielleicht könnten wir ein bisschen zusammenarbeiten!?!

von Beginner (Gast)


Lesenswert?

Tach. Sorry für die verspätete antwort.

Ich baue einen Host für eine Messgerät das die Daten nur über einen
Parallelen Ausgang für einen Drucker ausgibt. Meine Host soll diese
Daten nun in BMP-Format auf einen USB-Stick speichern.

Des weiteren soll ein LCD Display, ein RTC, 4 Taster, 1 LED, und evtl.
eine Tastatur angeschlossen werden.

Recht umfangreich aber ich denke machbar.

von Clemens (Gast)


Lesenswert?

Verwendest du die Software von Cypress und änderst sie für deine
Anwendung ab, oder willst du was eigenes machen?

von Beginner (Gast)


Lesenswert?

Ich werd den C-Code von Cypress als basis verwenden.
Ich reduziere ihn auf das was ich benötige (erstellen einer Datei, und
schreiben in eine Datei) und füge dann denn restlichen cod selber an,
fals ich nicht noch fertigen Code finde.
Aber Tastatur einlesen, Display ansteuern usw. hab ich schon mal
gemacht.
Neu wird die Menüführung und die RTC. Ebenfalls das Wandeln des
Bitflusses vom Parrallel Port (nicht = LTP beim PC/Drucker)in den
Bitstrom für die Bitmap incl. Header. Dafür hab ich aber schon
Berechnungstabellen erstellt. Müste auch funktionieren.

Ich werd jetzt erstmal alle Teile bestellen und ein Layout für die
Platine erstellen und ätzen lassen.

Ich denke das ich wegen der übersicht zum schreiben Microsoft Visual
C++ verwende, aber compiler, linker usw. verwende ich die Software von
Cypress (von der mitgelieferten CD)

von Clemens (Gast)


Lesenswert?

Ich habe wie gesagt auch alles von Cypress verwendet bis auf den Editor!
Den Code habe ich auch auf das nötigste begrenzt. Ich hab Daten, die ich
mir über SPI per DMA geholt habe auf den Stick gespeichert! Allerdings
hab ich keine akzeptable Geschwindigkeiten erreicht. Das schreiben auf
den Stick hat ewig gedauert (für 2MB ca.8min). Wobei ich mir sicher
bin, dass das Problem nicht an der SPI Seite war. Dort ging es flott!

Ich hatte das Gefühl, dass das Problem bei der FAT Verwaltung lag. Aber
sicher kann ich es nicht sagen!

Vielleicht kannst du mir dann ja helfen bzw. wir helfen uns gegenseitig
aber im Moment weiß ich nicht mehr weiter.

Wenn du fragen zum Layout hast kann ich dir helfen weil da hab ich ein
funktionierendes.

Mfg

Clemens

von "Beginner" (Gast)


Lesenswert?

Ich denke das meine Daten nicht besonders groß sein werden, da die
Bilder s/w sind und maximal 600x800 Pixel, wenn überhaupt.
Was hast du denn für ein Layout?
Ich mache morgen die Bestellung bei Reichelt für LCD usw. fertig.

Anstatt einer Realtimeclock habe ich von einem Kollegen gehört das
Timekeeper eine alternative wäre. Aber er meint diese Technik ist
relativ alt. Ich hab mir schon einen rausgesucht, bei dem ich den
freien Speicher für den Standart Header für meine Bitmap nutzen kann.
Hast du irgendeine Erfahrung mit sowas?
Ich brauche: Eine Uhr mit Datum (freier Speicher ist nicht verkehrt)
(-gibts da auch was von Ratiofarm?-)
Ansonsten nehm ich den M48T37Y der passt ganz gut an die Schnittstelle
für den Externen Speicher. Und kann ich als Uhr und Speicher
verwenden.

Ich denke dass ich nächste woche mit dem Platinenlayout beginnen werde.
Erstellen werd ich es in Eagle. Mal sehen wie lange ich brauche, hab
nämlich schon lang nichts mehr damit gemacht und sind doch relativ
viele Leitungen und IC's

Vom Programmieren bist Du mir noch einen Schritt voraus. Ich denke mit
der Software werd ich anfangen, wenn das Layout steht.
Beginn Layout, Montag nächste Woche.

Fragen zu deinem Problem:
-Was für ein Fat benützt du?
-Speicherstickgröße?
-Ist Stick Partitioniert/oder leer?
-Art der Datei? (wahrscheinlich trivial)
-Größer der Datei?

Wie hast du übrigens die 5 Volt für den USB-STick erzeugt?
Der controller läuft ja mit 3,3V. Ich hab mir das noch nicht
angeschaut.

Weiter laufen meine ganzen anderen Bausteine mit 5V-Logik. Gibt es da
ein Problem. Ich denke die anderen Bausteine müßten bei ihrer
ttl-logik, die ja bei 2,0V Hi beim IMPUT erkennt, den im datenblatt mit
min. 2,4V angegebenen Hi-level des Controllers erkennen. Ebenso sind die
Eingänge des Controller bis 5,5V belastbar.
Hast du da Irgendwelche Probleme gehabt?

Das reicht fürs erste an Text :-)

von Michael (Gast)


Lesenswert?

Hallo Beginner,

nachdem ich lange überlegt habe, auf welchem Weg ich meinen USB Host
Controller realisieren soll, habe ich mich genau wie du für den
CY7C67300 entschieden.

Nur kurz zur Information, mein USB Host hat die Aufgabe mehrere
Gamepads auszulesen, die Daten zu multiplexen und über SPI wieder
auszugeben.

Nun zu meinen Fragen, ich habe mir gedacht, auch ein CY4640 Starterkit
anzulegen, da es immer ganz schön ist, mit einer Hardware anzufangen,
wo man weiß, das sie funktioniert. Lohnt es sich? Lassen sich hiermit
auch HID-Devices (also Gamepads) ansprechen, also kann ich quasi den
Mass Storage Kram rausschmeißen?

Unterstützt der Controller auch in system debugging oder besitzt er
wirklich nur ein Bootloader?

Und hast du vielleicht schon ein Eagle Symbol erstellt für den
Controller und könntest es mir zur Verfügung stellen?


Vielen Dank erstmal und Gruß
Michael

von Michael (Gast)


Lesenswert?

Entschuldigung, aber ich muss meine Frage einfach nochmal hervorkramen.
Wenn mir jemand anderes helfen kann, darf er dies natrülich auch tun
;-)

Gruß
Michael

von Clemens (Gast)


Lesenswert?

Hallo!

@beginner
Sorry dass ich erst jetzt schreibe!

FAT16/32 beides schon probiert!
Partitioniert bzw. formatiert!
Bitmap!
ca. 2,1MB

Mit den  5V Bausteinen dürftest du keine Probleme haben!

Aber was ich gelesen habe kannst du die i2c schnittstelle nicht per
software ansteuern! Habs vielleicht auch nur zu wenig genau gelesen
weil ich es nicht gebraucht habe! RTC musst du im Prinzip selber
entscheiden was sinnvoll ist! Ich habe bis jetzt nur mal etwas mit
einer von Phillips gearbeitet! PCF8583 glaub ich war es! Ist relativ
einfach zu handhaben vorausgesetzt man hat eine I2C Schnittstelle!
Sonst wird es um die I2C Schnittstelle schwerer! Aber für die gibt es
einige Codebeispiele hier im Forum(zwar für AVR aber kann man sicher
mit ein bischen Anpassung verwenden)!

@Michael!

Natürlich kannst du das MSD Zeug rauskicken! Ist halt ein kleiner
aufwand weil die Software doch relativ umfangreich ist!
In System Debugging unterstützt er glaub ich schon bin mir aber nicht
ganz sicher => Schau mal im Datenblatt!

Ich habe immer UART mit printf zum debuggen verwendet!


Grüße Clemens

von Beginner (Gast)


Lesenswert?

Tach.
Mein Layout ist jetzt soweit fertig.

Ab Mittwoch gehts mit Softwareprogrammieren los.

Kannst du mir einen Tipp geben wo mann am besten anfängt?
Wenn das nicht konkret geht werde ich schon was finden, es ist
eigentlich recht gut geschrieben

die I2C schnittstelle brauch ich eh nicht.



@Michael : Clemens hat recht-> MSD kannst du rauskicken.
Aber für deine Gamepads brauchst du Treiber. Ich denk die sind nicht so
kompliziert, aber wenn du sie nicht irgendwo her bekommst, wirst du sie
selber schreiben müssen. Ich kenn mich nicht näher mit den Devices aus,
ob es irgendwelche Standarttreiber für Gamepads gibt oder nicht, aber
das CY-4640 hat meines wissens nur die MSD Treiber.

von Beginner (Gast)


Lesenswert?

@michael nachtrag.

Für deine Gamepads mußt du selber Treiber schreiben in c und die dann
in dein Projekt (oder in das vorhandene) als Treiber einfügen.
Wie mann das macht findet mann in den Unterlagen vom EVA Board oder im
Internet auf Cypress.
siehe Kapitel oder Stichwort " your_drvr.c "

von Michael (Gast)


Lesenswert?

Ah danke für die Information, und ich hatte immer gedacht Gamepads
laufen auch unter der Klasse HumanInterfaceDevice (HID). Aber da werden
dann wirklich nur Maus und Tastatur unterstützt, sehe ich das richtig?

Für meine Hardware hatte ich mir jetzt überlegt, das ich ziemlich genau
die Hardware des Simplified EZ-Host Mass Storage Example" übernehmen
werde, nur das beide Sie's als Host geschaltet werden. Die Festplatte
wird bei mir auch gestrichen.

Ich habe allerdings noch ein paar Fragen:
@Beginner: Wie bootest du dein Host Controller, wenn nicht über ein
      I2C EEPROM?

nochmal @Beginner: Könntest du vielleicht dein Eagle Symbol des
CY7C67300 zur Verfügung stellen, ich würde mich sehr freuen.

Kann jemand abschätzen wie viel externer SRAM für ein minimalistisches
Sytem benötigt wird. Im Beispiel sind 64kB 16Bit Ram angegeben. Man
soll aber auch 8Bit Ram verwenden können. Habt ihr hier schon
Erfahrungen?


Viele Grüße
Michael

von Beginner (Gast)


Angehängte Dateien:

Lesenswert?

@michael

Poste deine Mail dann schicke ich es Dir.

Mit der Speicherverwaltung bin ich mir noch nicht ganz klar.
aber ich denke das der Speicher im uC selber für den Code reicht.
Zusätzlich hab ich noch den Speicher vom Timekeeper.

Wie ich das sehe, steht entweder in der Board.h oder .c , oder irgendwo
wo noch die DIP schalter und das CPLD erwähnt werden, von welchem EEPROM
gebootet werden. (siehe CY4640 User'Manual page4-12)

Ich denke wenn mann denn ganzen rest von Code den man nicht braucht
rauswirft, und das ist ne menge, dann sollte der Platz im Controller
reichen.

von Beginner (Gast)


Lesenswert?

Brauchst email nicht schicken.
Hab datei im Beitrag mit angehängt.

Ist irgendwo in dieser LIB

MFG

von Michael (Gast)


Lesenswert?

Ich sag einfach mal besten Dank!!!
Ich habe jetzt auch angefangen mein Board zu routen. Wie gesagt, ich
orientiere mich dabei an dem "Simplified EZ-Host Mass Storage
Example". Dabei werde ich zunächst einfach mal das RAM mit einplanen,
man weiß ja nie, weglassen kann man es ja immer noch in einer späteren
Version.

PS: Du hattest mich ja ein wenig verunsichert, aber Gamepads gehören
mit zur HID Class.


Gruß
Michael

von Beginner (Gast)


Lesenswert?

Ja gamepad gehören zu HID class, aber die vorhandenen Treiber erkennen
nur einen USB-MSD. Alles andere musst du dir selber schreiben, oder von
woanders daszu kopieren.

von Beginner (Gast)


Lesenswert?

Da bin ich wieder.
so erster Softwareentwurf fertig.

Wie hast du die software auf deinen Controller gebracht?

Beide USB- SIE's sind auf Host so wie ich das sehe, und der Computer
erkennt den Controller zwar als Host Controller aber nicht als Device,
für welches die Treiber schon installiert sind.
Ich muss jetzt noch mal das Datenblatt wälzen,
aber wäre für jeden Tipp dankbar.

von beginner (Gast)


Lesenswert?

Habs gefunden, muss pin 31 und 30 auf high ziehen, damit er in den
stand-alone mode bootet.
funktioniert aber noch nicht ganz.

von beginner (Gast)


Lesenswert?

Wie hab ihr den Controller geladen mit eurer Software (nicht CY4640)

von Michael (Gast)


Lesenswert?

Ich wollte mal hören, was aus euren Entwicklungen geworden ist?

Bei mir ruht das Projekt leider seitdem ich das Hardwarelayout fertig
habe. Aber nun kanns weiter gehen...:-)

Wie sind denn eure Erfahrungen, die ihr bislang gemacht habt? Wie
Speicherintensiv ist die Firmware, also reicht das interne RAM aus oder
brucht man wirklich ein externes RAM (ich weiß ist schwierig das so
pauschal zu sagen, aber ich würds gerne ihne machen)

Gruß
Michael

von Michael (Gast)


Lesenswert?

Muss es einfach nochmal hochwühlen, da ich denke, dass meine Frage
verloren gegangen ist ;-)

Gruß
Michael

von Peter (Gast)


Lesenswert?

Hallo,

wo kann man denn dieses EVA-Board CY4640 von Cypress bestellen?
Kann man mit diesem Controller auch eine MMC-Karte per USB an einen PC
anschließen und diese dann als Massenspeicher unter Windows erscheinen
lassen.
Da auf meiner MMC-Karte meine Messdaten in Textdateien stehen würde ich
diese gern direkt per PC herunterladen können.

von Beginner (Gast)


Lesenswert?

Hallo. Kann mann, aber es gibt unter anderem bei ebay Sticks für deine
MMC-Karte für unter 5€.
Du schiebst die karte den Stick und schon hast du einen USB-STICK!

@ Michael: Ein externes Ram wirst du denk ich schon brauchen.
Das das Framework schon größer ist als der interne RAM. Tipp: nimm den
selben Speicher wie auf dem EVA-Board, oder einen ähnlichen mit 16 bit
Datenbus. Sonst hast du die selben Probleme wie ich gerade.

Womit ich bei meiner Frage wäre:

HAT JEMAND AHNUNG, WIE MAN DIE FRAMEWORK DES CY4640, und MAKEFILE und
LOAD_RAM  AUF EINEN 8-Bit DATENBUS EXTERNEN RAM ANPASST??

von Beginner (Gast)


Lesenswert?

Tach, bin gerade darauf gekommen, dass mein eigentliches Problem die
Aufteilung des Usercodes in hi und lo ist, da ich keinen Speicher im hi
bereich habe. (ab C100) jemand nen tipp wie man der makefile
modifiziert, sodass sich nicht mehr den code trennt?

von Peter (Gast)


Lesenswert?

@ Beginner:
Mein Vorhaben ist aber ein anderes:-). Ich hab hier nämlich schon einen
Datenlogger herumliegen. Die geloggten Daten werden hier auf einer
SD/MMC-Karte gespeichert. Jetzt will ich nur "noch" aus
Bequemlichkeit meinen Datenlogger an den PC anschließen können, um mir
die geloggten Daten herunterladen zu können. Das hab ich eigentlich
vor.

Hat schon jemand hier etwas mit Mass Storage Devices ausprobiert? Ich
würde gerne mal wissen wie schwierig so etwas ist?

Ich habe bis jetzt nur etwas mit den AVRs gemacht.
Eine andere Möglichkeit ist, dass ich meine Messungen mit einem
AT91SAM7S64 (im SHop hier erhältlich) durchführe. Für diesen gibt es ja
schließlich auch die Mass Storage Treiber.

von Mario (Gast)


Lesenswert?

Hallo,

momentan beschäftige ich mich auch mit dem Cy7c67300.
Es steckt nichts konkretes dahinter nur allgemeines Intersse.
Ich will mir aber das CY4640 nicht kaufen und wollte fragen ob jemand
sein Layout posten kann.
Vielen Dank im Voraus.

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.