hallo, ich würde gerne die taktflanken des SPI moduls für eine übertragung ändern. ich verwende einen PIC24HJ256GP610. ich habe einen DAC und einen ADC die jeweils auf verschidene taktflanken reagieren. der ADC legt die daten mit der fallenden flanke ein und der DAC mit der steigenden. leider sind beide auf einem SPI bus untergebracht und werden nur mittels chipselect ausgewählt. zum einstellen verwende ich den CCS C Compiler und dessen #use spi() funktion. den ADC habe ich zum laufen gebracht. nur den DAC kann ich nicht richtig ansteuern. der liest die werte einfach falsch ein. bisher habe ich im SPI1CON1 register das CKE bit rückgesetzt und dann geschrieben. dies hat allerdings erst dann geklappt nachdem ich das spi modul disabled hab und wieder enabled hab. gibt es eine möglichkeit die flaken für den DAC kurz umzustellen und nach dem schreiben wieder normal zu setzen? mfg El Dudini
Ein Inverter vor dem Clock-Input des DAC in Form eines 74HC1G04 tut es nicht? fchk
>bisher habe ich im SPI1CON1 register das CKE bit rückgesetzt und dann >geschrieben. dies hat allerdings erst dann geklappt nachdem ich das spi >modul disabled hab und wieder enabled hab. Ist doch ne gute Lösung. Warum bleibst du nicht dabei?
hallo, der inverter ist im nachhinein nicht machbar weil alles schon gelayoutet und gefertigt ist. die sache mit dem CKE bit im SPI1CON1 register funktioniert nur wenn man das modul im register SPI1STAT disabled, das CON1 Register setzt und das modul wieder einschaltet. ich kann auf dem oszi erkennen, dass sich die flanken ändern allerdings sind die werte die ich schreibe bzw auch vom ADC bekomme fehlerhaft. die spi register werden aber nachdem der DAC geschrieben wurde wieder zurückgesetzt. ich kanns mir leider nicht erklären warum der durcheinander kommt. mfg
El Dudini schrieb: > der inverter ist im nachhinein nicht machbar weil alles schon gelayoutet > und gefertigt ist. Und im Prototypen hab ihr es nicht gemerkt? > ich kanns mir leider nicht erklären warum der durcheinander kommt. Ich hatte so etwas mal bei einem AVR in Verbindung mit einem RFID-Modul, das zwischen Sende- und Empfangsphase eine Phasendrehung haben wollte. Das Hardware-SPI des AVR ist definitiv hängen geblieben, als ich mittendrin die Polarität gedreht hatte. Ich musste das ganze schließlich ohne Hardware-SPI in Software machen. Was lernen wir daraus: Serie erst fertigen lassen, wenn alles komplett läuft. Ich tippe mal darauf, dass auch der PIC24 das Umschalten der Clock mittendrin nicht toleriert und dass Dir am Ende nichts anderes übrigbleiben wird, als entweder den Inverter zu spendieren oder das SPI per Software-Bitfriemelei zu machen. fchk
hallo, also es hat nun doch funtioniert. habe das CKE bit einfach falsch gesetzt. es muss erst rückgesetzt werden und nach der übertragung wieder gesetzt werden. dabei muss das modul natürlich disabled werden. jetzt läufts auf jedenfall mal. trotzdem danke für die schnelle hilfe. mfg
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.