Hallo erstmal! Ich bin auf der Suche nach einem I2C oder SPI Counter finde aber nichts in der Richtung. Mein Lieblingsverein Maxim hätte ne RTC (DS1372) die n Binärfomat (jo binär is immer aber halt nicht das HH:MM:SS sondern n Zahlenwert) ausgibt. Dummerweise inkrementiert die erst nach 32xxx Impulsen - sehr ungeschickt für meine Aufgabe. Mit meinem PIC kann ich nicht zählen da dieser nur jede Minute aufwachen soll und 32 solcher Zähler auslesen soll. Ich will weder n weiteren Controller dafür einsetzen noch mich mit Elektroniktrickschaltungen verzetteln. Und ein Zähler der 74 Serie über I2C Portexpander auslesen gibt bei 32 Countern auch wieder ne größere Aktion. Hat von Euch jmd ne schlaue Idee dazu oder besser ne Typenbezeichnung eines Counters im Hinterkopf den ich über SPI / I2C anschließen kann? Grüße THX in advance Burny
hm, für SPI bräuchtest du 32 CS-Signale (ok, kann man mit Dekodern erreichen), für I2C 32 unterschiedliche Adressen, das wirst du auch nicht finden. Aber nur so am Rande, ich kenne auf die Schnelle nicht mal einen Typ. Vielleicht wäre es noch interessant, welchen Zählumfang du erreichen willst...
>Ich will weder n weiteren Controller dafür einsetzen noch mich mit Wofür denn? Bisher hast du nur gesagt, dass du 32 Zähler brauchst. Mehr nicht. Wie schnell soll gezählt werden? Welchen Zählbereich sollen die haben? Wie Schnell soll (von EINEM µC) die Zählerstände abgefragt werden? ... >ür SPI bräuchtest du 32 CS-Signale. Nein. nur einen. Alle in Reihe und die Werte durchschieben.
kinder seid ihr flott. Danke erstmal. Die zu zählenden Impulse sind langsam (Verbrauchszähler). Vorgesehen sind 32 Bit Zähler aber ich könnte ja ohne weiteres einen 8Bit zähler per Software auf 32 Bit hochrechnen. Das CS Signal kommt von 16Bit I2C Porterweiterungen (Microchip MCP23017). Maximal hängen am SPI Bus 16 4 Kanal ADCs 64 1 Kanal DACs und 2 MCP 23S17. Der Zählerstand der Counter sowie alle anderen Geräte sollen 1x pro Minute abgefragt werden.
>Die zu zählenden Impulse sind langsam (Verbrauchszähler)
Was ist langsam?
Warum nicht per Software zählen, und den µC immer kurz aufwecken bei
einer Flanke?
Mhh nun das wäre ne Möglichkeit über die Interrupt Pins von den MCPs einen Interrupt an meinem Prozessor auszulösen dann den Baustein auszulesen und zu schauen welcher Pin grad high is. Nun bin ich aber grad überfragt wie groß die Impulsdauer und die Zeit dazwischen ist (Ich hab nur die Vorgabe 32 x 32 Bit Counter für Verbrauchsmengenzähler - sprich ich gehe von 1 Impuls pro kWh aus je nach Einsatzort gibt das 5 Impulse pro Minute oder nichtmal 1) und ob mir das reicht die Portexpander schnell genug auszulesen. Ich schätze mal das dauert zu lange bis ich endlich gelesen hab.
Also du könntest eine Porterweiterung mit 4x 74HC165 machen. Damit hast du 32digitale Eingänge, die du per SPI einlesen kannst. Weiterhin bräuchtest du noch eine OderSchaltung mit 32Eingängen (=32mal 1N4148 + ein R) als Interruptquelle. Wenn somit einer der Zähleingänge EINS wird, tust du solange per SPI die 32Eingänge einlesen und die richtigen Zähler erhöhen, bis alle Eingänge wieder NULL sind. Dann geht der µC wieder schlafen. Bei 1MHz SPI Clock dauert das Einlesen ca 32µs.
Na grade das is das Problem - keine Ahnung - ! Es wird mit unterschiedlichen Verbrauchszählern gearbeitet werden und ich hab keine Information über den Typ. Von daher kann ich nur schätzen das die Impulsbreite 30ms bei elektronischen Ausgängen und 200ms bei Relaiskontakten betragen sollte.
Jup okay überredet aber ich nehme nicht deinen Chip. ;) Dieser MCP23017 von dem ich dauernd fasele hat eine Interruptfunktion integriert - sprich ich kann mir die Oder Gatter sparen. Dem sage ich einfach der Defaultwert für die IO Pins is 0 sollte sich der Status ändern löse deinen PORTA oder PORTB Interrupt aus. Ich wusste nur nicht, dass diese Flanken >30ms sind - ich ging eigentlich davon aus das die bedeutend kürzer sind...aber die Datenblätter die ich gefunden hab sprechen eine andere Sprache. Was mich an der Sache stört ist, dass der PIC nicht im Sleepmode bleiben kann - deshalb hätte ich gerne einen Counter mit SPI oder I2C Interface gehabt...zudem muss ich mir dann keine Gedanken machen wie groß die Impulsdauer ist...und und und
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.