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?
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
> 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.
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)
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
@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.
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
>@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?
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
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 ??
>> 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.cfmhttp://www.latticesemi.com/products/developmenthardware/developmentkits/machxominidevelopmentkit.cfm
Oder auch einen kleinen Xilinx Spartan 3AN...
>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?
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.
> 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
>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 :-)
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.
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. ;-)