Gast
#1018196
Hallo liebe Bastler, für alle, die nicht das Geld für einen „richtigen“ Logic-Analyser ausgeben können, hier eine low-cost-Lösung mit Beschränkung auf einen einzigen Kanal (was für die Analyse von RC5-Sequenzen, DCF77 etc. aber auch völlig ausreicht.) Das Funktionsprinzip: Der 16-Bit-Timer1 eines Mega8 in Verbindung mit einem zusätzlichen Byte zeichnet die Flankenwechsel an ICP1 oder am Analog-Comparator mit 24 Bit-Auflösung auf. Abhängig vom eingestellten Wert des Prescalers lassen sich (bei 16MHz mc-Takt) Ereignisse in einer Auflösung von 0.5us bis 64us über einen Zeitraum bis 8.4 bis 1073 Sekunden speichern. Allerdings mit der Einschränkung auf insgesamt maximalen 300 Taktwechsel, denn je Ereignis werden 3 Byte für das Ablegen des Zeitstempels im SRAM benötigt, sind also 300x 3 = 900 Byte (und der Mega8 hat nur 1024 Byte SRAM). Die Steuerung sowie die Änderung aller Parameter des Logic-Analysers erfolgt über ein Terminalprogramm (z.B. hTerm), auch die Ausgabe des Ergebnisses erfolgt über die serielle Schnittstelle ans Terminal (und kann ggf. von dort zur weiteren Bearbeitung in einer Tabellenkalkulation exportiert werden). Die Ausgabe kann wahlweise in als: (-a1) unbearbeitete Liste der Counterwerte, (-a2) Ausgabe der Counterstände an jeden Pegelwechsel mit Differenzberechnung, (-a4) Dauer von Low- und High-Pegel mit Summe von Low-und High-Pegel (= Counts je Takt) Hardwareanforderungen: Mega8 mit 16MHz Quarz, MAX232 für die serielle Schnittstelle, ggf. noch ein Poti, wenn der analog comparator als Eingang des Signals genutzt werden soll. Der Input wird an Pin ICP1 (wenn -c0) oder am Analog-Comparator erwartet (wenn -c1 gesetzt ist) 4 LED‘s sind für die Statusmeldungen an PC3-PC0 vorgesehen. PC3 - Power on PC2 - Warten auf Trigger PC1 - Scannen PC0 - Ready (PC1 und PC0 togglen während des Scans bei jedem 16Bit Counter Overflow. Weitere Beschreibungen gibts im zip-File. happy analysing Michael S.