Forum: Mikrocontroller und Digitale Elektronik Pulse im ns Bereich mit µC möglich?


von Peter P. (hackrid)


Lesenswert?

Hallo,

ist es mit wenig externer Beschaltung möglich, kurze Spannungspulse mit 
einem µC zu erzeugen?

interessant wären Pulse <= 100ns


Besten Dank und Viele Grüße

Peter

von Weingut P. (weinbauer)


Lesenswert?

das wäre dann >10Mhz ... prinzipiell ja, kommt auf den µC an ... welcher 
solls denn sein?

von Peter P. (hackrid)


Lesenswert?

vorzugsweise ein msp430.

die pulse sollen allerdings nicht kontinuierlich erzeugt werden, sondern 
nur sporadisch.

durch einen externen interrupt getriggert soll ein zähler loslaufen und 
bei erreichen eins bestimmten wertes den puls auslösen.


ist sowas möglich?

wenn man mit 20Mhz taktversorgung rechnet muss der controller schon 
ganzschön viele "instructions per cycle" mit machen um einen so kurzen 
puls zu erzeugen...

g

von Ralph (Gast)


Lesenswert?

JA.

Aber welche Auflösung/Toleranz wird benötigt ?  zb 100 +- 5 ns ?

Dann rechne mal den notwendigen Takt aus.

10MHz sind mal gerade 100 nsec.
Also etwas Verarbeitungszeit dazu, etwas Spielraum zum einstellen der 
Pulsbreite.
Dann wird wohl ein µC mit so 100 MHz Takt aufwärts rauskommen.

Was vielleicht auch geht wäre ein externes Flipflop,  µC Pin direkt an 
den SetEingang des Flipflop und über ein RC Glied an den ResetEingang.
damit sollte der Reset etwas Zeitverzögert kommen.
Dimensionierung müsste man mal durchrechnen ob damit deine Pulsbreite 
getroffen werden kann.

von Peter P. (hackrid)


Lesenswert?

danke für deine antwort


hatte auch schon ein wenig rumgerechnet und bin (leider) auf sehr hohe 
betaktungen gekommen...

über die genauen anforderungen weis ich leider auch noch nicht so genau 
bescheid.

g

von Andreas K. (derandi)


Lesenswert?

Es braucht zwei Takte, einmal an und direkt danach wieder aus. Wenn man 
dafür je eine Instruktion ansetzt reichen doch dafür 10 Mhz Takt, oder 
nicht?

von holger (Gast)


Lesenswert?

>Was vielleicht auch geht wäre ein externes Flipflop,

Ich würde ein Monoflop nehmen.

von Reinhard Kern (Gast)


Lesenswert?

Hallo,

was heisst denn externe Beschaltung - mit Takt und Flipflop oder mit 
einem Monoflop geht es immer.

Gruss Reinhard

von Peter P. (hackrid)


Lesenswert?

ich habe vorsichtshalber mal mit 4 cylcles pro instuction gerechnet.


das mit den mono/flip flops wirds wohl werden.

Ideal wäre halt der "nackte" controllerpin..

von Hugo W. (Gast)


Lesenswert?

Für einen Kammgenerator hab ich mal einen CPLD mit externer Beschaltung 
zur Impulsformung benutzt. Durch Optimierung des Layouts konnten so 
400ps Risetime mit 7 Vpp an 50 Ohm erzeugt werden.

Grüße

von Jörg H. (idc-dragon)


Lesenswert?

Den von dir favorisierten MSP430 kenne ich nicht inwendig.

Vielleicht hat er ja ähnliche Timer-Features wie jeder "olle" Atmel AVR: 
Da kann man mit der "output compare" Funktion eines Timers genaue Pulse 
definieren. Auflösung bis maximaler Prozessortakt. (20 MHz, also 50 ns.)
Es gibt 2 Compare-Register, für jedes kann man konfigurieren was bei 
einem "match" passieren soll. Eine der Möglichkeiten ist, einen 
korrespondierenden Pin des uC zu setzen oder zu löschen.

Wenn der Timer auch ein "input capture" hat geht das auch präzise 
synchron zu externem Trigger:
Wenn am Capture-Pin die konfigurierte Flanke auftritt wird der Timerwert 
automatisch in ein Hardwareregister kopiert und z.B. ein Interrupt 
ausgelöst. Die Interruptroutine kann nun "in Ruhe" diesen Wert auslesen, 
mit einem gewünschten Offset die Compare-Register programmieren und 
weiterhin die Dinge auf sich zukommen lassen.

Jörg

von Peter P. (hackrid)


Lesenswert?

Hi Jörg.


Wertvoller Input den du mir da gibst :)


50ns hören sich doch richtig gut an :)
kann ich den Controller nicht auch um faktor 2 übertakten um noch 
kürzere pulse zu erzeugen?

muss nicht zwingend ein MSP430 sein... Hauptsache es geht mit einem 
günstigen Kontroller der weitverbreitet ist.

AVRs wären sogar fast besser, da ich schon ein STK500 rumfahren habe :)

von maveric00 (Gast)


Lesenswert?

Hallo,

lass 'mal raten: Du willst einen 20 ns-Impuls erzeugen, da Du gerade 
einen schönen Artikel auf Heise gelesen hast, dass man damit die 
XBox360-Sicherheitsmechanismen aus dem Tritt bringen kann ;-)

Falls es das ist: es geht darum, zu einem geeigneten Zeitpunkt einen 
I2C-Taktgenerator zu resetten, ohne den Hauptprozessor in den Reset zu 
schicken, um dann die Takt-Teiler neu zu programmieren. Welche 
Anforderungen daraus an die Flankensteilheit u.ä. resultieren, könnte ja 
für das Thema auch interessant sein.

Nur daran denken (da ja nach günstigen, weit verbreiteten Controllern 
gefragt wurde): Das Herstellen und Vertreiben eines solchen 
Kopierschutz-Ausheblers wird in Deutschland mit Freiheitsstrafe bis 1 
Jahr oder mit Geldbuße bis 50.000 Euro geahnded (§108b UrhG). Privat 
darfst Du es zwar auch nicht basteln, es ist jedoch nicht strafbewehrt.

Schöne Grüße,
Martin

von Peter P. (hackrid)


Lesenswert?

mein beileid, wer solche news von heise bekommen muss...

kopierschutz wird keiner ausgehebelt, es wird lediglich möglich sein 
selbst geschriebenen code auf der maschine auszuführen.

wer den artikel gelesen hätte, wüsste auch worum es geht.
...und der taktgenerator wird nicht resettet.
und schon garnicht über I2C



glaubst du ernsthaft ich würde mir vorschreibenlassen was ich mit ein 
bisschen elektronik anstellen darf und was nicht?

von Christian R. (supachris)


Lesenswert?

Einige der aktuellen MSP430 kannst du mit 25MHz betreiben, wenn du einen 
der Timer-Ausgänge benutzt, kannst du Pulse mit 40ns Auflösung erzeugen. 
Das könnte für die XBOX ausreichend sein. :)
Noch besser gehts wohl mit einem AT90PWM...der hat eine PLL drin, die 
PWM ausgänge können da meines Wissens mit bis zu 64MHz laufen, was 
15,625ns minimale Pulsbreite wären. Damit kommst du den 20ns für den 
Prozessor-Hack schon Nahe...

Soweit ich gelesen habe, wird der Taktgenerator beim Booten auf eine 
niedrigere Frequenz eingestellt, und das per I2C.

von Andreas H. (andreas_h16)


Lesenswert?

Ha, Martin, Du warst erster. Als ich das gelesen hab, kam mir doch der 
gleiche Gedanke. Hätte er doch mal den Artikel bei dangerousprototypes 
gelesen, dann müsste er jetzt nicht so viel fragen ;-)

von Peter P. (hackrid)


Lesenswert?

danke für den tipp, welcher artikel genau?

von Andreas H. (andreas_h16)


Lesenswert?

Also das sollte nicht so schwierig sein, den Artikel von gestern zu 
finden.

von T. F. (sar)


Lesenswert?

Vielleicht kannst du ja noch irgendwo einen AD9501 bzw AD9500 
auftreiben. Sind leider obsolete.

von maveric00 (Gast)


Lesenswert?

Hallo,

o.k. sorry, ich hatte nicht weiter gesucht und hatte gedacht, dass das 
Timing-IC zurückgesetzt werden muss, bevor die Register wieder 
geschrieben werden können (kommt vor); anscheinend wird aber tatsächlich 
eine racing-condition ausgenutzt, die auftritt, wenn der Prozessor 
langsam getacktet wird und dann der Reset zu kurz betätigt wird.

Lässt sich in der nächsten Harware-Generation ganz leicht durch eine 
modifizierte Beschaltung der Resetleitung ändern. Interessant finde ich 
nur, welches Insider-Wissen vom Prozessor man haben muss, um auf diese 
Racing-Condition zu kommen.

Wie immer gilt halt: Nichts ist unknackbar - den Wettlauf zwischen 
Rüstung und Geschoss gewinnt immer das Geschoss.

