Forum: Mikrocontroller und Digitale Elektronik FATfs Atmega32u4 + PC


von Syrer (Gast)


Lesenswert?

Hallo zusammen,

Zusammengefasst ist das so: Der Controller soll inputs für einen anderen 
Controller simulieren und die outputs dann messen. "Manuel" geschieht 
das wunderbar, also per terminal inputs eingeben und outputs lesen. Die 
kommunikation mit dem PC geschieht über USB.
Der nächste Schritt ists nun, das ganze zu automatisieren, also aus 
einer .txt Datei testcases (inputs) einlesen, simulieren, outputs messen 
und gegebenenfalls in einer anderen .txt Datei protokollieren.

Ich habe die letzten 2 Tage gesucht und gelesen, das meiste was ich 
gefunden habe, war wie man mit SPI und SD-Karte umgeht, aber nicht wenn 
die datei auf der Festplatte im PC ist.

PS:
http://elm-chan.org/fsw/ff/00index_e.html
habe ich gecheckt, die Dokumentation und die Demofiles, trotzdem bin ich 
(noch) planlos und wäre für eure Tipps sehr dankbar,

LG

von Jim M. (turboj)


Lesenswert?

Wenn ich das richtig verstanden habe, dann ist das ein Problem für den 
PC und nicht auf dem Microkontroller.

von Syrer .. (nazir_a)


Lesenswert?

Jim Meba schrieb:
> Wenn ich das richtig verstanden habe, dann ist das ein Problem für den
> PC und nicht auf dem Microkontroller.

Warum ist das ein Problem für den PC? der hat ein eigenes Betriebsystem 
:)
Der µController soll nun auf der Festplatte des PCs Schreib- und 
Lesezugriffe haben.

von Bastler (Gast)


Lesenswert?

Dann brauchst du kein FATfs auf dem μC, sonder ein RemoteFs, NFS oder 
so. Der PC wird dir was husten, wenn du seine Files lowlevel beschreiben 
willst.

von Syrer .. (nazir_a)


Lesenswert?

Bastler schrieb:
> Dann brauchst du kein FATfs auf dem μC, sonder ein RemoteFs, NFS oder
> so. Der PC wird dir was husten, wenn du seine Files lowlevel beschreiben
> willst.
Das werde ich mal googlen, aber momentan sagt mir das nichts :)

von Bastler (Gast)


Lesenswert?

Probier doch mal ein simples Protokoll über Seriellen Port:
O,<filename> crlf  Datei öffnen
R crlf                     Lesen, PC antwortet mit <Daten> crlf
W,<Daten> crlf      Schreiben
C crlf                     Datei schließen

Kann beliebig erweitert werden, z.B. Durch FileNummern für mehrere 
offene Dateien, Öffnungs-Modus (Read, Write, Append, ...)

von oszi40 (Gast)


Lesenswert?

Syrer schrieb:
> gefunden habe, war wie man mit SPI und SD-Karte umgeht, aber nicht wenn
> die datei auf der Festplatte im PC ist.

Das Experiment "Festplatte SCHREIBEN" würde ich auch sehr vorsichtig 
angehen. Mach erst mal kleine Schritte und prüfe ob DU überhaupt dort 
lesen KANNST und ob DU überhaupt genau DORT schreiben DARFST wo Du es 
möchtest. Dein PC-BS hat auch eine Meinung was Du darfst!

von Carsten R. (kaffeetante)


Lesenswert?

Die Frage ist:

Soll der zweite Controller die Steuerung übernehmen und die Files lesen, 
den ersten Controller fütern und die Resultate speichern lassen oder 
soll der zweite Controller nur Bindeglied spielen und nur vermitteln, 
während der PC das Kommando hat. Bei letzterem bräuchte man kein 
Remotefilesystem sondern ein eventuell selbstgestricktes Progrämmchen, 
welches die Daten verschickt und empfängt während der zweite Controller 
nur reagiert aber nicht wirklich was steuert. Das wäre eine andere 
Aufgabenstellung.

von Bastler (Gast)


Lesenswert?

32u4 hat ja USB, darüber kann man das simple Protokoll natürlich auch 
verwenden.
BTW, SMB, das Windows Remote File Protokoll, ist übrigens fast genau so 
gebaut. Nur etwas universeller, sprich aufwendiger

von Syrer .. (nazir_a)


Lesenswert?

oszi40 schrieb:
> Das Experiment "Festplatte SCHREIBEN" würde ich auch sehr vorsichtig
> angehen. Mach erst mal kleine Schritte und prüfe ob DU überhaupt dort
> lesen KANNST und ob DU überhaupt genau DORT schreiben DARFST wo Du es
> möchtest. Dein PC-BS hat auch eine Meinung was Du darfst!
Ist eh klar, wenn ich was gelerent hab, dann die Arbeit aufzuteilen und 
kleine Erfolge zu geniessen

Carsten R. schrieb:
> Soll der zweite Controler die Steuerung übernehmen und die Files lesen,
> den ersten Controller fütern und die Resultate speichern lassen oder
> soll der zweite Controller nur Bindeglied spielen und nur vermitteln,
> während der PC das Kommando hat. Bei letzterem bräuchte man kein
> Remotefilesystem sondern ein eventuell selbstgestricktes Progrämmchen,
> welches die Daten verschickt und empfängt während der zweite Controller
> nur reagiert aber nicht wirklich was steuert. Das wäre eine andere
> Aufgabenstellung.
ähm, sagen wir µController A hat die aufgabe temperatur zu messen und 
einen Lüfter zu steuern, µController B kann den sensor und den Motor für 
A spielen und empfangen was A so macht, also temperatur und Tachosignal 
simulieren und duty cycle empfangen. Das alles geht über USB vom PC aus 
(Die kommunikation zwischen PC und B meine ich), und nun soll B Daten 
aus einer datei einlesen und weiter machen als ob ein user das händisch 
machen würde.

Bastler schrieb:
> 32u4 hat ja USB, darüber kann man das simple Protokoll natürlich
> auch
> verwenden.
> BTW, SMB, das Windows Remote File Protokoll, ist übrigens fast genau so
> gebaut. Nur etwas universeller, sprich aufwendiger

Ja, wie gesagt .. händisch, also wert für wert, geht das, nun sollte 
µController B die Daten von einer datei einlesen.

Update: Wie gesagt, Die Kommunikation mit dem PC über USB ist schon da, 
d.h. ich habe sowas wie:
- Temperature:25
- Temperature sent to application, measuring the duty cycle
- O.K. duty cycle is 50%
ODER
- ERROR, Temperature is over lower bound and the motor is not running
Eine .txt datei soll nun z.b. folgendes beinhalten:
T:25
T:30
T:10
...
und µController B soll nun diese Werte einlesen und verarbeiten.

Ich hoffe die Idee ist nun klar :)

von Bastler (Gast)


Lesenswert?

Dann kontrolliert er entweder das Blockdevice selbst, SD-Card, oder er 
bittet den PC das für ihn zu tun.
Mit SD wäre er in der Lage nach vorbereiteter Kommandodatei Tests 
durchzuführen und gegen ebenso vorbereitete Ergebnisdatei zu prüfen. Die 
SD füllt der PC, dann steckt man sie in den Prüfautomat. Vorteil: 10 
Automaten können parallel arbeiten, event. auch verschiedene Testpläne.
Nur wozu dann USB?
Es könnte natürlich auch ein PC-Programm die Testpläne aus einer Datei 
lesen und dann wie schon funktionierend Stück für Stück an den μC 
schicken und das Ergebnis von dort lesen. Programme können auch, was man 
am Terminal von Hand macht ;-)

von oszi40 (Gast)


Lesenswert?

Syrer .. schrieb:
> und µController B soll nun diese Werte einlesen und verarbeiten.
> Ich hoffe die Idee ist nun klar :)

Nun ist die Frage,
1.ob Dein µC B "Einzelfeuer" schon erfolgreich lieferte oder
2.geht es gar nicht?
3.Besteht das Problem NUR bei "Dauerfeuer"? Dann wäre es evtl. ein 
Zeitproblem/Handshake?

von Syrer .. (nazir_a)


Lesenswert?

Bastler schrieb:
> Mit SD wäre er in der Lage nach vorbereiteter Kommandodatei Tests
> durchzuführen und gegen ebenso vorbereitete Ergebnisdatei zu prüfen. Die
> SD füllt der PC, dann steckt man sie in den Prüfautomat. Vorteil: 10
> Automaten können parallel arbeiten, event. auch verschiedene Testpläne.
> Nur wozu dann USB?
Das kann ich leider momentan nicht ändern, also die kommunikation mit 
dem PC muss über USB laufen.

Bastler schrieb:
> Es könnte natürlich auch ein PC-Programm die Testpläne aus einer Datei
> lesen und dann wie schon funktionierend Stück für Stück an den μC
> schicken und das Ergebnis von dort lesen. Programme können auch, was man
> am Terminal von Hand macht ;-)
Aso, genau das wäre richtig für mich, stichwörter bitte ;;)

von Syrer .. (nazir_a)


Lesenswert?

oszi40 schrieb:
> 3.Besteht das Problem NUR bei "Dauerfeuer"? Dann wäre es evtl. ein
> Zeitproblem/Handshake?

Die Idee für "Dauerfeuer" ist nicht vorhanden, denn das Problem besteht 
darin, dass ich keine Ahnung habe, wie der Controller die .txt datei 
überhaupt lesen könnte..

von Bastler (Gast)


Lesenswert?

Die Idee hast du doch schon geliefert bekommen. Den Rest der 
Semester-/Abschuß-Arbeit mußt du schon selbst machen. Das gefällt jetzt 
bestimmt wieder einigen nicht, aber ist halt so!

von Bastler (Gast)


Lesenswert?

Nochmal: der PC liest die Datei und tut dann so, als würde das jemand 
eintippen!

von Syrer .. (nazir_a)


Lesenswert?

Bastler schrieb:
> Das gefällt jetzt bestimmt wieder einigen nicht, aber ist halt so!

Ne, ich gehöre nicht zu dieser Gruppe :), aber in dem Bereich habe ich 
eigentlich keine Erfahrung, und ich verlange nie fetrige Lösungen

Bastler schrieb:
> Nochmal: der PC liest die Datei und tut dann so, als würde das jemand
> eintippen!
hmm, die das ist inzwischen klar, danke  :)

Update: Wonach würde man dann suchen wenn man genau das beabsichtigt? :D

von Syrer .. (nazir_a)


Lesenswert?

Da das problem wenig mit dem µC zu tun hat, habe ich einen neuen Beitrag 
unter
Beitrag "Input von einer .txt Datei zum µC über hyperterminal umleiten"
falls wer weiter lesen möchte.

LG

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.