Vinnaren i pepparkakshustävlingen!
2016-03-07, 16:19
  #1
Medlem
Mr.Majestics avatar
Tjenare!

Jag sitter och tragglar i MatLAB, forsoker att uppratta en seriell kommunikation, till ett PCB med en ADNS9800 (anvands i datamus bla). Har fortsatt att jag maste initera en kommunikation, genom Microcontrollern (TM4C123G H6PMI, Texas Instruments) - fwrite eller fprintf.

I databladet sa finner jag b.la. att jag maste skriva till specifika addresser i registret for att detta ska ske, t.ex. 0x3a.


Hur kommer jag åt specifika adresser i registret?

Om jag testar att bara oppna den;

s = serial('COM10')
fopen(s)

fread(s)

... Timeout occurred etc.

s.bytesavailable och s.valuesreceived ar fortfarande pa 0.

Tack pa forhand.
Citera
2016-03-07, 17:23
  #2
Medlem
BNCs avatar
Hur har du kopplat upp grejerna egentligen?

Sensorn verkar ju prata SPI, så för att komma åt den ifrån en dator låter det ju som en vettig väg att gå igenom en mikrokontroller för att få kommunikation via vanlig serieport.

Men, det kräver ju lite specifik mjukvara i µC'n för att få det att fungera, vad kör du i den egentligen?
Att läsa och skriva till specifika register i sensorn står ju klart och tydligt på sidan 15 i databladet hur man gör, men det är ju i µC'n man får lösa de bitarna.
Citera
2016-03-07, 20:53
  #3
Medlem
Mr.Majestics avatar
Citat:
Ursprungligen postat av BNC
Hur har du kopplat upp grejerna egentligen?

Sensorn verkar ju prata SPI, så för att komma åt den ifrån en dator låter det ju som en vettig väg att gå igenom en mikrokontroller för att få kommunikation via vanlig serieport.

Men, det kräver ju lite specifik mjukvara i µC'n för att få det att fungera, vad kör du i den egentligen?
Att läsa och skriva till specifika register i sensorn står ju klart och tydligt på sidan 15 i databladet hur man gör, men det är ju i µC'n man får lösa de bitarna.

Vad jag ska skriva, är inga problem. Som du säger, så står det klart och tydligt på sida 15.

Hursom,

s.valuesrecieved och s.bytesavailabletoouput är fortfarande 0, samt att jag får "Timeout", oberoende på vilken längd jag sätter den till.

Det jag är mest oroad över, är att den står som "Offline" i både HyperTerminal och ExtraPuTTY. Kommer dock upp som en Stellaris Virtual COM, genom USB. Jag har en extern Software (inte MatLAB) som fungerar när kortet ansluts, så det funkar.

I Microcontrollen så kör jag TivaWare, från Texas Instruments. Är väldigt ovan med Microcontrollers, får ta och läsa på helt enkelt.
Citera
2016-03-07, 21:47
  #4
Medlem
BNCs avatar
Låter ju som att den virtuella COM-porten inte fungerar som den ska eller något åt det hållet.

Skriv någon enkel kod i µC'n som bara spottar ut data på serieporten, typ en bokstav eller något och se om du kan få fram den i datorn. Fungerar det så testa att eka tillbaka inkommande data, och se om du kan skriva ifrån datorn och få tillbaka texten.
Citera
2016-03-08, 17:54
  #5
Medlem
Mr.Majestics avatar
Sa, nu loste det sig.

Anvande mig av Device Monitoring studio, dar man kunde se "Raw Data" som gick in/ut etc.

Nu ar det bara att borja programmera en GUI!
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback