Hallo! Ich möchte mit meinem µC (MSP430) meinen ADC (AD7793mit UART) auswertem. Dafür würde ich gerne einige Beispiele sehen wie das in C umgesetzt worden ist. Ich habe schon mal gesucht aber noch nix gefunden. Vieleicht habt ihr ja nen BeispeilCode für einen AD7793 oder einem vergleichbarem Gerät wo ich noch ein paar Tricks abschauen kann, Bzw. ihr wisst wo ich sowas finden kann. LG
sorry, aber der hat kein uart-interface? das ist eine art SPI mit total miesem timing :) falls du dazu was in C brauchst, kannst gerne meine softspi haben.
Natürlich ist es eine SPI. Sorry das ich das durcheinander geworfen habe. Da ich mit einem MSP430F248 arbeite habe ich die Komunikation Hardware mäßig gelöst. Ich habe auch eine Komunikation mit dem AD aufgebau, doch dieser macht leider nicht immer das was ich von ihm erwarte. Ich habe nun gehoft das irgendwer evt. Beispiel Codes für diesen AD hat. Ich kann leider nicht sagen in wie weit ein soclhe komunikation auf andere Chips übertragbar ist. Mein Hauzbtproblem ist zZ das ich nicht weis wie ich festelegen kann auf welchem Kanel der AD messen soll, und wie ich ihm sage das er mit der Messung starten soll. LG Bergie
Gast
#1420362
Na. Der ADC hat einen Befehlssatz, dh diverse Register muessen geschrieben werden, steht aber alles im datenblatt.
Bergie B. schrieb: > Natürlich ist es eine SPI. > > Sorry das ich das durcheinander geworfen habe. > > Da ich mit einem MSP430F248 arbeite habe ich die Komunikation Hardware > mäßig gelöst. > > Ich habe auch eine Komunikation mit dem AD aufgebau, doch dieser macht > leider nicht immer das was ich von ihm erwarte. > > Ich habe nun gehoft das irgendwer evt. Beispiel Codes für diesen AD hat. > Ich kann leider nicht sagen in wie weit ein soclhe komunikation auf > andere Chips übertragbar ist. > > Mein Hauzbtproblem ist zZ das ich nicht weis wie ich festelegen kann auf > welchem Kanel der AD messen soll, und wie ich ihm sage das er mit der > Messung starten soll. > > > LG Bergie Nur ein paar grobe Anhaltspunkte für einen AD7794, der bis auf einige Details gleich angesteuert wird:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
Gast
#1420445
Irgendwo muss man dann noch warten bis die Mesung beendet ist. Da kann man mit einem timer oder mit einem Signal machen. Das signal bekommt man indem man das SPICommand nicht abschliesst, sondern offen laesst, soweit ich mich erinnere. Das Timing dazu ist etwas vermurkst, heisst mit Hardware SPI nicht machbar.
Aehh schrieb: > Das signal bekommt man indem man das SPICommand nicht abschliesst, > sondern offen laesst, was bedeutet offen lassen ? Kann das meine Hardware SPI auch oder ist das eine Software SPI only Geschichte? ich habe das waren nun so gelöst: while (!(P2IN & 0x80)); // warten bis Flanke auf 1 geht while (P2IN & 0x80); // warten bis Flanke auf 0 geht MessdatenHolen(); wobei an P2.7 auf Dout und MiSo geht. LG
Gast
#1421508
Man kann die SPI Hardware ueblicherweise auf Normal zurueckschalten. Ja moeglicherweise wie angegeben. Nur natuerlich nicht blockierend. Man kann den Controller ja nicht fuer hunderte von millisekunden lahmlegen.
Hi! Ich habe meinen AD7793 so zum laufen bekommen wir ich mir das vorstelle. Ich suche nun nach einer Möglichkeit den Code sehr sauber zu struckturieren damit ich genau weis was ich nun gemacht habe. Gibt es dazu einen Leidfaden Lehrbuch Goldeneregeln die sich auf die Komunitkation mit externen Bauteilen beziehen und die einbindung in den Code? LG Bergie
Hi! Nach dem ich mich ja nun ein wenig mit dem AD7793 befasst habe, und dieser lange nicht das gemacht hat was er sollte, läuft er nun. Schilderung meines Problems. Der AD7793 hat sich nach dem ersten holen der Messergebnisse "Verlaufen". Dieses geschah nicht jedes Mal sondern mit einer Wahrscheinlichkeit die bei 60% lag. Die Lösung. Der ADC 7793 verlangt zwingend ein "0x00" Zeichen am Eingang wenn er Daten rausgeben soll. Ich bin nach dem durchlesen der Anleitung der Meinung gewesen das ein (0x80) nötig sei, da das Comunikations Register sämtliche Anweisungen ignoriert welche mit 1Starten (Bit7 High). Darüber hinaus war ich der Meinung dass es über SPI möglich ist gleichzeitig zu senden und zu empfangen (Vollduplex), dieses ist leider nicht so. Damit ist es dann auch nachvollziehbar das 0x00 richtige Ergebnisse Erzeugt. Wieso hingegen [0x80 + (0x0 bis 0x7F)] | ohne 0xFF da dieses einen Rest auslöst kann ich nicht beantworten Zusammen fassung: AD7793: Halbduplex! Tackt zum endfangen mit "0x00" erzeugen! Spaß haben.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.