Forum: Mikrocontroller und Digitale Elektronik [S] IC mit mehreren Countern


von Georg2 (Gast)


Lesenswert?

Moin,

bisher habe ich noch keine Lösung für mein Problem gefunden, vielleicht 
weiß jemand von euch eine Lösung.
Ich will ein Redesign/Verkleinerung einer bestehenden Schaltung machen. 
Die Schaltung kann unter anderem parallel mehrere Ereignisse schnell 
zählen.
Dazu sind dort 5 Zählerbausteine vom Typ 74LV8154 verbaut, so dass 10 
Stück 16-Bit Zähler zur Verfügung stehen. Die Überläufe werden separat 
ausgewertet.
Derzeit ist die Schaltung als PC-Einsteckkarte ausgeführt, später soll 
sie per RS232 oder USB mit dem PC verbunden werden können.

Mein Problem ist die Verkleinerung des Teils mit den 10 Zählern.
Ich suche entweder einen IC, der mehrere 16-Bit Zähler enthält oder 
einen Mikrocontroller mit 10 Timern, die als Zähler verwendet werden 
können.
Bislang habe ich beides nicht gefunden.
Natürlich könnte man dies in einem CPLD oder FPGA realisieren, aber 
bisher habe ich weder mit so etwas gearbeitet, noch kann ich VHDL 
programmieren.

Kennt jemand von euch zufällig einen passenden Zählerbaustein / 
Mikrocontroller?

von Tobias K. (kurzschluss81)


Lesenswert?

Viele MSP430 haben 2 Timer mit mehreren Counterregistern. z.B. der 149 
hat einen Counter mit 3 counterregister und einen mit 7 Counterregister.
Du kannst diese Counterregister unabhängig voneinander verwenden und 
Konfigurieren mit einer Ausnahme die Grundfrequenz/also der Zähltakt 
muss bei den Counterregistern eines Counters gleich sein.
Wenn dir das reicht hast in diesem MSP430 schon 10 Zähler

von Tobias K. (kurzschluss81)


Lesenswert?

ach ja hab noch was vergessen. 16 bit sind diese Counter auch genauso 
wie der gesamte Chip im Gegensatz zu den Meisten AVRs

von Georg2 (Gast)


Lesenswert?

> mit einer Ausnahme die Grundfrequenz/also der Zähltakt
> muss bei den Counterregistern eines Counters gleich sein.

Das würde bei mir wohl leider nicht passen, da ich ja unabhängige 
ereignisse zählen will.

von Entwickler (Gast)


Lesenswert?

Geht es um Einzelstücke und wie schnell müssen die Zähler zählen können?

von René F. (ren_f)


Lesenswert?

11x 16 bit timer
Ist zwar ein µC aber vielleicht hilfreich:

http://www.toshiba.com/taec/components2/Datasheet_Sync/134/26203.pdf

von Purzel H. (hacky)


Lesenswert?

Ein mittleres CPLD mit 256 FlipFlops wird sicher hinkommen.

von René F. (ren_f)


Lesenswert?


von old-school_offline (Gast)


Lesenswert?

Ist ja der Hammer, viel Spass beim auflöten ... 281 Anschlüsse als FBGA, 
ohne Fassung bist Du da aber aufgeschmissen :-)

TMP19A64F20AXBG -- Description

The TMP19A64 is a 32-bit RISC microcontroller based on the TX19A core 
and containing 2 MB of NANO FLASH™, a large number of external 
Interrupts and timer/counters. The microcontroller features low-voltage 
and low-power consumption, making it ideal for battery-powered 
applications, such as portable information equipment, metering and 
security systems.

Features
• CPU: 32-bit MIPS TX19A RISC core,54 MHz
– Up to 2 MB Flash/64 KB RAM Flash and Mask Rom available
– Two instruction sets:
1. The 16-bit ISA instruction is compatible with MIPS16e- TX for high 
code efficiency
2. The 32-bit ISA instruction is compatible with the highperformance 
TX39
3. Single clock cycle execution – Five-stage pipeline – On-chip, 
high-speed memory
– Clock generator and on-chip PLL (x4)
– Sub clock (32.768 kHz)
• MAC unit for DSP function
– 32 x 32 + 64-bit in a single clock
• Low-power consumption
– Optimized design using a lowpower cell library
– Programmable standby modes in which processor clocks are stopped
– 8-channel DMA controller
– Back-up module:
Product Brief
32-bit RISC MCU with 2 MB Flash Memory for Real-Time Control with DSP 
Functionality 1
• Interrupts:
– External: 20, Internal: 50
• Timer
– 11 channel x 16-bit timer
– 15 channel x 32-bit timer
– Real-Time Clock Timer (RTC)
–Watchdog Timer (WDT)
• Serial Communication
– 7 channel x UART/SIO
– 1 channel x I2C
• 24 channel x 10-bit A/D converter
– Conversion time 8.44 msec
• I/Os 209 pins
• Operating voltage
– Core 1.35 V – 1.65 V
– I/O and ADC 1.65 V – 3.3 V
– ADC 2.7 V – 3.3V
• Package
– P-FBGA 281
(13 mm x 13 mm, 0.65 mm pitch)

von Tobias K. (kurzschluss81)


Lesenswert?

Oder du machst es einfach in Software wenn du nur Ereignisse Zählen 
willst macht das jede Mikrocontroller mit min 10 Eingängen.
Kleiner Tip bei den MSP430 sind die ersten 2* Ports** interruptfähig
* die kleinen MSP430 habe weniger Pins als 16 dann sind alle 
Interruptfähig.
** 1 Port = 8 GPIO    2 x 1Port = 16 GPIO

Das sollte reichen.

Und wenn du noch mitbekommen möchtest in welchen Zeitrahmen deine 
Ereignisse auftauchen kannst du immer noch einen Timer mitlaufen lassen 
der die Sec oder msec zählt

von Georg2 (Gast)


Lesenswert?

@René F.:
Vielen Dank für die Links, der TMP1942 sieht erst mal nicht schlecht 
aus.
Hast du schon mal mit diesem Controller gearbeitet? Von welchen 
Entwicklungsumgebungen wird dieser Controller unterstützt?

@Entwickler:
Erst mal geht nur um ein paar Stück, evtl. könnte es aber später auch 
höhere Stückzahlen (~200 Stück p.a.) werden.

von René F. (ren_f)


Lesenswert?

dann passt aber super auf einen USB Stick. :-)
Okay für´n Hobbyprojekt vielleicht etwas überdimensioniert aber es ging 
ja um die Frage ob es sowas gibt.

hier ein xmega leider nur 8 x 16bit dafür 100 TQFP.

http://www.atmel.com/dyn/resources/prod_documents/doc8067.pdf

von Entwickler (Gast)


Lesenswert?

>@Entwickler:
>Erst mal geht nur um ein paar Stück, evtl. könnte es aber später auch
>höhere Stückzahlen (~200 Stück p.a.) werden.

Und wie schnell solen sie zählen?

von Thomas (Gast)


Lesenswert?

Du brauchst keine Kenntnisse über VHDL zu haben um CPLD's zu designen. 
Das Designtool ISPLEVER Classic von Lattice (for free) erlaubt mit einem 
graphischen Frontend eine Schaltplaneingabe von Logikelementen in 
komfortabler Art. Die TTL Bibliothek ist ziemlich umfangreich so dass Du 
bestehende Schaltungen mühelos übernehmen kannst.

Gruss

von René F. (ren_f)


Lesenswert?

Leider keine Erfahrung mit dem µC Toshiba vielleicht gibt es ja Leute 
hier im Forum die Dir da mehr Infos geben können. Hier nochmal ein 
Produktkatalog:

http://www.toshiba-components.com/microcontroller/brochures/bce0021_catalog.pdf

von DerDaOben (Gast)


Lesenswert?

Typisch das sich wieder alle ins Geschehen werfen und jeder alles besser 
weis. Eine wichtige Frage wurde noch immer nicht beantwortet:
Wie schnell muss gezählt werden ??

von Entwickler (Gast)


Lesenswert?

@DerDaOben

Danke!

von René F. (ren_f)


Lesenswert?

Als Hausnummer hat man ja die Info : 74LV8154.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

>> Natürlich könnte man dies in einem CPLD oder FPGA realisieren, aber
>> bisher habe ich weder mit so etwas gearbeitet, noch kann ich VHDL
>> programmieren.
:
> Vielen Dank für die Links, der TMP1942 sieht erst mal nicht schlecht
> aus.
Da würde ich die Zeit aber eher in das Thema programmierbare Logik 
stecken, als jetzt noch eine Toolchain und das ganze Drumrum um den 
Prozessor kapieren zu wollen.

Die Aufgabe ist ideal für ein kleines FPGA oder ein großes CPLD. 
Kostenmäßig bist du da (Lattice MachXO) bei 5$ pro Baustein mit dabei, 
die Aufgabe ist einfach/überschaubar und der Einstieg in die Thematik 
lohnt sich langfristig garantiert...

http://www.latticesemi.com/products/developmenthardware/developmentkits/xp2breviadevelopmentkit.cfm
http://www.latticesemi.com/products/developmenthardware/developmentkits/machxominidevelopmentkit.cfm

Oder auch einen kleinen Xilinx Spartan 3AN...

von Entwickler (Gast)


Lesenswert?

>Als Hausnummer hat man ja die Info : 74LV8154.

Schön. Nicht schneller als 25MHz.
Die obere Grenze kennen wir jetzt.

Und was willst Du DemDaUnten sagen?

von Falk B. (falk)


Lesenswert?

Jaja, die liebe Netiquette.

Wir wissen nicht was der OP will, lösen aber ganz schnell ALLE Probleme 
;-)

von Georg2 (Gast)


Lesenswert?

Hallo,
sorry, die Frage nach der Zählgeschwindigkeit hatte ich übersehen.
Nach unten gibt es eigentlich keine Grenze, könnte also auch ein 
Ereignis pro Tag sein. Nach oben hin liegt die Grenze bei ca. 1*10^6 
Ereignissen pro Sekunde. Zählung per Interrupt scheidet eigentlich aus, 
da auch exakt gleichzeitig an mehreren Eingängen auftretende Ereignisse 
erkannt werden sollen.
Der vorgeschlagenen Mikrocontroller sieht auch deshalb interessant aus, 
weil ich eh einen für die Kommunikation mit dem PC benötige und bisher 
mich noch nicht auf einen festgelegt habe.

von Olaf (Gast)


Lesenswert?

> Kennt jemand von euch zufällig einen passenden Zählerbaustein /
> Mikrocontroller?

Ein R32C116 hat elf 16Bit Timer. Der relativ kleine M16C29 hat schon
acht 16Bit Timer. Blaetter dich also mal bei Renesas durch die Daten und 
du wirst schon was passendes finden.
Noch eine nette Kleinigkeit. Die Renesascontroller koennen sowohl mit 
3.3 wie auch 5V laufen. Das kann beim aufarbeiten alter Designs ganz 
praktisch sein....


Olaf

von Peter (Gast)


Lesenswert?

Georg2 schrieb:
> Nach oben hin liegt die Grenze bei ca. 1*10^6
> Ereignissen pro Sekunde.

je Zähler oder über alle Zähler?

von Georg2 (Gast)


Lesenswert?

> je Zähler oder über alle Zähler?
Je Zähler!

von Entwickler (Gast)


Lesenswert?

>Nach unten gibt es eigentlich keine Grenze, könnte also auch ein
>Ereignis pro Tag sein.

Deine Anforderungen sind ja 'knallhart' :-)

Wenn Du noch völlig offen bist, könnte der R32Cxxx praktisch sein, den 
Dir Olaf empfohlen hat.

Von Renesas gibt es u.a. auch einen H8SX1668R. Dieser hat zwei 
Timer-Einheiten mit insgesamt 12 x 16Bit Zählern, wobei sich einige zu 
32Bit kaskadieren lassen. Es stehen aber nur 8 Zähleingänge zur 
Verfügung.
Aber er hat auch noch 2 x 4 DMA-Kanäle. Diese lassen sich ganz einfach 
als Zähler verwenden, in dem Quell- und Zieladresse konstant bleiben und 
der DMA-Kanal nur die Transfers (32Bit) zählt.
Klingt kompliziert, sollte aber einfach funktionieren.

Ferner gibt es noch einen DTC (Data Transfer Controller), der ebenfalls 
ähnlich einem DMA-Controller zum zählen mißbraucht werden könnte....

Um das Ganze abzurunden hat der µC noch eine USB-Schnittstelle und läßt 
sich einfach an einen PC koppeln, wenn die 6 UARTs schon anders belegt 
sind.

Ohne Dein Problem zu kennen, würde ich es so lösen :-)

von Jörg S. (joerg-s)


Lesenswert?

Ich würde einen PSoC nehmen. Da kannst du etliche unabhängige Zähler 
rein tun. Ob 10x 16bit rein passen weiss ich jetzt allerdings nicht 
genau...

von Noch'n Gedicht (Gast)


Lesenswert?

Hi,
von den Toshiba TX19A würde ich die Finger lassen. Die Toolchain ist 
sehr speziell und das Gehäuse wird am Ende Dein kleinstes Problem sein. 
Wenn schon Toshiba, dann M330 aus der Cortex-M3 Familie. Wird auch von 
Keil & Co unterstützt.
Aber Achtung. Bei allen Auflistungen über die Anzahl der Timer wird 
nicht angegeben wieviele davon einen externen Anschluß für die Zählung 
haben, also einen "TimerIn". Viele Timer sind nur intern nutzbar bzw 
werden mit dem internen Takt verbunden.
Bleiben wir mal kurz beim M330. Der hat 10x 16Bit Timer. Bingo !
Tools von IAR und Keil. Super ! Aber nur sieben der Timer haben einen 
externen Eingang. Pech ! Darüber hinaus darf der externe Takt nicht 
wesentlich schneller als etwa 3MHz sein.
Der R32C116 hat eine sehr grosse Anzahl von Eingängen. Auch hier ist zu 
prüfen ob diese wirklich als Takteingang für den Zähler genutzt werden 
können oder "nur" Capture Trigger sind. Die maximale Frequenz hab' ich 
auf die schnelle nicht gefunden.
Also nicht einfach nur die Timer zählen, auch die Eingänge sind wichtig.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Georg2 schrieb:
> Der vorgeschlagenen Mikrocontroller sieht auch deshalb interessant aus,
> weil ich eh einen für die Kommunikation mit dem PC benötige und bisher
> mich noch nicht auf einen festgelegt habe.

Wenn du nur ein bisschen UART-Gerödel brauchst, bekommst du das in
ein FPGA auch noch mit rein.  Oder auch einen Controller deiner
Wahl. ;-)

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.