[S] IC mit mehreren Countern

Gast #1865614
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?
#1865666
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
Gast #1865700
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.
Gast #1865763
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)
#1865782
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
Gast #1865785
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.
Gast #1865806
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
Moderator (Firma: Titel) Persönliche Seite #1865884
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...
Gast #1866289
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.
Gast #1866294
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
Gast #1866550
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 :-)
Gast #1867011
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.
Moderator Persönliche Seite #1867027
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. ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren