Hi leute.ich habe gerade ein Problem mit meinem D/A wandler. Da jeder D/A Wandlung etwas Zeit benötigt, daher ist es notwendig, einen Wartezyklus in das Programm mit einzubauen. Wo im Programm muss ich dieses delay einbauen?
In Zeile 42. Mehr Infos: - Welcher Controller - Was wird DA gewandelt - Welcher DAC - usw.
Hi Benedikt: Zu deiner Frage. 1) Es wird eine Spannung gewandelt. 2) ein 12 bit DAC (AD5324) 3) ein 68HC11 (8 bit) also ich habe eine Regelstrecke die an einem AD angeschlossen ist.die Daten werden digitalisiert an einem Microcontroller geschickt .Da die Strecke mit analogen spannung arbeitet müssen die Spannungswerte selbstverständig wieder in eine elektrische Größe -hier Spannung umgewandelt werden. AD------>MCU----------->DA---------regelestrecke----.>AD und wieder zu MCU. Mein programm arbeitet ganz gut vom AD zu MCU aber wenn ich die Daten im DA schreibe passiert gar nix. die Chip select Leitung sieht ganz schlecht aus. am Ausgang des DA passiert gan nix auch.
Dann würde ich mal sagen, du hast in der Software irgendwo einen Fehler. Zeig also mal den Code mit dem du den DAC ansteuerst.
Ich habe von 68HC11 Assemblerprogrammierung leider garkeine Ahnung, sorry da muss ich passen.
>>die Chip select Leitung sieht ganz schlecht aus. Was immer das auch bedeuten soll... ...was hälst Du denn davon, das vielleicht erstmal in Ordnung zu bringen? Oder etwas genauer gefragt: Wenn irgend etwas "ganz schlecht aussieht" (wie Du ja selbst schreibst), öhm.. wieso bitte wundert es Dich dann, dass die ganze Sache nicht klappt? >>Hi Leute hat jemand eine Idee wie ich dieses Problem loesen kann? Wie soll Dir denn Deiner Meinung nach geholfen werden, wenn Du den Code nicht vorzeigst? Wie? Jochen Müller
Hallo Johnny, nach deinen Aussagen bin ich der selben Meinung meiner Vorredner. Es klingt sher verdächtig nah Softwarefehler. Hast du außerdem mal deine Datenleitungen vom MUC zum D/A-Wandler überprüft. Gruß Rene
Hi rene.ich habe die Leitung überprüft. ich habe die CS Leitung vom DAC mit dem Oszi überprüft. Die CS Leitung vom DAC ist schwach im vergleich zu dem CS vom ADC. Mein Programm arbeit reibungslos bis zum Microcontroller.das heisst schick ich eine Spannung vom zum beispiel 2,5V auf mein ADC dann habe ich auf dem Display die 2,5V im Hexdecimal $0800.das heisst 2048 BCD da mein ADC bzw mein DAC 12 bit lang sind. Am ende der AD wandlung habe ich folgendes auf dem A bzw B register MSB : $08 LSB : $00 beides entsprechen $0800 bis da ist alles richtig. soweit ich weiss um die 2,5V in eine elketrische Spannung (analog) zu haben muss ich die gewonnen Daten(MSB ,LSB) im SPDR senden und dann ist die sache erledigt.oder liege ich falsch? NB:die daten werden über SPI Übertragen kann mir jemamnd sagen wo das problem liegen konnte?
Ok, das ist schon mal ein kleiner Ansatz. Die Daten zum DAC werden gesendet oder liegt die Leitung immer auf Low oder meinst du mit schwach das etwas gesendet wird aber die Pegel niedrig sind. Option wäre dann Pull-UP oder Pull-Down , wobei ich mir da grad nicht ganz sicher bin ob das bei SPI geht wegen bidirektioaler Verbindung. Welchen Mikrocontroller verwendest du denn? Dann kuck ich mal mit ins Datenblatt rein. Grüße Rene
die CS leitung sieht so aus: . . . . . . . . . . usw. ich meine die Amplituden sind nicht gleich gross. ich benutze ein HC11 und eine AD7924 ung einen AD5324 vom www.analog.com ich glaube das Problem ist ein softwarefehler.kennst du dich gut mit demn Assembler damit ich dir das Programm schicke?
Ok, ich seler programmier PIC's von Microchipin Assembler beruflich recht oft. Ich würde erstmal die SPI-Programmierung überprüfen. Freescale hat den aufbau der SPI-Schnittstelle gut beschrieben und welche Fehler auftreten können. Dabei abe ich mir das Datenbltt des MC68HC11D3 angesehen. Ist dein MUC als Master konfiguriert und deine Wandler als Slaves? Hast du auch immer genügen Zeit gelassen damit die Daten in ruhe eingelesen werden können bzw. genug Zeit versteicht damit neue Daten geschrieb werden können? Einfach mal lange Pausen reinsetzen solage es der komplett erlaubt. Es dient ja nur zum gucken. Ich meld mich mal an, bin ja öfters hier wegen Mail.
Hi mein MCU ist konfugiert als Master. Ja jeder D/A Wandlung benötigt etwas Zeit.ich überlege mir noch da wo ich ein wartezyklus einbauen kann bis später
Hi leute.ich habe ein Problem mit meiner Chip select leitung. diese ist die ganze Zeit auf Low. wie Kann ich meine Clockleitung mit meiner CS leitung synchronisieren? http://www.analog.com/UploadedFiles/Data_Sheets/AD5304_5314_5324.pdf
Jap, das ist immer gut erst mal lansam laufen lassen und päter auf Gescwindigkeit optimieren, theoretisch müsstest du aber auch die Datenübertragung (einlesen vom ADC) und dann Datenübertragung (schreiben zum DAC) in deiner Entwicklungsumgebung fürs programmieren, simulieren können. Dabei kannst du dir dann die Register genau anschauen was bit für bit passiert und ob du dabei geung Zeit zwischen den Operationen hast damit kein Fehler auftritt. Gruß Rene
Johnny, Dieses treppenförmige Signal an deiner CS-Leitung ist auf jeden Fall verdächtig. Das muss AUF JEDEN FALL erst geklärt werden. Sowas tritt typischerweise dann auf, wenn sich auf der CS mehrere Signale bekämpfen. Im einfachsten Fall ist auf der Platine ein Kurzschluss zwischen CS und einer anderen Signalleitung. Es kann auch sein, dass irgendwo die Richtung der Ports nicht stimmt. Hängt sonst noch etwas an der CS-Leitung? Jochen Müller
Hi Fuer den Fall dass es vielleicht ein Kurzschluss laege werde ich am mir dir das ganz genau anschauen. an der CS-Leitung haengt nix anderes. Sobald ich das ueberprueft habe werde ich ihne Bescheid sagen Hi rene ich werde mir die Register bit fuer bit anschauen Hi Jochen was hattest mit mit dem Pulldown und Pullup gemeint?wie kann man das softwaremaessig realisieren? Ok Leute vielen dank fuer eure Mithilfe Leute
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.