Forum: Digitale Signalverarbeitung / DSP / Machine Learning Schnelle FFT in Assembler


von Matthias Asselborn (Gast)


Lesenswert?

aktualisier mal Benedikt oben hab ich ja von 40mhz geschrieben !

von Matthias Asselborn (Gast)


Angehängte Dateien:

Lesenswert?

komplette Übersicht

von Benedikt (Gast)


Lesenswert?

Hab noch ein paar TMS320BC52 hier liegen, wollte schonmal was mit
machen, aber ohne C Compiler oder Assembler und ohne irgendwelche
Anleitunge ist der Einstieg ziemlich unmöglich. Die Software kostet
irgendwas im 3 oder 4 stelligen Bereich wenn ich das richtig gelesen
habe, und eine Demoversion habe ich nirgends gefunden.

von Matthias Asselborn (Gast)


Lesenswert?

sag mir mal den name der soft
bzw für ein versuch könnten wir uns ja die soft..........organisieren
was möchtest du fü einen tms320bc52

von Benedikt (Gast)


Lesenswert?

Schau mal bei Pollin, da gibts ein Intel Web Meeting Set für 29,95€.
Da ist eine NTSC Farbkamera, eine ISA ISDN Karte, Kabel, Mikrofon und
eine Audio/Video Karte dabei. Auf dieser sind zwei schnelle 32kB SRAMs
als Speicher für den TMS320, ein Video ADC, ein AD8xxx Soundport (ne
simple Soundkarte) und noch andere schöne Sachen.
Welchen Zweck der TMS320 genau erfüllt kann ich nicht sagen, aber
irgendeine Videokompression anscheinend.

von Matthias Asselborn (Gast)


Lesenswert?

benedikt könntest du mir solch einen wie du hast verkaufen ?
wenn ja für wieviel - mein ich nun ernst !
das mit dem programmieren könnte ich hinbekommen !
bzw müsstest du nen neuen code machen ?

von Matthias Asselborn (Gast)


Lesenswert?

der compiler / die software sollte auch kein problem darstellen !

von Matthias Asselborn (Gast)


Lesenswert?

weil ich denke wenn schon n spec analyzer mit ner fft dann richtig !
und in 1/3 oct schritten

von Benedikt (Gast)


Lesenswert?

Die 2 oder 3 Stück die ich habe wollte ich eigentlich selbst verwenden
(irgenwann mal, wenn ich eine passende Platine für dieses 0,4mm Raster
habe.
Kauf dir doch die Karte bei Pollin, das ist einfacher. Den Rest kannst
du ja bei Ebay verkaufen.

Ich habe jetzt doch eine Software auf der TI Seite gefunden:
Unter DSP, Getting Startet, How Do I geht Going ?, C5000 Platform

Morgen früh werde ich dann hoffentlich die Software haben (227MB über
ISDN...)

von philip (Gast)


Lesenswert?

hmms wie komme ich an den chip ?

von Matthias Asselborn (Gast)


Lesenswert?

grundsätzliche Frage an dich Benedikt !
wenn das mit dem DSP klappt
wäre dann über eine 1/3 Oct Einteilung wie oben beschrieben
zu überlegen ?
denn dann wäre halt auch das Bild viel schöner ! weil im
Tiefpassbereich deutlich mehr Balken zu sehen wären !

von Björn (Gast)


Lesenswert?

Was is denn, wenn ihr ne Zoom-FFT macht?
Habt ihr euch schon mal die dsPic's von Microchip angeschaut?

Ach so noch was, die Auflösung der FFT entspricht doch delta_f = fa/N
....?

Gruß Björn

von Benedikt (Gast)


Lesenswert?

Wenn das mit dem DSP klappt, dann sind 10Hz Auflösung kein Problem.
Der langsamste aus der TMS320C52 Reihe schafft 20MHz. Da er in einem
Taktzyklus eine 16x16 Multiplikation macht, ist er um einiges schneller
als der AVR.
Eine 4096 Punkt FFT sollte daher kein Problem sein um 11Hz Auflösung zu
erhalten.

von Matthias Asselborn (Gast)


Lesenswert?

wäre ja sogar erschwinglich der DSP !!!!
bzw ein spezielles Programmierboarboard für den DSP macht mir grad noch
Sorgen !

von Benedikt (Gast)


Lesenswert?

So wie ich das verstanden habe, hat der DSP keinen ROM, sondern das
Programm wird bei jedem Programmstart neu in den SRAM geladen.
Dies scheint bei diesen DSP häufig der Fall zu sein: Auf meiner DVB-S
Karte sitzt auch irgendein TMS320 als MPEG Dekoder. Bei jedem
Programmstart wird ein ein paar 100kB großes Prgramm in den DSP
geladen.

von ChristianF (Gast)


Lesenswert?

hi,

wie Björn schon schrieb, schaut Euch mal die dsPICs von Microchip an.
Die können 30MIPS und haben auch eine MAC usw. - und die gibt's mit
Flash. Es ist eigentlich bei allen DSPs so, daß man einen externen
Flash o.ä. fürs Programm braucht.

512Pkte. sollten mit dem dsPIC gehen, so aus dem Bauch raus, bei mehr
wird der Speicher knapp.


cf

von Matthias Asselborn (Gast)


Lesenswert?

bei dem früher VU hatte ich einen 27C512 er Eprom dafür hergenommen
512 punkte wären auch ausreichend viel genauer jedoch die 4096

von Thorsten (Gast)


Lesenswert?

Hallo,

Microchip stellt für den dsPIC30F sogar eine optimierte FFT-Funktion
zum download bereit. Eine 256-Punkte FFT (komplex) soll in 635µs gehen.
C-Compiler und Simulator gibts kostenlos. Der C-Compiler soll angeblich
ne 60-Tage Demo sein, kann ich bisher allerdings nicht bestätigen. Hab
ihn schon länger auf dem Rechner, und er läuft immer noch. Hier der
Link, falls es interessiert:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010091

Gruß
Thorsten

von Benedikt (Gast)


Lesenswert?

512 Punkt sind nicht ausreichend, wenn man eine FFT macht:
Mit 1024 Punkten erreicht man 43Hz Auflösung, so wie ich es gerade
habe. Macht man dagegen wieder zwei FFTs (eine mit 44kS, die andere mit
5,5Ks) ist man schon bei 5Hz Auflösung !

von Matthias Asselborn (Gast)


Lesenswert?

wie sieht es denn mit der Soft aus Benedikt hast du was erreicht mit dem
DSP den du daheim hast ?
Frage @Benedikt
wie alt bist n du ?
ja 4096 wären schon super...
wie programmiert man denn den DSP ? mit nem Board ???
ich habe ihn damals über JTAG programmiert

von ChristianF (Gast)


Lesenswert?

Leute, folgendes:
Ihr wollt eine 4096Punkte fft machen. D.h. Ihr müßt 4096 Abtastwerte
vorhalten, die nehmen jeweils 16Bit in Anspruch.
Das sind alleine für die Abtastwerte 4096*16Bit=64kb.
Dazu kommen dann die Werte für die berechnete fft. Das sind komplexe
Ergebnisse, d.h. 32Bit pro Werte, also 128kb.
Das ist eine Menge Holz...

Ich hab mir da auch mal ein paar Gedanken drüber gemacht, so wie
Benedikt es vorschlägt ist es doch super, also das ganze aufteilen in
mehrere ffts. Habt Ihr Euch schon mal überlegt, einen digitalen Tiefpaß
zu realisieren um das "downsampling" von 44kHz auf 5,5kHz o.ä. zu
machen?

@Thorsten:
Hast Du eine eval board von dem dsPIC? Ich arbeite bei einer Firma mit
einem und würde gern privat ein bißchen was mit denen machen. Weiß aber
nicht, wo man ein Evaluation Board o.ä. bekommen kann. Letztes Jahr
während dem design contest hat man wohl recht günstig ein dsPICDEM1.1
bekommen können, das hab ich leider verpasst...
Kennst Du Bezugsquellen?

Gruß,

cf

von Thorsten (Gast)


Lesenswert?

@ChristianF

Leider habe ich kein Board. Ich bin kürzlich günstig an einige
dsPIC30F6014 gekommen und werde mir jetzt selbst ein Minimalboard auf
Lochrasterplatine bauen. Den dsPIC hab ich schon auf ne Adapterplatine
gelötet. Bisher habe ich nur mit dem Simulator gearbeitet aber was ich
da gesehen habe, hat mich schon sehr begeistert.

Gruß
Thorsten

von ChristianF (Gast)


Lesenswert?

Thorsten:
Ich find die Teile auch ok, aber 30MIPS sind halt nicht die Welt. Aber
es ist für einen Hobbyisten schon einiges...

Hast Du so ein ICD-2 Teil? Wo hast Du die Prozessoren herbekommen?
Was hast Du bezahlt? ;-)

Vielleicht versuche ich sogar mal, ein kleines Evaluation Board zu
layouten, aber ich hab sooo viele Pläne und wenig Zeit...


zu der FFT Geschichte:
Sorry, das sind natürlich nur 4096*16Bit=64kbit=8kb, also 24kb für
Eingangswerte+Ausgangswerte, wenn die Eingangswerte der fft rein reell
vorgehalten werden können. Ist immer noch sehr viel...

Gruß,

Christian

von Thorsten (Gast)


Lesenswert?

Ich hab mir einen ICD2 Clone gebaut, hängt mit nem FT232 an USB und
funktioniert sehr gut. Habe es allerdings nocht nicht mit den dsPICs
probiert, ich gehe aber davon aus das es tut denn bei den PIC10, PIC16
und PIC18 hat es auch problemlos funktioniert. Die Prozessoren habe ich
bei eBay erstanden, der Preis lag bei 6 Euro/St. incl. Versand. Hab die
dort eher zufällig entdeckt und sofort zugegriffen da ich schon seit
längerem überlege, mal was mit 16 Bittern zu machen. Und warum sollen
es nicht die dsPICs sein?

Thorsten

von ChristianF (Gast)


Lesenswert?

Hi Thorsten,

danke für die Infos, werde mir vielleicht auch so ein ICD 2 nachbauen,
ich nehme mal an mit google finde ich da genug...

Viel Spaß beim basteln,

Christian

von Thorsten (Gast)


Lesenswert?


von Benedikt (Gast)


Lesenswert?

Kann man die dsPICs mit der Schaltung programmieren ?
Wenn ja, dann bestell ich mir einem DSPIC30F2010-30I bei Digikey.
Kostet ca. 11$, also vermutlich so um die 10€
Das ist der einzige der ein DIP Gehäuse hat...

von Thorsten (Gast)


Lesenswert?

Ja, er ist ICSP-tauglich. Funktioniert im Prinzip genauso wie bei allen
anderen PICs auch. Bruachst nur ne 5-polige Stiftleiste vorsehen:
Pin 1 : /RESET
    2 : (VCC)
    3 : GND
    4 : Data
    5 : Clock

4-5 kann auch umgekehrt sein, weiß grad nicht. Hast du ein
Programmiergerät dafür?

von Benedikt (Gast)


Lesenswert?

Ich habe noch garnichts, daher frage ich ja, ob man den ICD2 Nachbau von
dem Link für den dsPIC verwenden kann.

Ich habe noch nie mit PICs gearbeitet, werde demnächst mit anfangen und
dann auch mal die dsPICs testen.

von Thorsten (Gast)


Lesenswert?

Ich kann dir morgen (oder vielleicht schon heute Abend) sagen, ob der
Nachbau funktioniert.

von Benedikt (Gast)


Lesenswert?

Ich habe gerade mal nachgeschaut:
Der dsPIC30F2010 hat nur 512Bytes SRAM. Für eine ordentliche FFT
bräuchte man schon den F6010, der hat 8192 Bytes, aber ist
warscheinlich nicht ganz billig.
An sich ist der AVR ja schnell genug, nur es fehlt an RAM.
d.h. man müsste auf den mega8515 mit externem 64kB 15ns SRAM umsteigen,
und einen externen ADC verwenden.

von ChristianF (Gast)


Lesenswert?

Benedikt:
Ich weiß, daß man den 6010 für um die 20$ kriegt, in Stückzahlen.
EInzelstücke werden vielleicht so 30Euro kosten, wenn man die überhaupt
irgendwo beziehen kann. Allerdings würd ich den 6014 nehmen, der hat
einen 12Bit-ADU gegenüber 10Bit beim 6010.

von Philip (Gast)


Lesenswert?

währ es net viel besser einfach 2 avrs zu nehmen ?

ein für tiefen ein für hochton bereich ?

von Matthias Asselborn (Gast)


Lesenswert?

geht ja nicht
hat Benedikt ja schon probiert !
eine FFT (Fast Furier Transformation)
digitalisiert ja nur ein Spektrum (von 0 - Samplerate/2 ) Herz
da kannst nicht irgendwo anfangen
deshalb ja der Filter vor der 2. FFT
und du hast immer Übergänge sei es z.b. in der Geschwindigkeit
deshalb wäre ein vernünftiger DSP doch schon viel besser
habe mit PICs auch noch nichts gemacht ich könnte sie aber in
einer Elektronikfirma programmieren

von Philip (Gast)


Lesenswert?

für uns alle ;) ?

von Matthias Asselborn (Gast)


Angehängte Dateien:

Lesenswert?

im H-Mpeg (www.h-mpeg.de) Mp3 Player
wurde auch ein 8515 er atmel mit einem externen RAM verwendet

von Matthias Asselborn (Gast)


Lesenswert?

Autor: Philip
Datum: 09.02.2005 18:31
---------------------------------------------------------------------
für uns alle ;) ?


dumme Frage!
liese sich machen!

von ChristianF (Gast)


Lesenswert?

Hallo,

die gängigen DSPs muß man bei jedem einschalten neu programmieren.
Natürlich kann man sowas machen, aber man brauch noch einen externen
Speicher, einen 2. Prozessor der das Programm lädt o.ä. usw.

Das ist recht kompliziert...

Meiner bescheidenen Meinung nach kann man in der Tat mehrere Atmels
nehmen, z.B. einen mit f_s=44kHz für 5...22kHz (oder so) und einen
anderen mit f_s2=10kHz für 0...5kHz. Das Problem mit den
unterschiedlichen Geschwindigkeiten bekommt man ganz einfach dadurch in
den Griff, daß man bei dem Prozessor, der entsprechend "schneller"
ist, nicht jedes Ergebnis auf dem Display ausgibt/eine Mittelung
durchführt/usw., auf jeden Fall so, daß die Aktualisierungsintervalle
ähnlich sind.

Bei entsprechend schnellem Prozessor geht sowas auch mit einem,
versteht sich, aber so macht es Benedikt ja...

von Matthias Asselborn (Gast)


Lesenswert?

es geht ja nun darum andere Intervalle zu bekommen !
eine exaktere Teilung !
soe wie sie die Studioanalyzer haben (Terzbänder)
also 20 25 30,5 40 hz usw...
das ist ja grad das problem

von ChristianF (Gast)


Lesenswert?

und?
512Pkte bei f_s=10kHz macht immerhin 10000/512 Hz=20Hz Abstände. Das
müßte man sich halt mal ausrechnen und überlegen, wie man das so
aufteilen könnte...

von Benedikt (Gast)


Lesenswert?

Reicht denn die Lösung von ape nicht ?
Ein mega32 mit 2x 512 Punkt FFTs liefert im Bereich 0-2kHz eine
Auflösung von 10,8Hz und im Bereich bis 22kHz eine Auflösung von 86Hz.
Und das sollte doch reichen, oder ?

von Matthias Asselborn (Gast)


Lesenswert?

Frage:

warum nicht 7 sehr steile Filter machen
die 1. FFT von 0 bis 2,75 khz
Ausgabe auf's Display !
dann die 2. FFT mit nem Bandpass 2,75 bis 22khz
starten
Ausgabe aufs Display
usw...
dan hätte mal zwar 8 Schaltungen aber die liesen sich ja durch SMD
Technik auf einer 100x160 er Platine unterbringen !

dann könnte man über die paar Herz eine FFT mit 4096 Punkten
legen

von Philip (Gast)


Lesenswert?

meinst du jetzt einfach 7 einzelne komplett getrente ? die dann ihre
eigenen leds? haben ?

sprich jeder FFT hat ein paar leds die er ansteuert.. und sonst keine
aufgabe? die anderen machen dann die anderen bereiche ?

von Matthias Asselborn (Gast)


Lesenswert?

Autor: Benedikt
Datum: 09.02.2005 20:48

------------------------------------------------------------------------ 
--------

Reicht denn die Lösung von ape nicht ?
Ein mega32 mit 2x 512 Punkt FFTs liefert im Bereich 0-2kHz eine
Auflösung von 10,8Hz und im Bereich bis 22kHz eine Auflösung von 86Hz.
Und das sollte doch reichen, oder ?


sorry habe deinen Post zu spät gelesen ! das wäre ja fantastisch !!!

von Matthias Asselborn (Gast)


Lesenswert?

zumal ich noch 2 atmega 16 und 32 in smd daheim habe !
gut das machen wir !

von Matthias Asselborn (Gast)


Lesenswert?

problem ! die Samplerate ist wieder bei 22khz oder ?
wo gibt es denn den Code ?
könnte mal einer Licht ins dunkle schaffen ?

von Björn (Gast)


Lesenswert?

Auch auf die Gefahr hin, dass ich mich wiederhole:
Macht doch ne Zoom-FFT und dann am besten noch zwei

von Philip (Gast)


Lesenswert?

ist zwar offtopic, aber erklär mal bitte wie das funzt mit ner
Zoom-FFT?
ich weiss nicht so genau was das ist-.-

von Benedikt (Gast)


Lesenswert?

Was ist eine Zoom-FFT ?

@Matthias Asselborn
Schau mal weiter oben, da gibts den Code von ape.
Den musst du nur noch mit meinem mischen um die FFTs auf 512 Punkt
anzupassen aber als Ausgabe den UART zu verwenden.

von Matthias Asselborn (Gast)


Lesenswert?

frage ich mich auch schon die ganze Zeit
ist das eine FFT die NUR einen speziellen Bereich
fasst ?

@Benedikt könntest du mir da mal helfen ! weil dein code C und der von
Ape ASM ?!
assembler kann ich leider nicht
bzw hoffe es im Studium noch zu lernen

von Björn (Gast)


Angehängte Dateien:

Lesenswert?

Ja mit ner Zoom-FFT lassen sich bestimmt bereiche im Spektrum
berechnen.
Ich hab auch da mal nen Protokoll von mir rangehängt. Das ist zwar
ziemlich hektisch mit Abgabetermin im Nacken zusammen geschrieben, aber
das Prinzip sollte zu erkennen sein.

Ach ja und ich weiß per Definition berechnet die DFT das Spektrum von
0-Fa ;-)

Gruß
Björn

von Matthias Asselborn (Gast)


Lesenswert?

ja gut mir würde aber trotzdem die von Benedikt angesprochene Variante
besser gefallen

Ein mega32 mit 2x 512 Punkt FFTs liefert im Bereich 0-2kHz eine
Auflösung von 10,8Hz und im Bereich bis 22kHz eine Auflösung von 86Hz.


könntest du mirmit dem Code helfen ?
c und asm mixen ?
evtl hinter die Zeilen schreiben was geschiet ?

grüßles matthias

von ape (Gast)


Lesenswert?

@benedikt hast du nen lauffähigen code für eine 512er FFT? Hab den
Thread eben durchgescrollt und nichts gefunden.
Aber mit 2 512 Punkte FFTs wär auch ein mega32 speichertechnisch
überfordert oder (Ich hab jetzt nich nachgerechnet aber ich denke
nichtmal eine würde ohne Probleme passen)?

von Matthias Asselborn (Gast)


Lesenswert?

ich weis auch nicht wo Benedikt das im Forum gelesen hat...

von Benedikt (Gast)


Lesenswert?

@ape
Hast du nur einen 256er FFT im mega32 ?
Du hast doch die Schleifenzähler usw. schon auf 16bit geändert, so dass
man eigentlich nur noch auf 512 umstellen muss ?

Gena nachgerechnet habe ich nicht, aber eine 128 Punkt FFT braucht ca.
860Byte, und eine 512er sollte daher mit 4kB auskommen.

von ape (Gast)


Lesenswert?

der mega32 hat aber nur 2kB SRAM :P
Hab gerade nachgerechnet: 512 Punkte benötigen 3328 Bytes. Man bräuchte
also mindestens einen mega64 oder ein externes SRAM.

Und ich benutze sogar nur eine 128er FFT.
Die Zähler auf 16 Bit zu erweitern hat leider nicht das gewünschte
Ergebnis erbracht, da in der do_fft routine anscheinend noch ein
anderer Wert bis FFT_N zählt und mit diesem auch multipliziert wird
(Ich vermute es ist das u bzw. XH). Soll heißen man müßte noch eine
16Bit Multiplikation einbauen. Das war mir so auf die Schnelle mit
meinen bescheidenen asm-Kenntnissen zu aufwendig.
2 128 Punkte FFTs reichen mir aber auch. Wobei man mit 512 Punkten die
gleiche Auflösung (~40Hz) bei der gleichen Bandbreite (0-11kHz) mit
einer einzigen FFT erreichen würde.

von Benedikt (Gast)


Lesenswert?

Stimmt, der mega32 hat nur 2k, hatte das mit dem 64er verwechselt.

Ich fasse mal kurz das bisherige zusammen:
Im unteren Frequenzbereich wird eine Auflösung von 10Hz benötigt. Dafür
benötigt man eine 4096 Punkt FFT für den Bereich 0-22kHz.
Eine 4096 Punkt FFT lässt sich mit AVRs also nicht verwirklichen, und
andere DSPs die dazu in der Lage wären (also genügend Speicher und
Rechenleistung haben), sind nicht gerade günstig, und würden daher kaum
einen Vorteil gegenüber eines diskreten Spektrum Analysers bieten.

Somit bleibt nur die Lösung mit mehreren 128 Punkt FFTs und dem
MAX29x:
a) Tiefer Bereich mit 1,385kS/s für 0-500Hz mit 10,8Hz Auflösung
b) Mittlerer Bereich mit 5,54kS/s für 0-2kHz mit 40Hz Auflösung
c) Hoher Bereich mit 44,3kS/s für 0-22kHz.

Warscheinlich wird das ganze auf 2-3uC hinauslaufen:
Einer für den mittleren und hohen Bereich, und einer für den tiefen. Im
tiefen Bereich benötigt der uC alleine schon 100ms nur um die Daten
aufzzeichnen. Der zweite uC macht den restliche Frequenzbereich.
Die Daten könnte man auf dem Tiefbereich uC verarbeiten und
zusammenfassen, da der sich während der Aufzeichnung langweilt.
So hätte man insgesamt 192 Messwerte, die man zu 16-64 Werten mit
einigermaßen logarithmischer Verteilung zusammenfassen kann.

von Matthias Asselborn (Gast)


Lesenswert?

hab ich aber schon oft vorgeschlagen z.b. 3 oder am besten 4 ffts zu
machen

von ape (Gast)


Lesenswert?

Problem dabei dürfte aber sein, das, wie du schon selber geschrieben
hast, der tiefebereichnur nur gut 10 berechnungen schafft ergo die
komplette FFT nur 10mal pro Sekunde refreshed wird. Man könnte zwar die
höheren Frequenzen öfter refreshen, aber in den Tiefen kommt man da nich
drumrum.

Wobei mir gerade doch eine evtl. Lösung einfällt.
Möglicherweise könnte man einfach immer die zweite Hälfte des Capture
Buffers in die erste kopieren und dann nur die zweite wieder auffüllen,
so dass man überlappende Bereiche hätte. Damit ließe sich die
Refreshrate verdoppeln oder auch noch mehr wenn man eine noch größere
Überlappung nimmt. Und bei dieser niedrigen Samplingrate sollte es auch
machbar sein den Buffer shcnelle genug umzukopieren, do dass keine
Samples verloren gehen.

von Matze (Gast)


Lesenswert?

was spricht gegen einen externen speicher ?
die kosten nichts ! und  gibt es in 16..32..64kb..

von Benedikt (Gast)


Lesenswert?

Gegen einen externen RAM spricht, dass man dann einen externen ADC
braucht, da es keine AVRs mit Datenbus und ADC gibt, zumindest nicht in
der billigen Preisklasse. Zumindest habe auf die schnelle keine
gefunden.
Insgesamt wird alles dadurch aufwendiger.
Für 3 FFTs sollte der mega32 problemlos ausreichen, eigentlich sogar
auch der mega8

von Philip (Gast)


Lesenswert?

ich bin auch dafür das wir das einfach mit mehreren avrs machen,
ist billiger und einfacher., was bringt es jetzt teure hardware zu
nehmen, wenn man fürs gleiche geld einen komplett fertig aufgebauten
bekommt...

3-4 FFts sind da viel praktischer...

von Dirk (Gast)


Lesenswert?

@ Björn

ich habe mir mal dein script durchgelesen, sehr schön erklärt, mir ist
nur aufgefallen das du "Hanning-Fenster" geschrieben hast, ich aber
in büchern immer vom Hemming-Fenster lese. Was ist nun richtig ?

von Benedikt (Gast)


Lesenswert?

Es gibt sowohl Hamming als auch Hanning

von ape (Gast)


Lesenswert?

@philip: gegen so viele FFTs spricht, das es
1) sau langsam ist
2) wesentlich größerer hardware aufwand, weil mehrere AVRs, die jeder
nen tiefpass-filter brauchen
3) damit einhergehend wesentlich mehr platzbedarf (Für nen LED Spec
Analyser mag das nich so das Problem sein, aber bei mir ist kleiner =
besser)
und 4) is das spektrum an den übergängen halt immer irgendwie
unterbrochen. Bei Musik fällts i.d.R. nich so auf aber wenn nen sinus
durchläuft sieht mans doch recht deutlich.

und 5) hör ich gerade von dir immer ich will, ich will, ich will und
meistens nichts konstruktives...

von Philip (Gast)


Lesenswert?

ja mei ape, ich kann in dem bereich nicht viel dazu bei tragen, weil mir
die möglichkeiten fehlen, ich helfe Matze so weit ich kann, wir kennen
uns scho recht lange, aber mehr als ein paar ideen kann ich nicht
beitragen... naja was soll ich sonst machen, wenn du dich jetzt darüber
auf regst tja sorry kann ich nix machen, dann ignorier mich oder so...

ich werds überleben

von Benedikt (Gast)


Lesenswert?

@ape
Den Übergang sieht man nur, wenn man die Werte 1:1 anzeigt.
Bei meiner Anzeige sieht man den Übergang bei weitem nicht so deutlich
wie bei deinem LCD, das ich versuchte eine einigermaßen logarithmische
Anzeige zu bekommen, indem ich mehrere Werte zusammenfasse um so bei
hohen Frequenzen die Auflösung zu verringern.

von Matthias Asselborn (Gast)


Lesenswert?

folgendes erst mal ne Streiten !!
es war nur eine Idee mit dem externen Speicher da der halt im Mp3
Player damals auch recht hilfreich war die Daten der CD dort
zwichenzuspeichern ect.... andererseits habt ihr schon recht @externer
AD
weil der von analog devices n 24 bitter gleich mal 30 euro kostet oder
bin ich da nicht mehr auf dem laufenden
ganz am anfang hab ich schon vorgeschlagen das ganze mit mehreren
filtern bzw atmels mit fft dahinter zu schalten
also 4 ffts dürften ja reichen ....
oder von CS weis nicht Crystal glaub ich hatte ich mal n DA für 12 euro
da ...
es kommt halt dann auf die Filter drauf an ...denke ich
wenn die net exakt sind ist das alles nicht so optimal
@ape wie wirkt sich das auf die Geschwindigkeit aus ?
müsste ich mal aufbauen und guggen

von Matthias Asselborn (Gast)


Lesenswert?

@ape :is das spektrum an den übergängen halt immer irgendwie
unterbrochen. Bei Musik fällts i.d.R. nich so auf aber wenn nen sinus
durchläuft sieht mans doch recht deutlich.


ja gut das wusste ich nicht ist das echt so extrem ? also liegt es an
den filtern .......

von Benedikt (Gast)


Lesenswert?

Die Unterbrechung kann man per Software vollständig kompensieren, denn
die FFTs liefern alle dasselbe Ergebnis (nur mit unterschiedlichen
Auflösungen für unterschiedliche Bereiche).
Egal ob mal die Gleichung 5*5+5*x=5*10 löst, oder 5+x=10, es kommt
dasselbe raus. Dasselbe ist bei FFT: Dies ist ja im Prinzip eine
umkehrbare, mathematische Berechnung.

von Thorsten (Gast)


Lesenswert?

@Benedikt:

Sofern es noch von Interesse ist, der dsPIC30F6014 lässt sich
problemlos mit dem ICD Nachbau programmieren und auch debuggen. Sollte
mit anderen Typen also auch funktionieren.

Gruß
Thorsten

von Benedikt (Gast)


Lesenswert?

Für das FFT Projekt vielleicht nicht, aber da ich sowiso mit PICs
demnächst arbeiten werde, werde ich mir die dsPICs auf jedenfall mal
anschauen und testen.

von Benedikt (Gast)


Lesenswert?

Ich habe gerade mal die letzen Fehler aus meinen 32MS/s DSO mit einem
AVR behoben und dabei mal alle möglichen Signale am Spektrum Analyser
gemessen.
Eigentlich hätte die Schaltung garnicht funktionieren dürfen, denn ich
hatte ein paar schlimme Softwarefehler drin.
Der mega8 schiebt die Daten zum Display mit rund 30fps raus, also rund
die Hälfte der Orginalsoftware. Immerhin muss der uC jetzt ja auch 2
128 Punkt FFTs machen.

Fazit: Die 5,5kS bremsen kaum was aus, wenn man z.B. die
Zusammenfassung und die Übertragung der Daten in die Samplingphase für
die 5,5kS legt.
Werden allerdings 3 FFTs verwendet, sollte man für die ganz langsame
doch einen 2. uC verwenden.
Ich denke ich werde daher mal die Idee von ape ausprobieren, immer nur
eine Hälfte des Samplingpuffers neu aufzufüllen.
Allerdings benötigt man dazu zwei Samplingpuffer, da während der FFT
die Aufzeichnung unterbrochen wird und so eine Lücke entstehen würde.
Es wäre ja ungünstig, wenn sich während der FFT die Daten ändern...

von Matze (Gast)


Lesenswert?

also um n 2. µC wäre es nicht ! ist doch egal ein oder 2 Smd Atmels auf
der Platte ?!
würde fast 4 FFT s machen !
was hältst du davon ?

von ape (Gast)


Lesenswert?

@matthias:
Also der Preis wär bei nem externen AD noch das geringste Problem, es
gibt auch welche für 3€ und 24 Bit wäre nu wirklich etwas übertrieben
(abgesehen davon das die Software nur mit 16 Bit rechnet und da ich mir
noch nich die Mühe gemacht habe die Berechnung genauer zu untersuchen
könnts auch sein das nichtmal mehr als die 10Bit des internen ADs
gehen, da sonst möglicherweise Variablen überlaufen könnten)

@benedikt: wenn man die FFTs nacheinander auf einem AVR macht sind sie
eben nicht genau gleich, da sich das Spektrum ja ändert, die FFTs also
das Spektrum zu unterschiedlichen Zeiten darstellen.
Außerdem wird das Spektrum am Ende des Frequenzbereiches einer FFT
durch die einsetzende Dämpfung des Filters verfälscht.
Und ich denke man würde mit einem Sampling-Buffer auskommen, wenn man
diesen als Ring-Buffer auslegt. Vor Beginn der FFT werden die Samples
ja in den Butterfly-Buffer geladen, das geht ja recht schnell. Der
AD-Wandler sampled dann halt die ganze Zeit durch und im Buffer liegen
immer die letzten 128 Samples.

von Matze (Gast)


Lesenswert?

ja also was spricht dann gegen n externen rom bzw ad ?
die 3 sachen wären doch dann die hauptbestandteile der
fft platine !

@ape welcher 16bitter AD z.b. @3-4 euro

von ape (Gast)


Lesenswert?

Wer redet von 16 Bit? Der Interne macht 10 Bit und das ist vollkommen
ausreichend.

z.B. Microchip MCP320x mit dem hab ich sehr gute Erfahrungen gemacht.
Das ist ein 12 Bit Wandler. Preis auf der Microchip Seite: 1,91$ (für
den zweikanaligen)
Wird im Einzelstück wahrscheinlich noch ein bisschen mehr sein und ich
weiß auch nich ob man den hier irgendwo kaufen kann, aber 10 bis 12Bit
Wandler gibs wie Sand am Meer und die kosten alle nich so viel.

Aber bei den externen Wandlern ist das Ergebnis auslesen etwas
aufwendiger und es ist wieder ein Bauteil mehr.

Abgesehen davon hat man halt immernoch das Problem, das man auch mit
externem Speicher nich beliebig viele FFTs in einem AVR machen kann,
weil das dann einfach zu langsam wird.

von Benedikt (Gast)


Lesenswert?

@ape
>Außerdem wird das Spektrum am Ende des Frequenzbereiches einer FFT
>durch die einsetzende Dämpfung des Filters verfälscht.

Wenn man nicht alle Werte verwendet, sondern nur die unteren 2/3, dann
hat mand amit keine Probleme.
Bei 3 FFTs kann man das auch bedenkenlos machen.

Meine Idee wie ich das ganze machen würde:
Ein mega8 macht die FFT für die 5,5kS/44kS und sendet die Daten an den
zweiten mega8.
Dieser macht die langsame FFT und setzt alle 3 FFTs zu einem
logarithmischen Gesamtspektrum zusammen, bei dem man keine Übergänge
sieht.

von philip (Gast)


Lesenswert?

@Benedikt wenn du die zeit hättest,
ich hätte ein lied, das du vielleicht mal drüber laufen lassen
könntest, würde es dir per mail schicken oderwo hochladen, bitte mal
wenn du zeit hast mit cam apfilmen, mich würde mal die leistung des
spectrums interessieren die wir gerade haben... falls du zeit hast meld
dich doch kurz..

von Benedikt (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe ein kleines Problem mit der Software im mega8:
Mein LED Display hat jetzt eine getrennte Spannungsversorgung (6V, max.
3A  über LM2576) von der restlichen Elektronik bekommen. Beides läuft an
einem 12V Netzteil. Je nachdem wieviele LEDs an sind, zieht das ganze
bis zu 3A (auf der 12V Seite). Wenn ich zu laut mache, bricht
anscheinend die Spannung zusammen, und der mega8 hängt sich auf.
Eigentlich sollte der Watchdog ihn dann nach einer viertel Sekunde
resetten.
Kann man jemand über den Code schauen, ob irgendwo ein Fehler bei der
Watchdogroutine ist? Ich bin eigentlich der Meinung, dass der Watchdog
funktionieren müsste.

von ape (Gast)


Lesenswert?

>    in r16, WDTCR
>    ori r16, (1<<WDCE) | (1<<WDE)
>    out WDTCR, r16
>    ldi r16, (1<<WDE) | (1<<WDP2)
>    out WDTCR, r16

Mhmm du schreibst zuerst das WDE und WDCE in den control-register und
gleich danach nochmal WDE und WDP2. Ich hab das Datenblatt jetzt nur
überflogen aber wenn ich das richtig verstanden habe brauchst du zum
aktivieren des watchdog timer nicht das WDCE-Bit setzen.
Nichts desto trotz sollte es eigentlich funktionieren :)

von Benedikt (Gast)


Lesenswert?

Ich hatte es erst anderst, also WDT aktiviert und gleichzeitig den Rest
gesetzt, dann ging es nicht.

Ich habe alles mal extrem übersteuert, so dass die Spannung wirklich
total zusammenbricht, dann erkennt man den Reset (wenn 1/4s lang alles
steht).

Manchmal bleibt aber alles trotzdem hängen. Keine Ahnung warum.

von ape (Gast)


Lesenswert?

So hab jetzt meine Version auch mal in der Codesammlung veröffentlicht:

http://www.mikrocontroller.net/forum/read-4-159757.html

von Benedikt (Gast)


Angehängte Dateien:

Lesenswert?

Endlich hat es Reichelt geschafft die fehlenden Platinen zu liefern, und
nach einem weiteren Nachmittag LEDs bestücken ist nun der 32x16 Spektrum
Analyser fertig.
Im Bereich >3kHz tut sich echt eine Menge. Auch der Bereich >10kHz ist
interessant, denn man erkennt sofort ob die mp3 auf 10kHz Bandbreite
beschränkt ist, oder nicht.
Leider ist der internde ADC des AVR mit 44kHz Samplerate (ca. 570kHz
ADC Takt !) doch etwas überfordert, so dass die unterste LED Zeile
konstant leicht flackert.
Die Auflösung im unteren Bereich liegt bei 40Hz, am oberen Ende sind es
rund 3,8kHz.
Die Stromaufnahme liegt bei etwa 1A bei 12V wenn ich den Analyser mit
Musik so ansteuere, dass die Peaks etwa in den gelben Bereich gehen.
Bei Vollaussteuerung (alle LEDs an) zieht die Schaltung ca. 40-50W,
aber das schafft der LM2576 nicht lange.
Der LED Strom liegt bei rund 150mA bei 1/16 Tastverhältnis.

von philip (Gast)


Lesenswert?

kannst du mal was bewegtes zeigen?

von matthias asselborn (Gast)


Lesenswert?

dachte du wolltest :

Somit bleibt nur die Lösung mit mehreren 128 Punkt FFTs und dem
MAX29x:
a) Tiefer Bereich mit 1,385kS/s für 0-500Hz mit 10,8Hz Auflösung
b) Mittlerer Bereich mit 5,54kS/s für 0-2kHz mit 40Hz Auflösung
c) Hoher Bereich mit 44,3kS/s für 0-22kHz.

das erreichen ?

grüßles matthias

von Benedikt (Gast)


Lesenswert?

Ohne eine Bezugsquelle, bei der man auch als normalsterblicher den
MAX29x zu einem vernünftigen Preis bestellen kann, oder einen anderen,
einfachen Tiefpass, habe ich eigentlich keine Lust an der jetzigen
Schaltung was zu ändern.

von keksohr (Gast)


Lesenswert?

:) kannst du mal sagen wie du das mit den bandpass filtern gelöst hat?
bekommt man den auf normalen weg bzw die teile ? oder ist das echt son
dummes ding was man nur alsfirma oder so bekommt....

von Benedikt (Gast)


Angehängte Dateien:

Lesenswert?

Es gibt keine Bandpassfilter. Das ganze läuft (außer einem 2kHz Tiefpass
für den unteren Bereich) komplett digital in einem mega8 mit 18,432MHz.

Ich habe mal ein Video angehängt, das ganz gut die große Auflösung des
Analysers zeigt. Vor allem am Anfang erkennt man (auf dem Video nicht
ganz so gut), dass bei jedem, Bing (keine Ahnung wie man diese
Geräusche bezeichnet), ein anderer LED Balken aufleuchtet, da die Bings
immer eine unterschiedliche Frequenz haben.

von keksohr (Gast)


Lesenswert?

das is im untereren bereich auf jedenfall schon mal nach meinen
ansprüchen, nur was ich jetzt ihrgend wie dumm finde, das es nur 32
leds sind, 64 währen jetzt ganz erlich gesagt viel geiler.... das ist
ihrgend wie im unteren bereich zwar okay, aber hmm kann man das
erweitern ?

von Benedikt (Gast)


Lesenswert?

Natürlich kannst du das erweitern. Du kannst sogar eine 64x64 LED Matrix
aufbauen, aber glaub mir: 512 LEDs zu löten ist genug Arbeit.

von Benedikt (Gast)


Lesenswert?

@ape

Könntest du mal etwas für mich ausprobieren ?
Den Analyser mit Musik stark übersteuern, denn bei mir hängen sich dann
die FFTs auf, obwohl ich den Watchdog laufen lasse.
Einmal hat sich sogar nur der 44kS FFT aufgehängt (die rechte
Bildhälfte hat sich nichtmehr verändert), die 5,5kS FFT lief aber ganz
normal weiter.

von matthias asselborn (Gast)


Lesenswert?

hmm eine frage hab ich noch dazu
wieso sind wenn s steile balken gibt die nachbar balken nicht
davon betroffen ?
könntest mal n sinus drüber laufen lassen ??
aber an und für sich schon ok

wieso was kostn son max ?

von matthias asselborn (Gast)


Lesenswert?

