Seite 1 von 1

Firmware

Verfasst: Fr 07 Mai, 2004 7:18 am
von tschosef
Hallo Afrob,

ich hätte noch eine Frage. Es wurde per EQU ein Label definiert mit dem Namen "PPSVAL" (oder so ähnlich, egal).

Wird diese verwendet? Und wenn ja, wie wird sie gesetzt?

Der Grund meiner Frage:
wenn ich es mal hin bekommen sollte, mit meiner Software Bilda zu verwenden, dann könnte es ja rein Theoretisch auch vorkommen, dass die Software zu langsam wird, die Punkte bereit zu stellen.
Dies würde sich dann in Aussetzern äußern, oder? Dann währe es prima, wenn man den Timer2 über die Variable setzen könnte (was Du warscheinlich vor hattest, oder?)

Mercy schonmal. Und schönes Wochenende
erich

Verfasst: Fr 07 Mai, 2004 10:01 am
von yahp
Hi,

in dem Code den ich runtergeladen habe, wird sie benutzt -> im Teil Init (search ist dein Frend *eg*). Allerdings wird der Timerinterrupt noch hart kodiert...

Ist wohl noch alles im Wandel.


Grüße

Zusammenfasssung

Verfasst: Fr 07 Mai, 2004 3:04 pm
von tschosef
Also:
Fragen und Antworten... oder so

1. Es wird ISO Datentransfer über Endpoint 8OUT verwendet.
2. PPSVAL ist zwar in Firmware vorhanden, wird aber nicht verwendet?
3. Kann ich die Firmware in den EEPROM laden? Schon, oder? wenn ich mit HEXtoBIX umgewandelt habe und das erste Byte 0xB2 ist, oder?????
4. Wie groß ist bei dem EP8OUT dann die MaxPacketSize? Hängt das von der Firmware ab? Habs bis jetzt noch nicht gefunden....

Irgendwann muß es doch mal klappen. Ich hab diese EZ-USB ControlPanel von Cypress runter geladen. Rein Theoretisch kann ich damit eine Datei im HEX format per isochroner Übertagung an einen Endpoint schicken. Dann müsste die Hardware nach dem ich die Firmware in den RAM Downgeloadet habe doch laufen, oder?

Einzustellen ist "nur" noch
Packet
Size
Buffers
und Frames/Buffer

und schon gehts los......
Leider tut sich nix....

Naja... Ich kriegs schon noch raus.

gr´üße
erich

Verfasst: Fr 07 Mai, 2004 9:33 pm
von Gast
Hiho.

> 1. Es wird ISO Datentransfer über Endpoint 8OUT verwendet.

Sieht ganz so aus :-)


> 2. PPSVAL ist zwar in Firmware vorhanden, wird aber nicht verwendet?

Es wird an einer Stelle irgendwohin geschoben, aber IMHO ist in der Ausgaberoutine ein fester Wert eingebaut...


> 4. Wie groß ist bei dem EP8OUT dann die MaxPacketSize? Hängt das von der Firmware ab? Habs bis jetzt noch nicht gefunden....

Soweit ich das verstehe, wird eh nur ein Endpoint (die 8) verwendet, deswegen, werden die Adressen der Fifos der anderen aufs Ende gesetzt. Im Init-Teil die Sachen mit

mov dptr,#OUT8ADR
mov a,#0
movx @dptr,a

mov dptr,#OUT9ADR
mov a,#0xFC
movx @dptr,a

Damit ist die Größe des FIFOs festgelegt. Im Endpoint Descriptor wird dann die PaketSize festgelegt -> wMaxPacketSize -> hier 0x00FA (warum eigentlich so wenig ???)

endpoint_desc_8_OUT: ; USB Endpoint Descriptor
.db 0x07 ; 0 bLength
.db 0x05 ; 1 bDescriptorType
.db 0x08 ; 2 bEndpointAddress
.db 0x01 ; 3 bmAttributes
.db 0xFA,0x00 ; 4 5 wMaxPacketSize
.db 0x01 ; 6 bIntervall




Viele Grüße

Verfasst: Sa 08 Mai, 2004 9:50 am
von tschosef
Hai Gast.....

eben, warum eigentlich so wenig. Das hab ich mich auch gefragt. Dies ergebnis bekomm ich ja dann auch, wenn ich "Get Pipe Desc." aufrufe, nachdem die Firmware geladen wurde.

hmmm...

Ich dachte ich könnt eifach die Firmware laden, und mit diesem EZ USB Monitor dann ein Hexfile per iso Transfer zum EP8OUT schicken, und dann müsste "irgendwass" am Port B rauskommen. tut es aber nicht...

Nicht aufgeben....

Erich

Verfasst: Sa 08 Mai, 2004 11:38 am
von afrob
Tschosef hat geschrieben:ich hätte noch eine Frage. Es wurde per EQU ein Label definiert mit dem Namen "PPSVAL" (oder so ähnlich, egal).
Yahp hat geschrieben:in dem Code den ich runtergeladen habe, wird sie benutzt -> im Teil Init (search ist dein Frend *eg*). Allerdings wird der Timerinterrupt noch hart kodiert...

Ist wohl noch alles im Wandel.
Richtig. Ich hatte bisher die Ausgabegeschwindigkeit der Einfachheit halber fest kodiert und die dann durch verdoppeln, verdreifachen, ... der Punkte geregelt. Das wird sich aber noch ändern.
Tschosef hat geschrieben:Der Grund meiner Frage: wenn ich es mal hin bekommen sollte, mit meiner Software Bilda zu verwenden, dann könnte es ja rein Theoretisch auch vorkommen, dass die Software zu langsam wird, die Punkte bereit zu stellen.
Es ist Sache des Treibers die Punkte zu senden. Der Treiber kann dann das letzte Frame noch einmal senden, den letzten Punkt geblankt wiederholen, etc. Funktioniert der Treiber (=Ring0 Code) nicht mehr ist der Rechner abgestürzt. Pech gehabt. ;) (bILDA merkt dann das keine Punkte mehr kommen und macht den Shutter zu.)
Tschosef hat geschrieben:3. Kann ich die Firmware in den EEPROM laden? Schon, oder? wenn ich mit HEXtoBIX umgewandelt habe und das erste Byte 0xB2 ist, oder?????
Die Firmware bekommt in kürze eigene Routinen zum lesen und schreiben des EEPROM spendiert.
Anonymous hat geschrieben:Soweit ich das verstehe, wird eh nur ein Endpoint (die 8) verwendet, deswegen, werden die Adressen der Fifos der anderen aufs Ende gesetzt. Im Init-Teil die Sachen mit

Damit ist die Größe des FIFOs festgelegt. Im Endpoint Descriptor wird dann die PaketSize festgelegt -> wMaxPacketSize -> hier 0x00FA (warum eigentlich so wenig ???)
Tschosef hat geschrieben:eben, warum eigentlich so wenig. Das hab ich mich auch gefragt.
Umm, 50 * 5 Bytes = 250 Bytes = 0xFA. Die 50kpps sind keine harte Grenze, aber bei mehr PPS wird das Timing ziemlich hakelig. Mehr vom USB Frame für bILDA zu reservieren, als man braucht, bringt keinen Vorteil. Die dort eingestellte Paketgrösse wird in jedem Frame reserviert, egal ob Bedarf ist oder nicht.
Tschosef hat geschrieben:Ich dachte ich könnt eifach die Firmware laden, und mit diesem EZ USB Monitor dann ein Hexfile per iso Transfer zum EP8OUT schicken, und dann müsste "irgendwass" am Port B rauskommen. tut es aber nicht...
Hast du versucht das alternate Setting 1 des Interface zu aktivieren?

Verfasst: Sa 08 Mai, 2004 12:02 pm
von tschosef
>>>
Hast du versucht das alternate Setting 1 des Interface zu aktivieren?<<

jop, hab ich versucht. Vielleicht liegts ja an was anderem. Ich komm schon noch drauf.

Trotzdem.... immer schön weiter diskutieren und schreiben. Das hilft einem ungemein weiter, weil man doch das eine oder andere dann besser versteht oder auch nur "glaubt".

grüße
Erich

Verfasst: Mo 10 Mai, 2004 9:11 am
von yahp
Hiho!

