Forum: Mikrocontroller und Digitale Elektronik Suche Konzept für Messprogramm (+Schaltplan überprüfen)


von Johannes Permoser (Gast)


Angehängte Dateien:

Lesenswert?

hi,

also zuerst zu dem angehängten schaltplan:
war wäre jetzt die vorläufig endgültige version,
wenn jemand fehler in der beschaltung sieht, dann melden
(warum ich gnd und vcc so komisch verlegt hab und nicht einfach die
symbole verwendet habe? der schaltplan soll später mal als vorlage für
eine lochrasterplatine dienen, und da hilf es mir nichts, wennich nur
die hälfte der leitungen eingezeichnet habe :-) )

jetzt zu dem anderen thema, dem programm entwurf: also an den
anschlüssen aus jp4 hängen die lichtschranken. ich bekomme eindeutig
high oder low.
das ziel dieses projekts ist es, zu erfassen, wenn sich an diesen
lichtschranken was ändert, die zeit dazu zu speichern und das ganze
dann an den pc per uart weiter zugeben.
und da ist auch schon das problem. ich kann nicht einfach immer was
schicken, wenn sich was ändert, da ich einfach nicht die zeit dazu
habe. (bei 14,76mhz takt und einer auflösung von 5µs sind das gerade
mal 73 taktzyklen, da kann man vielleicht einmal was schicken, aber
wenn man dann die zweite veränderung nach 5µs an den pc schicken will,
dann macht der doch dicht, und ich warte ewig auf das 'go!' zum
übertragen der daten.)
deshalb könnte man die daten ja zuerst speichern, und dann am ende des
experiments, auf anfrage des pc, schicken (zum glück gibt's ein ende
:) d.h. ich muss irgendwo die zustände der acht eingänge mit
zeitstempel zeischenspeichern. und dort wo ich das mache, brauche ich
mindestens noch platz für 39 solcher paare.
nun die frage: wo ist das? reicht da der ram des atmega8? brauch ich
noch was dazu?

oder würdet ihr das problem ganz anders lösen?

schreibt einfach mal was euch dazu einfällt, bin für jede idee
dankbar.

mfg, johannes

von walifogel (Gast)


Lesenswert?

Wilst du 39 Byte Zwischenspeichern ?.
Die müssten noch in dein Internes RAM passen, dan kannst du die Daten
alle auf einmahl abholen.
wf

von Johannes Permoser (Gast)


Lesenswert?

> Wilst du 39 Byte Zwischenspeichern?

nein, 40 mal den zustand der schranken und noch einen zeitstempel (was
der für ein format haben wird => keine ahnung, sagt ihr mir doch wie
ich das speichern soll :)

von walifogel (Gast)


Lesenswert?

Damit weis ich aber immer noch nicht wiviel Byte du speichern wils.
Aber im zwiefelsfalle kanst du auch extern RAM / EEPROM anschließen.
Z.b. über I2C.

wf

von Johannes Permoser (Gast)


Lesenswert?

> Damit weis ich aber immer noch nicht wiviel Byte du speichern wils.

zustand der schranken sind 1 byte.
zeitstempel auch 1 oder 2

von Bernhard S. (bernhard)


Lesenswert?

@Johannes

So richtig komm ich mit Deiner Aufgabenstellung nicht zurecht.

Du überwachst 8 Lichtschranken.
Ein ATmega8 (1k SRAM) soll verwendet werden.
Bei Aktivität an einer Lichtschranke soll ein Zeitstempel und der
Zustand aller Lichtschranken hinterlegt werden.
Maximal 40 Aktivitäten sollen gespeichert werden.

Frage dazu?

Wie wünschst Du den Zeitstempel?

Jahr, Monat, Tag, Stunde , Minute, Sekunde, ms .... µs  ?


Bernhard

von Johannes Permoser (Gast)


Lesenswert?

> Wie wünschst Du den Zeitstempel?

also, auf den gesamtkontext (tag und stunde) kommt es nicht an,
wichtiger sind die 'zeitzwischenräume'
(der ganze vorgang, der überwacht werden soll, dauert höchstens 20
sek)
genauigkeit: ja so genau wies geht ^^
angenommen alle 64 takte wird der zustand überprüft, dann soll im
zeitstempel schon erkennbar sein, dass das eine ereignis einen
(64takt)zyklus davor war.

von Bernhard S. (bernhard)


Lesenswert?

Das erste Ereignis an einer Lichtschranke, soll das den Zeitstempel "0
µs" erhalten?

Das zweite Ereignis den Zweitstempel "xxx µS"
...

Das dritte Ereignis den Zweitstempel "xxx µS"
...

usw.

Das 40. Ereignis (nach max 20s) den Zeitstempel "xxx µs"


Anschließend werden die Daten über USART an den PC gesendet, in dieser
Zeit wird natürlich keine Lichtschranke abgefragt,
und anschließend alle Zeitstempel auf "0" gesetzt?


Aufbau Zeitstempel:

max 20s, µs genau

20s = 20.000.000 µs = 4-Bit-Zahl


Oder habe ich was nicht richtig gedeutet?

von Johannes Permoser (Gast)


Lesenswert?

genau richtig gedeutet.
d.h. dass alles in den ram des atmega passt, oder?
dann brauche ja zum glück ich nichts externes...

von Bernhard S. (bernhard)


Lesenswert?

>dann brauche ja zum glück ich nichts externes...

solltest Du auch nicht haben, denn Du hast keine Zeit, etwas extern
abzulegen.

> dass alles in den ram des atmega passt, oder?

Der SRAM des ATmega ist ca. 1k groß.

Du benötigst

1Byte für Lichtschranken-Zustand 4Byte für Zeitstempel = 5Byte

5Byte x 40 Aktivitäten = 200 Byte

Verbleiben Dir noch 800Byte zur freien Verwendung

Bernhard

von andi (Gast)


Lesenswert?

Zum Schaltplan:
Die Stromversorgung vom Max232 ist noch nicht angeschlossen (Pin
15/16).
47pF am Reset ist ganz schön wenig, da sollten eher 10nF sitzen.

von Johannes Permoser (Gast)


Lesenswert?

> Die Stromversorgung vom Max232 ist noch nicht angeschlossen

jo, das ist mir auch schon aufgefallen. allerdings weiß ich nicht wie
ich die dinger da mit eagle platzier

> 47pF am Reset ist ganz schön wenig, da sollten eher 10nF sitzen.

genau, das ist ein fehler in meinem schaltplan und im tutorial, in
meinem realen aufbau hängen da 47nF

von andi (Gast)


Lesenswert?

>jo, das ist mir auch schon aufgefallen. allerdings weiß ich nicht >wie
>ich die dinger da mit eagle platzier

In der Symbolleiste INVOKE auswählen, dann aufs IC klicken, Pin
auswählen, dann kannst du es in die Schaltung setzen.

Übrigens kannst du in Eagle auch manuell routen, passend für deine
Lochrasterplatine. Solltest halt zuvor auf 2,54 mm Rastermass
einstellen.

von Johannes Permoser (Gast)


Lesenswert?

> In der Symbolleiste INVOKE auswählen, dann aufs IC klicken, Pin
> auswählen, dann kannst du es in die Schaltung setzen.

joa, dann fliegen sie irgendwo in der schaltung rum, kann man sie nicht
einfach neben die anderen pins ins ic setzen?

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.