der max 29x is doch son bandpassfilter 3 kanal
stimmt und ich überlegte mir damals diesen zum analyzer zu verwenden
ich glaube beim electronicpool gibt es denn für glaub mal 5 euro
mal guggen

von Benedikt (Gast)


Lesenswert?

Ich verstehe nicht ganz was du meinst mit steilen Balken.
Einen Sinus hatte ich vor einiger Zeit schonmal laufen lassen, auch mit
den restlichen 160 LEDs die damals noch fehlten hat sich nicht viel
verändert:

http://www.mikrocontroller.net/attachment.php/152417/fftsinus.avi

Was ein MAX29x kostet weiß ich nicht, denn man bekommt ihn ja nirgends
(außer als Sample von maxim). Zumindest nicht bei den "normalen"
Elektronikversandhändlern (Reichelt, Spoerle, RS, Farnell, Bürklin,
Digikey usw.)

von matthias asselborn (Gast)


Lesenswert?

also bei segor gibt es den MAX 275 ,280, 297

der 280 is n 5 . ordnung lowpass
der 297 ein 8. ordnung lowpass

gruß matthias

von matthias asselborn (Gast)


Lesenswert?

einfach bei segor  unter halbleiter im onlinekatalog ics nach hersteller
m
dann m/max typen bis max499
dann kommen die ganzen filter

von Benedikt (Gast)


Lesenswert?

Bei dem Preis kann man das ganze vergessen. Da kommt ein diskreter
Tiefpass um einiges billiger, selbst mit 1% Widerständen und guten
Kondensatoren.

MAX 297 CPA                Bestelltyp, nicht ab Lager lieferbar
8.Ord.Elliptic LPass DIP8
Lieferzeit 10Wochen  (VE: 1 St.) :      14.20 EUR

MAX 296 CPA                Auslauftyp 8.Ord.Clk-Tun.LPass DIP8
Nicht mehr lieferbar  (VE: 1 St.) : nicht lieferbar

MAX 280 CPA                Bestelltyp, nicht ab Lager lieferbar 5.Ord.
Lowpass DIP8
  (VE: 1 St.) :      11.15 EUR
ab 10 VE:       8.92 EUR

von matthias asselborn (Gast)


Lesenswert?

liesse sich da noch was im tiefpass verbessern?
frage: wie isn das mit dem flackern ?
mit den balken meinte ich ich sehe auf dem video
das z.b. einr vollausschlägt der nebendran nichts macht aber der
nächste wieder aussteuert... das meinte ich ...

von Benedikt (Gast)


Lesenswert?

Meinst du das Flackern der rechten paar LEDs in der untersten Zeile,
auch wenn kein Signal anliegt, oder allgemein das Flackern ?
Ersteres habe ich jetzt dadurch behoben, dass ich nur Werte >2 anzeige,
und alles darunter (also 1 und 2) zu Null mache.
Ansonsten flackert nichts, in der Software wird der Spitzenwert
gebildet und langsam auf Null gefahren, also so wie bei einem echten
Spitzenwertgleichrichter.

Das ist ja das schöne an der FFT:
Wenn ein reiner Sinuston anliegt, erhält man wirklich nur einen Peak.
FFT ist eben schon nahe dran an der idealen Durchlasskurve mit fast
unendlicher Steilheit.

von keksohr (Gast)


Lesenswert?

was muss denn jetzt noch gemacht werden ?

von ape (Gast)


Lesenswert?

@Matthias: Es hängt halt vom Eingangssignal ab, Wenn da nunmal 2 laute
Sinustöne drin sind deren Frequenzen etwas auseinanderliegen, sieht man
das in der FFT an Hand von 2 Balken die auftauchen, wenn die Frequenzen
dazwischen nicht vorkommen leuchten auch die Balken nicht auf...

@Benedikt: Habs mal probiert, bei mir ist nichts abgeschmiert. Ich
denke aber das liegt bei dir tatsächlich an den vielen LEDs, und die
auftretenden recht großen Ströme die ja doch recht schnell geschaltet
werden. Kann gut sein das das ganze auch einfach ganz ordentlich
strahlt und damit den AVR lahm legt.
Ich hab neulich 24 super helle LEDs (3,3V; ins Gesamt 500mA) mit einer
30kHz PWM angesteuert und damit meine Funkt-Tastatur lahm gelegt.
Im Zweifelsfall den AVR in ne geerdete Blechbüchse tun :P

Als ich nach dem MAX297 geguckt hatte gabs den bei Segor noch nicht.
Aber 10 Wochen Lieferzeit is ja ganz schön übel und 15€ sind auch nich
wenig.

von keksohr (Gast)


Lesenswert?

dann baut den doch einfach ohne diese teile auf und dann mit OPS oder so
mit mehreren einfach... das der richtig schön steil wird...., warum so
einen stress dann lieber so !

was istn wenn man den avr in ne blechbüxe packt und die spannung noch
mit ein paar GoldCap Kondensatoren sichert ? die hätten genug leistung
und kosten auch nicht mehr die welt zb für 5-6V.... bei reichelt gibt
es die für 3-7 euro.... 2 stück und gut ist^^

von Benedikt (Gast)


Lesenswert?

@ape
Danke, ich habe das Problem zwar nicht gefunden, aber umgangen:
In jeder Routine wird jetzt ein Bit gesetzt, und wenn am Ende nicht
alle Bits gestzt sind, gibt es kein WDR -> Reset
Mit voller Lautstärke lief das das ganze fast zwei Stunden ohne
Probleme, dann hat sich mein Netzteil verabschiedet. Das Display
braucht verdammt viel Leistung. Jetzt läuft das Display an einem 15V 2A
Netzteil.

Störungen kann ich eigentlich ausschließen: Ich habe getrennte
Spannungen für die LEDs und den AVR und auch getrennte Massen auf der
Platine, die nur an einem Punkt verbunden sind. Außerdem ist der mega8
bei mir etwa 50cm von der LED Treiber Platine weg, über eine 10 adriges
Kabel ausgelagert um genau diese Störungen nicht im Audiosignal zu
haben.

von matthias asselborn (Gast)


Lesenswert?

nun benedikt wollte ich dich wegen dem code
und den 2 schaltplänen fragen so dass ich da n vernünftiges layout
entwerfen kann

grüßles matthias

von Benedikt (Gast)


Lesenswert?


von matthias asselborn (Gast)


Lesenswert?

dann kann ich die schaltpläne von ape verwenden und den code von dir ?

von matthias asselborn (Gast)


Lesenswert?

ah da hast ja die pläne gleich implementiert
könntest du mir die eagle ? datei per mail senden ?
das wäre toll !

gruß matthias

von matthias (Gast)


Lesenswert?

benedikt könmntest du mir ein paar infos über den asm fft code geben wie
ich ihn verändere
denn ich bekomme in nächster zeit doch nen max bzw wenn nicht bastle
ich mir n filter
oder ist das dann 3 mal der selbe code aber wie verändere ich die
frequenzen ?

den ehrlich gesagt sind mir 40hz auflösung doch etwas zu wenig wenn ich
da die frontplatte des audioscope angugge....

grüßles matthias

von Benedikt (Gast)


Lesenswert?

Eine Version mit 3 FFTs wird um einiges komplizierter, da man entweder
mit einem zweiten mega8 arbeitet, oder mit 5fps zufrieden sein muss.
Und das ist mir ehrlich gesagt zu viel Arbeit.

Bei der Initialisierung wird an OC1B ein 444kHz Takt ausgegeben. Dieser
muss an die jeweilige Samplerate entsprechend angepasst werden.
Im Flags Register dient Bit3 zur Unterscheidung ob gerade der hohe oder
Tiefe Frequenzbereich berechnet wird, damit werden die entsprechenden
Routinen ausgewählt und die neuen Messungen gestartet.
Die Routinen do_window und do_fft benutzen beide. Bei make_bars gibt es
eine High und eine Low Routine in denen aus den Komplexen Werten de
Betrag der jeweiligen Frequenz ermitteln.
In der rfsh_bars Routine werden die Werte dann zusammengefasst:
Dazu gibt es die ganzen makexp Routinen
In rfsh_bars werden aus jeweils x Werten der Maximalwert
herausgesucht.
Das ganze funktioniert folgermaßen (am Beispiel von ds_hl2):
CL bestimmt die Anzahl an erzeugten Werten, hier 16:
Ist CL >=12, werden die Werte unveränder übernommen.
Ist CL >=9, werden 2 Werte zu einem zusammengefasst
Ist CL >=6, werden 3 Werte zu einem zusammengefasst
Ist CL >=4, werden 4 Werte zu einem zusammengefasst
Ist CL >=2, werden 6 Werte zu einem zusammengefasst
Ansonsten werden 8 Werte zusammengefasst
Insgesamt stehen 64 Werte zur Verfügung, von denen aber nur 59
verwendet werden, da die unteren 5 (daher oben bei der Zweisung des Y
Pointers die +5) schon durch den tiefen Bereich abgedeckt wurden.

Vielleicht werde ich irgendwann die Software mit 3 FFTs schreiben, aber
im Moment habe ich weder einen Grund, noch Lust dazu, da mir die
Auflösung ausreicht, und mein PC die tiefen Frequenzen auf einem
getrennten Kanal ausgibt, sie also sowiso nicht dargestellt werden.

PS: brauchst du noch meine Eagle Dateien ? Warscheinlich werden die
aber wenig hilfreich sein, da ich die Bauteile nur für einen
ordentlichen Schaltplan, nicht aber fürs Layout ausgewählt habe. Die
Größen passen also nicht.

von matthias (Gast)


Lesenswert?

ja bitte um die Eagle Dateien !
das erspart mir einige Zeit! kann mich also mit dem Code nun endlich
mal auseinandersetzen!  studiere ja nächstes Jahr Informatik
da werde ich dan wohl etwas mehr über Assembler lernen
oben schreibst du: "es stehen 64 Werte zur Verfügung"
ist das eine 64 Punkt FFT ?

grüßles Matthias

von Benedikt (Gast)


Angehängte Dateien:

Lesenswert?

Nein, es ist eine 128 Punkt FFT, denn es werden 128 Sample Werte in 64
Real und 64 Imaginärteile für die Amplitude umgerechnet, so dass man im
Prinzip 64 Beträge und 64 Phasenwinkel für die Amplituden bekommt.

von Benedikt (Gast)


Angehängte Dateien:

Lesenswert?

Ob ein Informatikstudium so viel bei Assemblerprogrammierung
weiterhilft, bezweifle ich. Das ist alles sehr theoretisch, und für
meinen Geschmack zu wenig Praxisbezogen.

von matthias (Gast)


Lesenswert?

ach ja klar ich vergas geteilt durch 2 ... ja dann sind wir bei 128 :-)
danke dir für die eagle Dateien !
grüßles Matthias

von matthias (Gast)


Angehängte Dateien:

Lesenswert?

anbei mein Vorschlag der FFT Platine
werde beide (FFT und Steuerplatte)
auf eine 160x100 Eurokarte routen!

von matthias (Gast)


Lesenswert?

ich denke mal die Spannung ist 5V
bei den Led Zeilen hast du mal 6V geschrieben....
wie kamst du auf den TLC272 ?

von Benedikt (Gast)


Lesenswert?

Die 5V sind für die gesamte Elektronik (also die beide uC, die HC4094
usw.), die 6V brauchen die MOSFETs für die Gate Source Spannung um die
5A verlustfrei zu schalten.
Ich habe keine P-Kanal Logik Level MOSFETs bei Reichelt gefunden, die
bei 5V Gate Source Spannung 5A schalten können.
Anfangs dachte ich an irgendwelche MOSFETs im DIP-4 Gehäuse, aber die
meisten können keine 5A schalten, zumindest die wo man bei Reichelt
bekommt.
Du kannst die LEDs zwar auch mit 5V betreiben, musst dann aber darauf
achten, möglichst keine Verluste in den Leitungen, MOSFETs oder sonst
wo zu haben, denn die LEDs brauchen alleine schon 4,3V !

Den TLC272 hatte ich rumliegen. Abgesehen vom LM358 war es der einzige
der mit 5V auskommt den ich da hatte.

von philip (Gast)


Lesenswert?

gibt es ne möglichkeit eventull nen schalter einzu bauen wo man von baar
auf dot mode umstellen kann ? oder reicht der platz nicht mehr..

von Benedikt (Gast)


Lesenswert?

Möglich ist das, dazu muss nur die make_bars Routine unmgeschrieben.

von matthias asselborn (Gast)


Lesenswert?

frage wieso so overkill transistoren ???
mein analoger spektrumanalyzer multiplext schneller und zwar die volle
matrix 12x31 hat pro zeile n multiplex strom von nem ampere
den ich mit den BC517 und BC518 schalte

von matthias asselborn (Gast)


Lesenswert?

sorry natürlich 516 und 517 :-)

von Benedikt (Gast)


Lesenswert?

Bei mit fließen 150mA pro LED. Ich multiplexe 1/16, also fließen
32*150mA=5A. Da gehen BC517 aber schenll in Rauch auf...

von matthias (Gast)


Lesenswert?

ja gut bei mir mit 2ma leds 20ma pro led dann bei 31 multiplex
31*20ma = ca 620ma die zeile
da ich aber 4 multiplex anzeigen habe
geteilt durch 4 das ganze und das machen die 517 er und 16 er locker
mit

von matthias (Gast)


Lesenswert?

hab 4 mal eine 7x12 er matrix da ist das nicht so kritisch

von philip (Gast)


Lesenswert?

matthias hast du die eagel datein schon fertig ? so das ich mir das
alles ätzen kann ? oder wie machen wir das jetzt?!

von matthias (Gast)


Lesenswert?

ich weis nicht mir gefällt die FFT nicht !
die Frequenzscala ist mir zu ungenau und die
Stärke des Ausschlages passt in keiner Weise zu der db Norm
dann gefallen mir die 5A Transistoren nicht
bei meinem Bandpassanalyzer multiplexen 4 Atmels das Display
so dass ich so Teile gar nicht erst brauche
aber ich mach das Layout trotzdem
für die FFT hast ja schon erhalten !

von matthias (Gast)


Angehängte Dateien:

Lesenswert?

meine 16x16 er Matritzen möchten mal arbeit !
so baue ich ihn doch mal mit der FFT zum Test
evtl bau ich ihn um - hat ja noch AD Wandler frei so dass ich 4 Filter
machen kann und dadurch eine höhere Auflösung erziele
Gruß Matthias

von matthias (Gast)


Lesenswert?

@ Benedikt

du hast ja den einen Adc mit dem Filter versehen
den anderen mit einem 100nf Kondenator in Reihe ? was bringt der ?

von matthias (Gast)


Lesenswert?

bzw was ist das für ein Filter ? n Tiefpass ? oder Bandpass ?
oder n Hochpass ?

von Benedikt (Gast)


Lesenswert?

Das ist ein Hochpass mit einigen 10 bis 100Hz, der mir die
Gleichspannung entfernt. Meine Soundkarte liefert ein aus Masse
bezogenes Signal ohne Gleichspannungsanteil, der ADC benötigt aber ein
Offset von ein paar Volt, da der AVR keine negative Eingangsspannung
verträgt.
Den selben Zweck haben auch C11 und C5.

von matthias (Gast)


Lesenswert?

was ist der große Filter ist das ein bp hp oder tp ?
weil ich möchte nun 4 von den filtern einsetzen

von matthias (Gast)


Lesenswert?

@benedikt wie hast du den filter berechnet ?
von den bauteilen her ?

von matthias (Gast)


Lesenswert?

lassen sich die bc337 durch bc547 ersetzen ?

von matthias (Gast)


Lesenswert?

mir ist das Prinzip noch nicht ganz klar du sprachest von einer 5,5khz
Trennung ?!
du sendest das volle Audiosignal in den 1.ADC
der Filter sieht mir wie ein Bandpass aus der dann von 5,5khz bis Ende
den 2.ADC versorgt
nun bekommt aber der 1. ADC das volle Programm ?
rechnet also das gesamte Spektrum
das macht das doch langsamer ?
wie wäre es man würde 3 oder 4 Bandpassfilter nehmen
der FFT klare Bereiche zuteilen
oder wie schneidest du das Signal am 1. ADC ab ?
oder ist die 1.FFT im Atmel eine mit nur 11khz Samplerate
die dann bis 5,5 khz den Bereich abdeckt ?
so könnte ich es mir erklären

ich versuche demnächst wenn ich von dir erfahre wie man den Filter
berechnet das Ganze nur bis 2,5khz gehen lassen also die 1.FFT nur 5
khz Samplerate so müsste dann schon wieder ein paar Herz weniger
in den Zwischenräumen gehen könntest du mir mal die entscheidenden
Stellen im Code zeigen ?
bzw mal ne Info über den großen Filter geben :-)
das wäre Klasse
Gruß Matthias

von matthias (Gast)


Lesenswert?

nochmal ne Frage
bevorzugst du keinen Halb oder Vollwellen Ggleichrichter vor dem ADC ?
oder erledigen das die Kondensatoren ..c11...c5 usw..

von matthias (Gast)


Angehängte Dateien:

Lesenswert?

anbei mal die Bandpassfilter eines orginal Audioscope Spectrum Analyzers


die PNG zeigt den 1. und letzen Filter
unten in der Tabelle sind die verschiedenen Werte aufgeführt

von matthias (Gast)


Lesenswert?

anbei noch einige Simulationsprogramme
oder kennst du Benedikt etwas besseres?
http://www.modul-bus.de/compas/compas25/simulat.html

von Benedikt (Gast)


Lesenswert?

Wenn du Low Current LEDs verwendest, und den Strom etwas reduzierst,
dann geht es auch mit BC547. Bei 150mA ist ein BC547 etwas
überfordert.

Die ganzen Kondensatoren am Eingang und direkt vor den ADC dienen nur
als Koppelkondensatoren um das DC Offset zu beseitigen.
Das große Filter ist ein Tiefpass mit etwa 2kHz Grenzfrequenz (etwas
unter der halben Samplerate: 5,5kS/s -> 2,275kHz Bandbreite -> 2kHz
Tiefpass.
Berechnet habe ich das ganze damit:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010007&part=
Es ist eines der besten Programme die ich gefunden habe, das mir die
einfachsten und auch steilsten Filter liefert.

Wenn du also noch eine weitere FFT, z.B. mit 1,4KS/s machen willst,
dann ist ein 500Hz Filter hilfreich.

von matthias (Gast)


Lesenswert?

Wenn du also noch eine weitere FFT, z.B. mit 1,4KS/s machen willst,
dann ist ein 500Hz Filter hilfreich.

wieso dann nicht 700hz bei 1,4KS/s ?

dann bräuchte ich ja einen Tiefpass z.b. mit 500-700hz oder tiefer
danach einen Bandpass wieder einen Bandpass und am Schluss einen
Hochpass

dann wären es 4 Filter die ich in die 4 ADC Eingänge eintreten lasse

Frage: der Tiefpass Filter bei dir muss ja die 1. FFT sein !
und das normale Line die 2. richtig ?

von matthias (Gast)


Lesenswert?

andere Frage wenn ich da nun 4 Filter hinklemme
genügt dann die Rechenleistung des Avrs ?

von Benedikt (Gast)


Angehängte Dateien:

Lesenswert?

Anscheinend hast du immer noch nicht verstanden, wie das ganze
funktioniert:
Jede FFT erzeugt 64 Frequenzen von 0Hz bis SampleRate/2 mit
SampleRate/2/ 64Hz Abstand
Der Tiefpassfilter muss sicherstellen, dass keine Frequenzen größer als
SampleRate/2 an den ADC kommen.
Da braucht man keinen Bandpass, sondern es reicht ein unendlich steiler
Tiefpass mit SampleRate/2 Grenzfrequenz.
Da man sowas aber nicht bauen kann, verwendet man einen Tiefpassfilter
mit einer etwas niedrigeren Grenzfrequenz, damit die höheren Frequenzen
auch wirklich unterdrückt werden. Man kann daher aber nicht alle 64
Werte, sondern eben nur 50 oder 60 davon verwenden. Ich verwende nur
die unteren 30 Werte, um mit einem einfachen Tiefpass mir nur 2 Opamps
auszukommen.
Ich habe mal die FilterLab Datei angehängt, mit dem ich das Filter
berechnet habe.

von matthias (Gast)


Angehängte Dateien:

Lesenswert?

anbei ein Bild !

ich sehe gerade !
es würden 2 Filter reichen
ein Tiefpass von 0 - 250hz in 10hz Schritten
dann ein Bandpass von 300hz bis 2,5khz mit 100 hz Schritten
dann ab 3khz bis 20khz die normale fft verwenden in 1khz schritten

das wäre doch machbar ?

von matthias (Gast)


Angehängte Dateien:

Lesenswert?

frontansicht mit band

von matthias (Gast)


Angehängte Dateien:

Lesenswert?

achso ja dann wären es 2 tiefpässe einer bis 250 hz und einer bis 2,5khz

das wäre aber doch machbar ?

von matthias (Gast)


Lesenswert?

also fang ich mal an !

1. Tiefpass bis 640hz
1. FFT Samplerate 1,28hz
64 Werte kann ich bis 250hz entnehmen
bei einem 4. Ordnung Filter entnehme ich die ersten 25 Werte
also 640hz /64 = 10 Herz Schritte

10hz      110hz     210hz
20hz      120hz     220hz
30hz      130hz     230hz
40hz      140hz     240hz
50hz      150hz     250hz
60hz      160hz
70hz      170hz
80hz      180hz
90hz      190hz
100hz     200hz

diese lass ich an den folgenden Frequenen darstellen
30 40 50 60 80 100 120 160 200 250


2. Tiefpass bis 6,4khz
1. FFT Samplerate 12,8khz
64 Werte kann ich bis 6,4khz entnehmen
bei einem 4. Ordnung Filter entnehme ich die ersten 25 Werte
also 6,4khz /64 = 100 Herz Schritte

100hz      1,1khz     2,1khz
200hz      1,2khz     2,2khz
300hz      1,3khz     2,3khz
400hz      1,4khz     2,4khz
500hz      1,5khz     2,5khz
600hz      1,6khz
700hz      1,7khz
800hz      1,8khz
900hz      1,9khz
1000hz     2,0khz

diese lass ich an den folgenden Frequenen darstellen
300 400 500 600 800 1000 1200 1600 2000 2500


3. normales Audio Signal FFT 16khz
1. FFT Samplerate 32,0khz
64 Werte kann ich bis 16khz entnehmen
bei einem 4. Ordnung Filter entnehme ich die vollen 64 Werte
also 16khz /64 = 250 Herz Schritte

250hz   2,75khz   5,25khz
500hz   3,00khz   5,50khz
750hz   3,25khz   .
1000hz  3,50khz   .
1250hz  3,75khz   .
1500hz  4,00khz   16,0khz
1750hz  4,25khz
2000hz  4,50khz
2250hz  4,75khz
2500hz  5,00khz

diese lass ich an den folgenden Frequenen darstellen
3000 4000 5000 6000 8000 10000 12000 16000

die Filter zu berechnen wären kein Problem !
2 Filter an ADC 2 und 3
an ADC 1 das Line Signal

@Benedikt könntest du mir ein wenig mit dem Code helfen ?
ich kann C aber bin noch nicht soo fit @Assembler

von matthias (Gast)


Angehängte Dateien:

Lesenswert?

anbei die komplette Analyzer Schaltung
so wie ich es mir vorstelle mit den 2 Filtern
evtl könnte ich auch 8. Ordnung aufbauen !
die paar Bauteile...

was meinst du dazu Benedikt ?
also meiner Meinung nach müsste das doch realisierbar sein vom Code
her!

von Benedikt (Gast)


Lesenswert?

Das ganze zu realisieren ist kein Problem, nur etwas Arbeit.
Bei 1,28kHz Samplerate und 128 benötigten Samples benötigt diese FFT
alleine schon 10ms nur zum Daten aufzeichnen -> kontinuierlich Daten in
einen Ringpuffer schreiben und für die FFT nur die neuesten 128 Werte
entnehmen. Dies erfordert aber einen eigenen uC.

von matthias (Gast)


Lesenswert?

um das wäre es mir nicht aber mein problem liegt an 2 sachen

1. problem - assembler ist mir fremd
2. problem meine demo eagle version macht nur die kleine board
und mit ner gecrackten naja du weist schon @fehler 290

die orginale ist mir ehrlich gesagt zu teuer ...
über 1000 euro
für das geld würde ich den obigen audioscope spec analyzer bekommen
:-)

ähm gibt es denn nicht für ein paar hundert euro eine schüler
/studentenversion
bin dieses jahr noch schüler (bos bayern)
nächstes jahr bzw ab juni dann student ...

könntest du mir ein wenig helfen
@code .....
aber du hast doch auch einen filter drinnen
oder weil es nun 2 filter sind ?

von matthias (Gast)


Lesenswert?

ja gut 230 euro für die 100x160 er verison naja....
und 450 für die volle ... ist auch schon viel .... für nen
schüler/studenten....

von matthias (Gast)


Lesenswert?

naja 125 euro für die non profit könnte man sich überlegen ...
aber dann auch nur 160x100 hmmmmmmmmmmmm

von matthias (Gast)


Lesenswert?

Benedikt wenn ich 2 µC verwende wie kann ich dann die Leitungen Sync und
Daten ? multiplexen ?

von Benedikt (Gast)


Lesenswert?

Die uC müssten dann die Daten untereinander austauschen:
Der erste mega8 macht die ganz schnelle FFT und die mittelschnelle
abwechselnd. Sobald eine FFT fertig ist, werden die Daten an den 2.
mega8 gesendet.
Dieser macht die langsame FFT, hat also an sich nicht viel zu tun außer
die Audio Daten sehr langsam aufzuzeichnen und dann eine FFT zu machen.
Wenn diese fertig ist, und die Daten vom ersten mega8 da sind, werden
die 3x 64Bytes zu den Daten für die LED Matrix zusammengefasst und
übertragen.

von matthias (Gast)


Lesenswert?

ja schon klar aber das kann ich net in asm umsetzen leider...

von Benedikt (Gast)


Lesenswert?

Ich bin gerade an der Software.
Die 1,28kHz Samplerate sind kein Problem, aber die 32kHz werden nicht
einfach:
Du nutzt den vollen Frequenzbereich bis 16kHz. Da musst du entweder den
Tiefpass sehr steil machen, oder eine höhere Samplerate verwenden.
Mit 42,67kHz Samplerate hätte man den Bereich bis 21,33kHz mit 333Hz
Auflösung. 3 Stück zusammengefasst und man hat genau das 1kHz Raster.
Der Tiefpass kann dann auch einfacher werden, da er nur bis 16kHz alles
ungehindert durchlassen muss, dann aber bis über 25kHz abfallen kann.

von keksohr (Gast)


Lesenswert?

und bis wie viel mhz müsste man den avr dann jagen damit man 42khz
sampel rate hat?

von Benedikt (Gast)


Lesenswert?

Für 42kHz Sampelrate reichen 1MHz Takt.

von matthias (Gast)


Lesenswert?

konntest du die Dateien in der Email öffnen Benedikt ?

denn wenn ja mache ich die komplette Platine !
den neuen Schaltplan und das Layout !

wie mache ich das nun eine 2. FFT genau so wie die erste und wo
verbinde ich die Atmels ?

von matthias (Gast)


Lesenswert?

Mit 42,67kHz Samplerate hätte man den Bereich bis 21,33kHz mit 333Hz
Auflösung. 3 Stück zusammengefasst und man hat genau das 1kHz Raster.
Der Tiefpass kann dann auch einfacher werden, da er nur bis 16kHz
alles
ungehindert durchlassen muss, dann aber bis über 25kHz abfallen kann.


wie gesagt das wäre ja schon mal super ! aber ich dachte einen 3.
Tiefpass brauch ich garnicht ?
oder doch ?

hab ja nun 2 Filter und einen kompletten Signalgang

von Benedikt (Gast)


Lesenswert?

Die Software muss ich dann erstmal testen. Dazu muss ich erstmal die
Schaltung auf dem Steckbrett aufbauen und das LED Display am PC
simulieren.

Den 3. Tiefpass kannst du weglassen, wenn du sicherstellst, dass keine
Frequenz > halbe Samplerate vorkommt. Das ist bei mir dadurch gegeben,
dass die Soundkarte im PC einen 22kHz Tiefpass eingebaut hat.
Verwendest du dagegen 16kHz brauchst du einen Filter.

von matthias (Gast)


Lesenswert?

also ich möchte ien line in signal am ende anschliesen ...

also einen 3. Filter für 16khz ?
evtl den auch bis 20 khz laufen lassen den Filter
so dass die 16khz noch gut im Bereich sind ?

ging da nicht so wie bei dir auch nur n Kondensator ?

von matthias (Gast)


Lesenswert?

wie sieht das dann mit dem atmels aus also der 2. fft aus ?
wo klemm ich welchen filter hin ?

von matthias (Gast)


Lesenswert?

werden die Transistoren sehr heiss?
konntest du meine Dateien öffnen?

von Benedikt (Gast)


Lesenswert?

Die Dateien konnte ich problemlos öffnen.
Aber das Layout ist nicht dein Ernst oder ?
Du hast doch alle Bauteile einfach nur auf die Platine geschmissen, und
dann den Autorouter drüber gelassen, oder ?
Wenn die Schaltung laufen sollte, dann kann man den AT89C2051 als
absolut stabil gegen alle Arten an Störungen bezeichnen.
Die Transistoren werden kaum warm, sagen wir mal 40° maximal für die
Treiber der untersten LED Reihe, die immer an ist.
Versuch mal das ganze etwas zu ordnen, und die Spannungen von LED
Matrix und Digital ICs zu trennen.

Zur FFT, das ganze wird folgendermaßen ablaufen:
Der AVR der die beiden schnelleren FFTs macht bekommt die 20kHz an ADC0
und die 6,4kHz an ADC1. Dessen TXD Pin geht zu dem RXD des zweiten AVR,
und der Sync Pin ist an INT0 angeschlossen.
Der zweite AVR bekommt an ADC0 das 640Hz Signal.

Eigentlich benötigt jeder ADC Eingang einen eigenen Tiefpassfilter. Da
ich meine Anzeige aber nur am PC betreibe, kann ich mir den Filter für
die 22kHz sparen, da dieser auf der Soundkarte eingebaut ist.

von matthias (Gast)


Lesenswert?

Benedikt es ging mir nur darum, ob du die Dateien lesen kannst!
denn wenn nicht wäre die Mühe eines 100%igen Layouts umsonst gewesen
und bis ich das Tip Top geroutet habe rechne ich mal 1-2Std
klaro ist das nicht mein Ernst
ich habe die Bauteile nur rübergeschoben um zu sehen ob das neue Eagle
auch mit größeren Platinen > 100x160 zurecht kommt !

Werde die Schaltung so anpassen wie du sagst und Posten !

Gruß Matthias

von matthias (Gast)


Lesenswert?

frage du hast ja chebychev filter genommen ?!
warum?
weshalb?
ich hab mich für butterworth entschieden

von Benedikt (Gast)


Lesenswert?

Bei Chebychev ist der Übergang viel steiler als bei Butterworth oder
Bessel.
Ich benötigte einen Filter mit möglichst abruptem Übergang von <+/-1db
auf den entsprechenden Abfall. Bei Butterworth gibt es noch einen
Übergangsbereich, der etwas störend ist.

von matthias (Gast)


Lesenswert?

hab nun n 8. ordnung filter drinnen für die 20khz

von Benedikt (Gast)


Lesenswert?

Ich bin heute nicht mehr dazugekommen die Software zu testen.
Werde das aber morgen machen.
Bis auf die Zusammenfassung der 3x 64 Werte müsste aber jeder uC
alleine schon funktionieren.
Aber so wie ich meine Software kenne, werde ich noch eine Menge Fehler
drin haben...

von matthias (Gast)


Angehängte Dateien:

Lesenswert?

die Schaltung ist nun soweit fertig
ich hoffe ich bekomme alles auf eine 100x160 oder 200mm Platine :-)
es fehlen halt noch die Pforstenstecker für die LED Matritzen die ich
ja schon fertig geätzt gebaut habe

könntest du das mal kritisch anguggen Benedikt ?

von matthias (Gast)


Lesenswert?

ups die Verbindungen der Atmels vergessen....

von matthias (Gast)


Lesenswert?

Zur FFT, das ganze wird folgendermaßen ablaufen:
Der AVR der die beiden schnelleren FFTs macht bekommt die 20kHz an
ADC0
und die 6,4kHz an ADC1. Dessen TXD Pin geht zu dem RXD des zweiten
AVR,



problem : da ist ja schon der display atmel dran ?
oder soll ich den an den 2. fftatmel klemmen ?


und der Sync Pin ist an INT0 angeschlossen.
Der zweite AVR bekommt an ADC0 das 640Hz Signal.

von Benedikt (Gast)


Lesenswert?

TXD von mega8 1 -> RXD von mega 8 2
Sync von mega8 1 -> INT0 von mega 8 2
TXD von mega8 2 -> RXD von 89C2051
Sync von mega8 2 -> INT0 von 89C2051

von matthias (Gast)


Angehängte Dateien:

Lesenswert?

mega8 1 -> 20khz und 6,4khz Filter
mega8 2 -> 640hz Filter
Sync = SCK

dann wäre er nun außer den Pforstenbuchsen für die LEDs
und Masse an den Transistoren fertig

von Benedikt (Gast)


Angehängte Dateien:

Lesenswert?

Bei dem Sync Pin passt was nicht, den habe ich versehentlich doppelt
belegt. Der Sync Ausgang ist der Int1 Pin (PD3) und der Eingang für
Sync ist INT0 (PD2).
Allerdings muss ein AVR warscheinlich durch einen mega32 ersetzt
werden, da 1k RAM nicht ausreichen. Ich benötige wegen dem extra Ring
Samplebuffer für die tiefen Frequenzen 256Bytes RAM mehr, also
1,25kB...
Eine Alternative wäre, den Ringpuffer wegzulassen, was die Refreshrate
aber auf etwa 10fps bei den tiefen Frequenzen reduzieren würde.

Der Code für die beiden schnelleren FFTs in einem mega8 ist soweit
fertig.

von matthias (Gast)


Angehängte Dateien:

Lesenswert?

also kein thema @mega32 dann nehmen wir für die 640 herz geschichte
einen mega32 hab sowas noch daheim
werde sofort den schaltplan ändern !
könntest du mir die software des schnellen mega 8 noch ausbessern @
sync pins ? eilt ja nicht

von matthias (Gast)


Angehängte Dateien:

Lesenswert?

anbei mal den plan !

frage: kann ich das so machen mit den ISP anschluss an dem atmel
dass ich den drann lasse ! an allen atmels  oder streite sich da die
spannung reset z.b. mit dem isp ???

gruß matthias

von matthias (Gast)


Angehängte Dateien:

Lesenswert?

noch die bibliothek für den mega 32

von matthias (Gast)


Lesenswert?

du Benedikt ! kann ich den ISP Adapter, so wie ich ihn auf dem Board 2
mal habe dran lassen oder muss ich den mit einem 9 poligen Dil Schalter
trennen ?

Gruß Matthias

von Benedikt (Gast)


Lesenswert?

Sind die auf dem Plan nicht getrennt (X2 bzw. X4) ?

von matthias (Gast)


Lesenswert?

klaro sind es 2x 9 polige sub d buchsen

aber ich meine zurzeit sind sie ja immer dran also mit den atmels
verbunden
bekomme ich da durch den reset pin oder andere keine probleme ?
da der ja auf +ub ist ?

deshalb dachte ich mir die schaltungen mit dip schaltern zu trennen ?

gruß matthias

von matthias (Gast)


Lesenswert?

ich denke so wie es ist wird es einen Kurzschluss am Reset Pin geben !
anbei mein Schaltplan vom Programmer !
das ISP Teil hab ich integriert in den Schaltplan !
da ist noch ein Taster auf GND
und der Transistor schaltet nach GND
wenn nun also Vb+ am Reset Pin des Atmels so wie du
ursprünglich ihn angebracht hast anliegt gibts n kurzen !

hast du mir n Rat Benedikt ?
das ganze Zeug weglassen und außerhalb vom Analyzer programmieren ?

von matthias (Gast)


Angehängte Dateien:

Lesenswert?

datei vergessen

von matthias (Gast)


Lesenswert?

hab ihn nun rausgeschmissen !!!!!
weil es vermutlich einen kurzen gegeben hätte ! mit dem reset und isp

muss ich den reset pin durch einen dil schalter von der +ub trennen
wenn ich den atmel programiere ?

von matthias (Gast)


Lesenswert?

Benedikt hast du nochmal Zeit für die beiden Codes ?

grüßles Matthias

von Benedikt (Gast)


Angehängte Dateien:

Lesenswert?

Hier der Code für die langsame FFT im mega32
Getestet habe ich nur teilweise, mangels vorhandener Hardware

von Benedikt (Gast)


Angehängte Dateien:

Lesenswert?

Und hier noch der andere.

von matthias (Gast)


Lesenswert?

wurde die 640hz FFT durch den Mega 32 nicht schneller oder wieso
schreibst du "langsame"

von matthias (Gast)


Lesenswert?

vielen Dank erst mal für deine Hilfe
weist du wie ich in Eagle mittels ULP die Bibliotheken der zu klein
geratenen Widerstände ändern kann so dass die mit den wirklichen
Größen übereinstimmen

von Benedikt (Gast)


Lesenswert?

Das langsame bezog sich auf die Samplerate.
Der mega32 sollte sich eigentlich die meiste Zeit langweilen:
Er wartet auf die Daten vom mega8, die rund 30-40 mal pro Sekunde
übertragen werden. So hoch ist dann auch die Aktualisierungsrate des
Displays, also 30-40fps was eigentlich schnell genug sein sollte.

Mit Eagle kenne ich mich nicht gut aus, ich bin froh wenn entweder das
Layout oder Schaltplan gut aussieht. Beides gleichzeitig gut zu machen
habe ich noch nicht geschafft.

Kannst du mir mal das Layout schicken, wenn du damit fertig bist ?
Verwendest du die IRF9531 MOSFETs, oder hast du entsprechend starke
logik Level MOSFETs gefunden ?

von matthias (Gast)


Lesenswert?

wollte dich gerade auf die IRF9531 MOSFETS ansprechen
wo hast du die denn gekauft ?
da ich sie beim Reichelt garnicht finde
nun habe mich noch nicht auf die Suche eines anderen Typen gemacht
wenn der Schaltplan zu 100% fertig ist mach ich das Layout !
ich muss noch die Pforstenstecker für die LED Displays anklemmen
dann die 200 Widerstände auf ein anderes Package bringen so dass ich
mit dem Board loslegen kann
klar poste ich das dann !

welche günstigen MOSFETS bieten sich denn an
wir brauchen ja P Channel !

von matthias (Gast)


Lesenswert?

ich sehe dass der IRF9530 baugleich mit dem 31 ist

nunja 0,65 Euro beim Reichelt
wären ja bei 16 Stück 10,4 euro
ginge ja noch
ich denke du hast da keine soo große Auswahl an den P-channel
Transistoren
auf einen IRF wird es rauslaufen !

von matthias (Gast)


Lesenswert?

ich denke aber auch.... nun 5 V für die Transistoren wären Super...
aber so ist halt doch die Spannung des Displays getrennt ...
bzw ich suche mal nach einem logik Level MOSFET

von matthias (Gast)


Lesenswert?

es gäbe da schon...
den FDD5202P zum Beispiel ...
aber woher bekommen ?

von matthias (Gast)


Lesenswert?

ich denke ne andere Firma als Fairchild stellt die nicht her ?
lassen wir den IRF9530 !

von matthias (Gast)


Lesenswert?

ups der IRF9530 ist doch n N-Channel!
Frage: woher bekomme ich die IRF9531??

von matthias (Gast)


Lesenswert?

ich habe eine Bitte Benedikt !
bitte poste mir mal DEINE Eagle Bibliothek wo DEINE Widerstände die du
genommen hast drin sind !
bitte !

von matthias (Gast)


Lesenswert?

ich meine die RESEU-5  mit dem Package R5

von matthias (Gast)


Lesenswert?

sag mal ??? hast du noch eine 3.XX Eagle Version ?????

von matthias (Gast)


Lesenswert?

sag mal...hast du noch eine 3.XX Eagle Version?

von matthias (Gast)


Lesenswert?

Bibliothek müsste "discrete" heissen!
bitte sei so lieb ! sonst kann ich die Packages nicht ändern!
und das Board net machen!

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.