Asynkron USART med H48C

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
port513
Inlägg: 182
Blev medlem: 20 februari 2007, 10:16:15

Asynkron USART med H48C

Inlägg av port513 »

Har planer på att använda min ATmega16 till att polla en H48C men jag är osäker på hur jag ska koppla samt progga.

http://www.parallax.com/dl/docs/prod/ac ... ometer.pdf

Frågan är enkelt, jag har läst databladet och även avsnittet med USART till ATmega16 men greppar det inte riktigt. Så om någon har gjort detta innan och har tipps så blir jag glad.

Helst ingen färdig kod utan mer hur jag ska göra osv, färdig kod lär jag mig inget på ;)


/Henke
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

Är inte alltid uart asynkront?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Är inte alltid uart asynkront?

Jo, men varför denna (lite konstiga) fråga ?
port513
Inlägg: 182
Blev medlem: 20 februari 2007, 10:16:15

Inlägg av port513 »

Enligt sida 145 i databladet för ATmega16
The Universal Synchronous and Asynchronous serial Receiver and Transmitter
(USART) is a highly flexible serial communication device
Måste väl betyda att USART är både synkron och asynkron eller är min dyslexi ute och leker igen?

Hursom, även om jag har fel så är frågan hur jag pratar med min H48C med min ATmega16.


/Henke
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Right, men bestäm om det är UART eller USART vi talar om.
(Kolla Micke_s fråga igen.)

> jag har läst databladet och även avsnittet med USART till ATmega16 men greppar det inte riktigt.

Greppar inte *vad* ? D.v.s vad är "det" ?
Sedan kan du kanske få rellevanta svar.
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

Om man läser databladet som port513 länkade till så är modulen synkron.
Och då ska du använda USART som SPI(vilket är synkront) eller SPI-modulen.

Till spi modulen så gör du detta.
För få halv duplex så kan du ansluta en resistor från MOSI(10 k eller så) och sedan till DIO, DIO ska också knytas till MISO, SCK till CLK och den sista CS(chip select) kan knytas till vilken annan IO pinne som helst(ex SS skulle jag rekomendera).

För att prata med modulen så drar du CS låg och skickar data som modulen vill ha det. Läs sid 136 och framåt. Sid 139. Resultatet från varje utskick kommer hamna i SPDR efter whilesatsen på sid 139

För USART:en så blir kabeldragningen annorlunda.
(alla sidanvisningar är till "doc2466.pdf" ver: doc2466N-AVR-10/06)
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg av Micke_s »

Eller så kan du köra software spi och då göra din implementation av spi halv duplex.
Då kan du använda vilka pinnar du vill, men du förlorar hastighet. Hastighet kanske inte är så viktigt här.

Info om SPI http://en.wikipedia.org/wiki/Serial_Per ... erface_Bus
PeotryD
EF Sponsor
Inlägg: 188
Blev medlem: 11 november 2005, 13:24:44
Ort: Umeå
Kontakt:

Inlägg av PeotryD »

Oki, enligt databladet för "HitachiH48C3" så har den Clock in, vilket innebär att den är en syncron slave.


Vilket innebär att du måste sätta pin XCK(PB0) som output(på din ATmega16).
I registret UCSRC sätter du bit UMSEL =1, vilket innebär syncron USART.

PB0 skall självfallet kopplas ihop med "HitachiH48C3" klockingång.

Att du satte PB0 som output innebär att ATmegans nu syncrona USART arbetar i mastermod och klockar ut här när han tar imot signalen på RXD (PD0)

Nu läser du från usarten som vanligt......
port513
Inlägg: 182
Blev medlem: 20 februari 2007, 10:16:15

Inlägg av port513 »

Sodjan:
Jo jag greppade inte riktigt hur jag skulle få ihop USART med denna H48C eftersom den har input/output på samma pinne osv. Men någonstans har jag fått ihop det till att den är asynkron vilket den tydligen inte är ;)
Eftersom jag inte riktigt viste vad jag exakt ville fråga efter blev det luddigt och jag förstår att ni inte kunde svara så bra på det ;)

Tror jag läste ihop "a synchronous" till "asynchronous"

Jag har inte riktigt kommit till freds med databladen och hur de beskriver funktionerna. Fick leta rätt på en annan beskrivning när jag skulle använda Timer1 till PWM men det löste sig sen.

*** EDIT ***
Är det alltså SPI jag ska använda för att kommunicera med min lilla vän H48C?
För dom som stod ut med mig med min LCD så vet de att jag har använt SPI men jag råka koppla MISO till CSB på LCD:n ;)
*** SLUT EDIT ***

/Henke
port513
Inlägg: 182
Blev medlem: 20 februari 2007, 10:16:15

Inlägg av port513 »

Har jag fattat det rätt om jag kan använda antingen USART eller SPI?
För i så fall går jag nog åt SPI eftersom jag har använt det och sen tar tag i USART när jag har modulen att fungera.

Här ska läras s mycket det går och ställer jag konstiga frågor så är det bra att som Sodjan påpeka detta, är inte så van vid att ställa frågor om en uC ;)


/Henke
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Eller, lite beroende på hur modulen jobbar, så kan man ju alltid
fixa sina egan rutiner för att snacka med den.

Har kollat databladet igen, och det är minst sagt *skitkasst* på att
beskriva hur protokollet ser ut till/från den. Enbart ett STAMP Basic
exempel räcker naturligtsvis inte långt. Du har inte någon länk
till original datablad från Hitachi ?
port513
Inlägg: 182
Blev medlem: 20 februari 2007, 10:16:15

Inlägg av port513 »

Kan det vara denna?
http://hitmet.com/product/sensors/accel ... 041226.pdf
http://hitmet.com/product/sensors/accel ... oteNo2.pdf

Annars har jag ingen bättre :(

Parallax har en förkärlek att beskriva lite kasst och enbart för sina egna saker.


/Henke
PeotryD
EF Sponsor
Inlägg: 188
Blev medlem: 11 november 2005, 13:24:44
Ort: Umeå
Kontakt:

Inlägg av PeotryD »

uC<->MCP3204<->HitachiH48C

Datablad för MCP3204

Det är för MCP3204 som du måste programmera.
PeotryD
EF Sponsor
Inlägg: 188
Blev medlem: 11 november 2005, 13:24:44
Ort: Umeå
Kontakt:

Inlägg av PeotryD »

Måste erkänna att jag förstår inte riktigt.
MCP3204 har en pinne för ut-data och en pinne för in-data

Parallax kretskortet du har har bara en som är både in och ut?

Lite nyfiken på en bild tagen på framsidan och baksidan på den, så man kan se hur ledningarna går....(förutsatt att det bara är tvålagers kretskort)
PeotryD
EF Sponsor
Inlägg: 188
Blev medlem: 11 november 2005, 13:24:44
Ort: Umeå
Kontakt:

Inlägg av PeotryD »

Misstänker att de dragit MCP3204:n DATAin och DATAout, till samma ben, tittar man i timingens så borde det fungera.....

Först skickar man ett kommando som beskriver vilket data man vill läsa, mycket kort paus, sedan börjar kretsen(MCP3204) mata ut det.....

Hur som hälst MCP3204 var mycket intressant krets :-), är avanceradnybörjare och har inte stött på en sådan tidigare!!
Skriv svar