- Akku Tests und Balkonkraftwerk Speicher         
Seite 3 von 6 ErsteErste 12345 ... LetzteLetzte
Ergebnis 21 bis 30 von 51

Thema: µC Tester (DSO) selber bauen (unterworfen)

  1. #21
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Die routine für die AVRs braucht wirklich nur 3 Zyklen (Befehne In port,Reg und ST x+,Reg).

    Wenn es wirklich schneller sein soll, wird man wohl die Daten direkt per Logic in ein externe RAM schieben können. Das braucht dann ein SRAM und ein paar Logic ICs (gar nicht so viele, etwa 4-5) oder alternativ ein CPLD oder FPGA. Dann sollten aber auch rund 50-100 MHz Abtastrate drin sein. Das auslesen usw. kann man dann per µC machen.

  2. #22
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Hallo Besserwessi!

    Du sagst also, dass die max. Frequenz eines Signals das ein AVR durchs Port ausgeben kann ist Fosc/3 und nicht Fosc/6 ?

    Es soll nicht schneller, aber einfach sein und die Samplingrate 40 MS/s reicht mir fürs Testen von µC Schaltungen völlig aus.

    Inzwischen habe ich entschieden, dass ich ein "echten" DSO mit ADC und Handydisplay 64x96 Pixel bauen möchte, weiß ich aber noch nicht wann ...

    MfG

  3. #23
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Der Wert FOSC/3 gibt ohne schelife drumrum. mit schleife sollte man FOSC/4 eventuell gerade noch schaffen können. Es gaht natürlich auch die Lösung den Code 4000 mal hinzuschreiben. Das Tempo gilt für Ein- oder Ausgabe für die meisten Ports. Bei den ganz großen wie MEGA256 oder so gehen nicht alle ports so schnell, aber die meisten.

    Damit kommt man aber halt nur auf gut 6 MS/s. Für tests kann man allerdings den Controller in der Zielschaltung auch langsamer (z.B. 3 MHz beim AVR oder 12 MHz beim PIC) laufen lassen.

  4. #24
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.211
    das flashram , das kann man garnicht mit daten beschreiben!!
    da liegt ausschliesslich der programmcode drinne (zumindest bei atmel).
    Und was macht dann der Assembler Befehl "SPM" ?
    Den es aber zugegebenermassen nicht bei allen AVR's gibt.
    Beim ATMEGA8 hab ich ihn auf jeden Fall gefunden.

  5. #25
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Wunderbar! Wenn die AVRs nicht schneller als PICs sind, dann sollte es hinhauen.

    Ein Beispiel zum Überprüfen:
    AVR mit Fosc 20 MHz -> am Port Fosc/4 = 5 MHz
    PIC mit Fosc 40 MHz -> am Port Fosc/8 = 5 MHz

    Um das Signal am Port durch den µC Tester (PIC) bei Abtastfrequenz 20 MHz einzulesen muss ich die Schieberegister am Eigang mit 20 MHz takten, was für AVRs gleich Fosc und für PICs Fosc/2 ist.

    Wenn ich Abtastfrequenz 40 MHz haben will, müsste ich nur für AVRs die Frequenz des Oszllators verdoppeln, kommt also noch ein Umschalter dazu (siehe Code).

    Der PIC im µC Tester kann den Wert vom Port ins RAM mit Fosc/8 bringen, also die 8 Bits vom Eigangsregister mit 5 MHz einlesen. Das ergibt dann die max. Abtastfrequenzen:

    1 Kanal -> 40 MHz, 2 Kanäle -> 20 MHz, 4 Kanäle -> 10 MHz

    Wie ich schon früher geschrieben habe, finde ich, wegen Geschwindigkeit, eine Ausführung mit einem Umschalter für 1-2 Kanäle als optimal. Bei Einem Betrieb mit einem Kanal und Spitze, kann man das eingelesene Signal in zwei Displayzeilen darstellen.

    MfG
    Code:
               Bedienungselemente
    
                    .--.
               Menü |# | RAM (Schiebeschalter)
                    '--'
                  _ .--. _
                _|  |# |  |_ (Schiebeschalter)
                    '--'
                    .--.
         (Kanäle) 1 |# | 2   (Schiebeschalter)
                    '--'
                    .--.
                PIC |# | AVR (Schiebeschalter)
                    '--'
                      -
              Start  ( )     (Drehrad mit Taster)
                      -
    
         Beispiel für Display 2 x 20 Zeichen
    
       .----------------------.   .----------------------.
       |                      |   |    _ _ _ _ _ _ _ _ _ |
       | XSCAN VIEW EDIT GEN  |   | 10_ _ _ _ _ _ _ _ _  |
       |                      |   |     __  __  __  __   |
       |  SAVE CALE SAVF CALF |   | 00__  __  __  __  __ |
       |                      |   |                      |
       '----------------------'   '----------------------'

  6. #26
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Schaft der PIC das wirklich die Daten in 8 Zyken vom Port ins RAM inclusive einer Schleife drum rum ? Das wären ja nur 2 CPU zyklen.

    Ohne Schleife schafts der AVR in 3 Zyken, der 4 te Zyklus war für die Schleife gedacht, wobei mit aber aufgefallen ist, das das wohl nicht ganz reicht mit konstant 4 Zyklen, denn die Sprünge brauchen auch wenigstens 2 Zyklen, genau wie der RAM zugriff. Da krigt man zwar im mittel FOSC/4 hin, aber nicht jedes mal gleich. Das geht dann erst mit FOSC/5.

  7. #27
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Je mehr um so besser für mich.

    So wie ich das jetzt sehe, hat der PIC zwar innere Taktteilung von Fosc auf 4 CPU Takten (Fosc/4), aber dafür braucht er z.B. für Port ins RAM einlesen ohne Schleife indirekt mit automatischer Adressenerhöhung nur zwei CPU Takte.

    Deswegen bei Fosc = 40 MHz, wenn man die Daten in ein Schieberegister seriel mit Fosc eintaktet und sie dann parallel (8-bit) mit Fosc/8 = 5 MHz ins RAM einliest, hat man 8x5 MHz = 40 MHz Abtastrate (für ein Kanal).

    Ich überlege immer noch ob ich nicht bei nur einem Kanal mit Spitze bleiben soll... und nur für PICs brauche ich keinen Frequenzverdoppler und PIC/AVR Umschalter... vielleicht macht es für AVRs jemand andere...

    MfG

  8. #28
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.11.2006
    Ort
    olargues
    Beiträge
    776
    hallo besserwessi...
    das beruhigt mich aber .. was du schreibst:

    Die routine für die AVRs braucht wirklich nur 3 Zyklen (Befehne In port,Reg und ST x+,Reg).
    da ich heute nur mal kurz ins command-set geschaut habe, ohne die wirkliche beschreibubg der commands zu haben.

    also ist mein intuitives ratespiel ja gut ausgegangen.

    @picture...

    demnach wird es wohl fosc/3 sein !
    wenn du jedoch berücksichtigst, dass das einlesen eines bits genauso lange dauert, wie das einlesen von 8 bit, wäre es ja so, dass man durch geschickte externe beschaltung, wieder schneller werden kann.

    gruss klaus

  9. #29
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Hallo!

    Mir ist nicht ums EINLESEN sondern ums AUSGEBEN beim AVRs gegangen, weil ich es eventuell mit PIC einlesen wollte. Wegen keiner klarer Antwort auf meine Frage, mache ich den µC Tester nur für PICs, weil mit AVRs kenne ich mich nicht genau aus.

    Anscheinend sind die EDIT und GEN Funktionen nicht gefragt und das Abspeichern der eingelesener Signale im EEPROM, wegen zu kleiner Größe (nur 256 Bytes), uninteressant.

    Deswegen habe ich mich letztendlich entschieden, dass ich nur ein einfachen DSO mit 4 Kanälen (Abtastrate max. 12 MS/s) und 2x16 Zeichen Display baue.

    Wahrscheinlich als ersten baue ich mir jedoch 1-kanaligen DSO mit Spitze (PIC18F252) und max. Abtastrate 40 MS/s, weil er hardwaremässig am einfachsten ist. Um 4 Kanäle gleichzeitig beobachten zu können, müsste man das Einlesen der Signale 4 mal mit gleicher Triggerung wiederholen. Diese Lösung hat eben das Vorteil, dass nur zwei Kabel (OSC und TRG) nötig sind.

    Im Code habe ich den vorläufigen Schaltplan skizziert, dazu muss ich nur Software schreiben, was etwas dauern wird. Ich melde mich wieder erst im nächstem Jahr im "PIC Controller" Forum, wenn ich damit fertig bin.

    Vielen Dank an alle, die mir geholfen haben ein vernünftiges Menu zu erstellen.

    Ich wünsche allen frohe Weihnachten, guten Rutsch und viel Erfolg im Jahr 2009!

    MfG
    Code:
                                               VCC
                                                +
                                                |      GND
                                                +---+  ===
                                              14|  9|   |7
          Spitze     .---------------.   1,2.-------o-------.
         <-----------|IC2            |------|IC3            |
                  +--|    74HC40105? |   +--|    74HC164    |
                  |  '---------------'   | 8'---------------'
                  |                      |  1|1|1|1|6|5|4|3|
                  |                      |  3|2|1|0| | | | |
                  +----------------------+   | | | | | | | +-----> B0
                  |                          | | | | | | +-------> B1
                  |                          | | | | | +---------> B2
                  |                          | | | | +-----------> B3
                  |            VCC           | | | +-------------> B4
                  |             +            | | +---------------> B5
                  |             |            | +-----------------> B6
                  |       +-----+-----+      +-------------------> B7
                  |       |           |
                  |      .-.         .-.                      GND
                  |      | |R4       | |R5                    ===
                  |      | |10k      | |10k                    |
                  |      '-'         '-'                       +-> GND
            \     |       |           |
         OSC X----+-------+-----------|--------------------------> OSC1
            /                         |
            \                         |
         TRG X------------------------+--------------------------> TRG
            /
    
    
                               +--+--+----------------+
                               |  |  |                |
                       R1...R3.-..-..-. IC1           |
                       3 x 10k| || || | PIC           |
                              | || || | 18F252        |
                              '-''-''-'.-------.      |
                    Mausrad  o-|  |  |-|1    28|-< B7 |
                    +--+-o--__ |\-+--|-|2    27|-< B6 |
                    |  |     o-+-----|-|3    26|-< B5 |
                   === +-------o _/o-+-|4    25|-< B4 |           /
                   GND | Flanke /     -|5    24|-< B3 +--+-------X +VCC
           TRG >-------|---------------|6    23|-< B2 |  |        \
                       |              -|7    22|-< B1 | --- C1
                       +---------------|8    21|-< B0 | --- µ1
          OSC1 >-----------------------|9    20|------+  |        /
                                      -|10   19|------+--+-------X GND
                               +-------|11   18|-     |           \
           GND >-+             | +-----|12   17|-    ===
                 |        GND  | | +---|13   16|---+ GND
                ===       ===  | | | +-|14   15|-+ |
                GND   VCC  |   | | | | '-------' | |
                       + +-+-+ | | | |           | |
                       | | | | | | | | | | | |   | |
                      .-----------------------------.
                      |2 1 3 5 1 1 1 1 7 8 9 1   4 6|
                      |        1 2 3 4       0      |
                      |                             |
                      '-----------------------------'
                           Display 2x16 Zeichen

  10. #30
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Hallo!

    Ich bin jetzt auf ein Problem gestoßen, das ich bisher nicht, wegen fehlender Überzeugung, entgültig lösen konnte. Um ein Signal vom µC mit ausreichender Auflösung einlesen zu können, brauche ich einen Taktgenerator mit Frequenz 2xFosc (für AVRs) bzw. 4xFosc (für PICs, also 2x2) des zu testenden µCs.

    Bisher habe ich nur feste HF Frequenzen mit LC Schwigkreisen multipliziert. Diesmal handelt sich aber um variable Frequenz, die im Bereich von ca. 8 kHz bis 10 MHz liegen kann.

    Ich habe schon ein paar Ideen dafür, bevor ich jedoch eine realisiere, möchte ich zuerst hier einen Rat holen, um ein Rad nicht neu erfinden zu müssen. Mir geht es vor allem um eine einfachste Methode und nicht konkrete Lösung.

    Erwünscht wären auch Meinungen über von mir zuletzt angenommene Variante des Menüs, wo in der oberen Zeile Meldungen (z.B. dass ein Takt vom zu testendem µC fehlt) und in der unteren Zeile Menüpukte zur Auswahl mit dem Drehencoder/Mausrad, dargestellt werden.

    Meine bisherige Ideen:

    1. Für jede Flanke ein Nadelimpuls erzeugen und mit Monoflop auf ca.T/2 verlängern (siehe Code).
    2. Rechteck in Dreieck wandeln und gleichrichten.
    3. PLL mit variablem Oszillator und Mischer um den ganzen Bereich ohne Umschaltung abzudecken.

    Falls unvermeindbar, kann ich fürs Einstellen der sich ändernden Parameter natürlich der in der Schaltung schon vorhandenen und fast unbelasteten µC (PIC) nutzen. Mir scheint die 1. Methode am eifachsten zu sein.

    Ich bedanke mich herzlich für jeden Beitrag im voraus.

    MfG
    Code:
                            +------------------------------------------+
                            |                                          |
                           .-.                                         |
                         R2| |                                         |
                           | |                                         |
                           '-'  C2                                     |
                            | ||                                       |
                            +-||-+                       VCC           |
                            | || |                        +            |
                           .------.         ___         |\|            |
                           |      |--------|___|-+------|+\   ___      |
                      __   | MF1  |         R3   |      | K>-|___|+----+
     Fx >--+---------|  \  |      |             ---   +-|-/   R4  |    |
           |  ___    |XOR)-|      o---> 2Fx   C3---   | |/|       -   ---
           +-|___|-+-|__/  '------'              |   ===  -     D ^   ---C4
           |  R1   |                            ===  GND VCC      |    |
           |      ---      VCC                  GND              ===  ===
           |      ---C1     +                                    GND  GND
           |       |        |
           |      ===      .-.
           |      GND    R5| |
           |               | |
           |               '-'  C5
           |                | ||
           |                +-||-+
           |                | || |
           |               .------.
           |               |      |---> Takt present
           |               | MF2  |
           |               |      |
           +---------------|      |
                           '------'

Seite 3 von 6 ErsteErste 12345 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen