Sida 1 av 2
Asynkron USART med H48C
Postat: 13 mars 2007, 21:45:41
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
Postat: 13 mars 2007, 22:20:07
av Micke_s
Är inte alltid uart asynkront?
Postat: 13 mars 2007, 22:24:22
av sodjan
> Är inte alltid uart asynkront?
Jo, men varför denna (lite konstiga) fråga ?
Postat: 13 mars 2007, 22:30:46
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
Postat: 13 mars 2007, 22:38:41
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.
Postat: 13 mars 2007, 23:23:16
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)
Postat: 13 mars 2007, 23:25:42
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
Postat: 14 mars 2007, 02:17:18
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......
Postat: 14 mars 2007, 06:10:11
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
Postat: 14 mars 2007, 06:25:21
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
Postat: 14 mars 2007, 10:00:42
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 ?
Postat: 14 mars 2007, 10:58:54
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
Postat: 14 mars 2007, 13:39:37
av PeotryD
uC<->MCP3204<->HitachiH48C
Datablad för
MCP3204
Det är för MCP3204 som du måste programmera.
Postat: 14 mars 2007, 13:56:10
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)
Postat: 14 mars 2007, 14:06:20
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!!