ik heb een vraagje over de aansturing van een AD7705
datasheet: http://www.analog.com/UploadedFiles/Data_Sheets/AD7705_7706.pdf

nu staat op pagina 32 een mooi voorbeeldje over de aansturing.

Nu keek ik naar de tijden die er bij staan T3 tot en met T16 en dat staat op pagina 8.
Nu praten ze hier over NanoSeconden.

dit kan ik dus nooit aansturen met een Picje op 4 mhz!

klopt het dat je dit ic dus met een klok van 1GHZ moet
aansturen om aan die nanosecondes te komen?
of kan ik hem gewoon aansturen met een lagere snelheid.

1nS is inderdaad 1GHz.
maar trek je daar niks van aan
dat zijn de minimum en maximum waardes voor de timing daar.
je mag gerust trager draaien.

ik begrijp waar de verwarring vandaankomt : das protocol timing data die daar staat

waar een MIN time opgegeven wordt betekent dit dat JIJ dat signaal MINSTENS zo lang moet opdrukken ( langer mag altijd , maar niet korter )

waar een MAX opgegeven staat betekent dit dat het MAXIMAAL zo lang duurt voor de A/d omzetter dit signaal beschikbaar heeft voor jouw. Jij moet dus minstens zo lang wachten vooraleer je dat signaal binneneemt.

niks vreemd aan dus

ga eens naar pagina 32 en schrijf die cijfertjes daar eens op dat diagramma ... veel zal dan duidelijk worden

[Bericht gewijzigd door free_electron op ]

oke, dan weet ik dat.

en als ik het zo zie wordt de Din uitgelezen bij een opkomende flank van Sclk.

Dus ik kan gewoon al een 1 op Din zetten en als ik dan Sclk van 0 naar 1 zou schakelen zou die de 1 op Din moeten inlezen toch?

Edit: ik zie net dat het idd minima zijn voor je clock hehe.

[Bericht gewijzigd door G_SHOCK op ]

juist : je zet je data klaar als de clock laag is.
dan geef je een posedge en dan moet je die data nog altijd een tijd laten staan ( propagation delay en andere geintjes )
de data moet ook een tijd voor je de posedge geeft klaarstaan.

tprotocol stelt niks voor

data bit klaar zetten
clock hoog
clock laag
volgende databit.

en bitjes prammen is ook simpel ;schuif je data en test je MSB of anders


for x = 7 to 0 step -1
  SHL(data)
  if data and 128 then
    dout=1
  else
    dout=0
  end if
  clk=1
  clk=0
next x

enzovoort

ja oke ik doe dat dan in Assembler, maar dan weet ik iig dat ze me een kapotte AD mee hebben gegeven :(, maar even de 24-bits versie van een print afhalen.

bedankt Free_electron