Forum: Mikrocontroller und Digitale Elektronik Meßschieber Fast Mode - wie synchron seriell 133kHz lesen?


von egal (Gast)


Lesenswert?

Manche digitale Meßschieber haben einen "Fast Mode", in dem sie die 
Daten schnell(er) aktualisieren / ausgeben. Die Datenübertragung erfolgt 
synchron seriell, wobei es anscheinend 'Glitches' auf der Datenleitung 
gibt:

http://www.shumatech.com/support/chinese_scales.htm

Ich messe eine Pulsweite von 7.5µs entsprechend 133kHz, die Übertragung 
findet alle 25ms statt.
Da ich die Position zu einem bestimmten Zeitpunkt erfassen muss, werde 
ich einen eigenständigen Controller verwenden, der die Daten ständig 
empfängt und den aktuellen Wert auf Anfrage an den Host überträgt.

Da ich mich mit Datenübertragung noch nicht beschäftigt habe, würde ich 
gerne wissen, wie ich das anstellen kann.. also kommt Hardware (SPI?) in 
Frage, oder benutzt man Pin Change Interrupts auf die Clk, wie schnell 
muss der Rechner getaktet sein, und wie vermeide ich Fehler verursacht 
durch 'Glitches'?

Danke schonmal.

von egal (Gast)


Lesenswert?

Hi,

bitte nochmals um einen Tipp, auch wenn das wahrschinelich trivial ist.

Wenn ich den Rechner mit 4Mhz Takte, einen PC Interrupt auf die fallende 
Flanke setze, schafft es ein AVR dann noch 3 Abfragen hintereinander zu 
mitteln, um die genannten Fehler zu unterdrücken?

Dann noch einen PC Interrupt um eine Anfrage vom Host zu erkennen. In 
der nächsten Pause dann Daten aufbetreiten und per SPI zurückschicken..

von Falk B. (falk)


Lesenswert?

@ egal (Gast)

>Wenn ich den Rechner mit 4Mhz Takte, einen PC Interrupt auf die fallende
>Flanke setze, schafft es ein AVR dann noch 3 Abfragen hintereinander zu
>mitteln, um die genannten Fehler zu unterdrücken?

Sowas macht man nicht im Interrupt, da wird zuviel Zeit verbraten. Machs 
per Polling.

>Dann noch einen PC Interrupt um eine Anfrage vom Host zu erkennen.

Den kann man auch pollen.

MfG
Falk

von egal (Gast)


Lesenswert?

also nix anderes machen als eine pinänderung der clk prüfen, dann 
dreimal data einlesen und mitteln?
oder den ganzen port ständig checken und die daten und clock bits 
verrechnen?
wofür benutzt man denn dann überhaupt die interrupts?

von Falk B. (falk)


Lesenswert?

@ egal (Gast)

>also nix anderes machen als eine pinänderung der clk prüfen, dann
>dreimal data einlesen und mitteln?

ja.

>oder den ganzen port ständig checken und die daten und clock bits
>verrechnen?

ja.

>wofür benutzt man denn dann überhaupt die interrupts?

Für "relativ" langsame und seltene Ereignisse bzw. für Dinge, die halt 
parallel durch die Module abgearbeitet werden können (Timer, UART) aber 
dann ab und zu beackert werden müssen.

MFG
Falk

von egal (Gast)


Lesenswert?

tschuldigung, ich wollte schreiben:

wofür benutzt man denn dann überhaupt die pin-change interrupts
                                           ^^^^^^^^

von Thomas B. (detritus)


Lesenswert?

z.B. Nulldurchgangserkennung eines Sinussignals.

von egal (Gast)


Lesenswert?

ah ok danke. ich werde mich am we mal dran versuchen!

von egal (Gast)


Lesenswert?


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.