> Umm, 50 * 5 Bytes = 250 Bytes = 0xFA. Die 50kpps sind keine harte Grenze, aber bei mehr PPS wird das Timing ziemlich hakelig. Mehr vom USB Frame für bILDA zu reservieren, als man braucht, bringt keinen Vorteil. Die dort eingestellte Paketgrösse wird in jedem Frame reserviert, egal ob Bedarf ist oder nicht.

Ja, gut, sehe ich ein ;-)
In dem Fall hättest du allerdings auch einfach Alternate Setting 2 nehmen können und es wäre dir erspart geblieben, die ganzen Descriptoren und handlich routinen neu zu schreiben...



Viele Grüße

"Fehlersuche" Timer????

Verfasst: Mo 10 Mai, 2004 9:26 am
von tschosef
Guten Morgen allerseits,

also. Ich habs heut nochmal probiert. Es geht nicht. Nun mach ich eine Fehlersuche. Weis ja nicht wo der Hacken ist, also test ich so aus:

Ich setze in der Schleife "Hauptprogramm" wo eigentlich nur 2 NOP drinn stehen alle LED`s aus. Also Pin 7 auf High die anderen auf low.==> alle aus.

Und nu hab ich in den diversen Interuptroutienen einzelne LED`s angeschaltet, so dass ich mit Oszi gucken kann, welche Routiene überhaupt aufgerufen wird.

SOF wird aufgerufen. Diese Soll ja den Timer neu starten.==> okay

POINT OUT ISR welche ja durch den Timer aufgerufen werden soll wird NICHT aufgerufen.

Genauso wenig NO OUT DATA.... logisch, weil ja POINT OUT ISR nicht aufgerufen wird.

Afrob, könntest Du mal testen, ob diese Firmwareversion welche vom CVS Server zum Download bereit steht bei Dir läuft? Hab ich heute früh nochmal runter geladen.

Weis jemand einen Grund, warum es bei mir nicht laufen könnte? Könnte das an einem Lötfehler liegen??? Glaube ich aber selber weniger.

Ich werd, soweit ich bis heut nachmittag nix weiter höre mal die Enable Bits für den Timer und dessen Interrupt nochmal überprüfen.

Währ aber schön, wenn ich mir die Arbeit sparen könnte.

Grüße derweil
Erich

Verfasst: Mo 10 Mai, 2004 9:33 am
von afrob
Zeile 215: ; setb IE.5
Zeile 216: clr IE.5

Vertausche da mal die Semikolons, dann geht es. (Das Problem ist mir am Wochenende auch gerade aufgefallen. :) Ich hatte die Ausgabe zum Testen der Standard Device Requests testweise ausgeschaltet.)

Ich glaubs ja nicht....

Verfasst: Mo 10 Mai, 2004 11:33 am
von Gast
Ja vieeeeeeeeeleeeeeen Dank!

Ich glaub ja nicht. Wisst ihr überhaupt, wieviel Ärger mich das gekostet hat?
Nochmals Dankeschön!!!!

gruß
Erich

Verfasst: Mi 12 Mai, 2004 6:46 pm
von yahp
Hi Tschosef,

ich habe mich gestern auch lange mit den Interrupts, die nicht so wollten, rumgeärgert...

Ich versteh bis jetzt nicht, warum

mov CKCON, #00100000b

den Timer 2 nicht in den schnellen Modus schaltet. Es soll BIT 5 sein - isses doch auch?!

Mittlerweile glaub ich, ich hatte mich da doch verzählt :roll:


Grüße

Verfasst: Do 13 Mai, 2004 7:37 am
von tschosef
Hmmm....

Moint Yap,
also, was du da geschrieben hast ist wohl das bit 5. Welches Bit genau gesetzt werden muß, weis ich grad nicht, müsste ich nachschaun.

Geht der Timer nicht? oder nicht richtig? Is mir noch garnicht aufgefallen.
Muß mal messen oder so.

gruß
Erich

Verfasst: Do 13 Mai, 2004 8:44 am
von yahp
Hiho,

geht schon :-)
Man muss halt richtig zählen können ...

Grüße

Firmware Update

Verfasst: Di 18 Mai, 2004 5:55 pm
von tschosef
Halli hallo,

mal ne Frage. Hat jemand in irgendeiner weise mit der neuen Firmware (Downloadbar seit gestern bei linux-laser.org) schon mal analoge Signale aus Bilda bekommen?

ich noch nicht..... schnief

Erich