Und im übrigen: der §95a UrhG schützt halt alle technische Maßnahmen, 
die sicherstellen sollen, dass ein urheberechtlich geschütztes Werk nur 
so verwendet wird, wie es der Rechteinhaber vorsieht. Kopierschutz ist 
also nur ein Beispiel, schon das nicht vorgesehene Verwenden irgendeines 
XBOX360-Kernel-Bestandteils ist nicht erlaubt (und somit auch das Laden 
eigener Software). Man kann somit das Gesetz nur ignorieren (mit 
entsprechenden Konsequenzen bei gewerblichem Umfang), wegdiskutieren ist 
nicht.

Schöne Grüße,
Martin

von Michael (Gast)


Lesenswert?

Peet P. schrieb:
> ist es mit wenig externer Beschaltung möglich, kurze Spannungspulse mit
> einem µC zu erzeugen?

Bau dir einen Monostabilen Oszillator auf, der den passenden Puls 
generiert und trigger den mit einem µC.

von Peter P. (hackrid)


Lesenswert?

wie gligli selbst geschrieben hat, war es reiner zufall dass er auf den 
glitch gestoßen ist.


und mal nebenbei:
ich habe nicht vor ein produkt auf den markt zu bringen.

ich möchte lediglich erreichen, dass möglichst viele leute in den genuss 
von linux auf der xbox360 kommen können.

von axelr. (HTC MOBIL) (Gast)


Lesenswert?

Du brauchst nur auf den POST39 triggern und ausloesen..:) ein xor-gatter 
mit rc-glied amEingang. Die anderen drei als adressdecoder beschalten. 
Das ist ja aber nur die halbe miete, den I2C musst du ja auch noch 
bedienen, oder zumindest die PLL_BYPASS_LEITUNG
Da ich con fga und cpld und vhl keine Ahnung habe,würde ich mit flinken 
gattern den Resetimpuls erzeugen und mitm kleinen tiny den I2C bedienen

von maveric00 (Gast)


Lesenswert?

Hallo,

ich möchte Dich ja auch nicht maßregeln oder Dir Gewinnabsicht 
unterstellen, sondern nur auf mögliche Probleme hinweisen, die Dich 
sonst böse erwischen könnten. Denn zur Gewerbsmäßigkeit gehört in 
Deutschland (o.k., zumindest in Bayern) seit neuestem nicht mehr, dass 
man damit Geld verdient oder verdienen möchte. Eine unkontrollierte 
Verteilung reicht inzwischen dem OLG München, um den Verursacher 
einzubuchten - siehe:

http://www.123recht.net/OLG-Muenchen-zum-gewerblichen-Ausmass-einer-Urheberrechtsverletzung-durch-Filesharing-__a97883.html

Entspricht zwar irgendwie weder meinem Rechtsverständnis noch dem 
Rechtsverständnis meines Finanzamtes, aber Recht bekommt hier sowieso 
nur noch der mit dem dickeren Bankkonto...


Schöne Grüße,
Martin

von Peter P. (hackrid)


Lesenswert?

danke für die antworten.

die i2c geschichte ist eh nur für die neuere hardware (trinity (slim)) 
relevant.

alle anderem kommen ohne I2C aus.

von Peter P. (hackrid)


Lesenswert?

PIC18F2550 kann bis 48MHz betaktet werden...


Vielversprechend :)

von (prx) A. K. (prx)


Lesenswert?

Ein Timer des ATtiny25 kann via PLL mit 64MHz betrieben werden und kann 
Pulse mit der Dauer vom einem Takt produzieren. Die exakte Pulslänge 
lässt sich bei Verwendung des internen RC-Taktes über das 
OSCCAL-Register um Faktor 2 rauf und runter einstellen, beispielsweise 
mit Poti am ADC-Eingang und ADC-Wert => OSCCAL.

von Peter P. (hackrid)


Lesenswert?

:D noch besser

von Michael (Gast)


Lesenswert?

Peet P. schrieb:
> interessant wären Pulse <= 100ns

Um mal auf die Anfangsfrage zurückzukommen:
Wie lang sollen die Impulse denn nun sein und soll die Pulsdauer fest 
sein, konfigurierbar oder frei steuerbar.

von Peter P. (hackrid)


Lesenswert?

20 und 100ns sind  die interessanten pulslängen.

konfiguration/änderung dieser ist optional...

g

von lupo (Gast)


Lesenswert?

Hallo,

guck dir mal die CTMU von Microchip an.... Auflösung im pS Bereich...

Auf Seite 8:

"PWM Generation
By using the CTMU with a comparator (either internal or
external), there is a way to generate high-resolution,
high-frequency Pulse-Width Modulation (Figure 9). The
PWM resolution depends on the slope controlled by the
internal A/D sampling capacitor (CHOLD), and can be
changed by adding an external capacitor parallel to
CHOLD."

Grüße

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.