Skicka seriell data över UART.

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Snouser
Inlägg: 107
Blev medlem: 15 november 2006, 22:07:55
Ort: Göteborg

Inlägg av Snouser »

Nej.de har jag inte tyvär.

Jag tror att det är inkopplingen av max232 kretsen är konstig.

Någon som möjlighen har en bra, fungerande guide?
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Jag tror inte ett skvatt på att "inkopplingen av MAX232 är konstig"!

Värdet på kondensatorerna kan variera beroende på exakt vilken version MAX232 man har. Vad det fattas på sista schemat är en 100nF keramisk avkoppling av spänningsmatningen, sittande nära kretsen.

Om 90% av tecknen kommer igenom och resten är skräp tror jag mer på att baud-rate kan vara "sned" och dylikt.
Snouser
Inlägg: 107
Blev medlem: 15 november 2006, 22:07:55
Ort: Göteborg

Inlägg av Snouser »

Det som är konstigt är det att jag inte har ändrat min kod alls sedan det fungerade.
Det måste betyda att det är något med hårdvaran som är galet. Som det ser ut nu så får jag olika värden beroende på vilka kondensatorer jag kopplar in.

Vart ska jag placera 100nF? Nära kretsen?

EDIT: Det är väll elektrolytkondensatorer som jag ska använda mig av?
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Citerar mig själv: "Värdet på kondensatorerna kan variera beroende på exakt vilken version MAX232 man har."

Vilken del är oklart?

Exakt vilken MAX232 använder du? Har du ens kollat databladet för den version?
Snouser
Inlägg: 107
Blev medlem: 15 november 2006, 22:07:55
Ort: Göteborg

Inlägg av Snouser »

Jo det läste ja.
Det som är knstigt är som sagt varför det ena stunden fungerar och sedan så slutar det helt plötsligt att fungera. 10uF elektrolyt har fungerar bra, men gör inte de längre.

Jag har en MAX232ACPE 9546N vilket borde bli; https://www1.elfa.se/data1/wwwroot/webr ... 302326.pdf
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Den behöver 100nF kondensatorer för spänningspumparna men 1µF fungerar också. Dock är det bra att använda keramiska kondensatorer vilket gör 1µF lite dumma.

Och avkopplingen (100nF) ska vara så nära benen på kretsen som spänningen matas in på som praktisk möjligt. En 10µF är ingen skada heller men de 100nF keramisk är nära nog ett måste.

Och om det knasar sig och glapper är det något allvarligt fel i monteringen, gör om, gör rätt.
Senast redigerad av Icecap 2 november 2008, 17:12:29, redigerad totalt 1 gång.
thepirateboy
EF Sponsor
Inlägg: 2109
Blev medlem: 27 augusti 2005, 20:57:58
Ort: Borlänge

Inlägg av thepirateboy »

Det vanligaste felet man gör är väl att man vänder elektrloyterna fel. Notera polariteten på C3 och C4. Mät också spänningen på pinne 2 och 6.
Snouser
Inlägg: 107
Blev medlem: 15 november 2006, 22:07:55
Ort: Göteborg

Inlägg av Snouser »

Okej, nu hänger jag med :D

Hur vet jag vad plus och minus är på en keramik-kondensator? Det finns ju inget utmarkerat..
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Keramiska är opolariserade.
Snouser
Inlägg: 107
Blev medlem: 15 november 2006, 22:07:55
Ort: Göteborg

Inlägg av Snouser »

Icecap skrev:Den behöver 100nF kondensatorer för spänningspumparna men 1µF fungerar också. Dock är det bra att använda keramiska kondensatorer vilket gör 1µF lite dumma.

Och avkopplingen (100nF) ska vara så nära benen på kretsen som spänningen matas in på som praktisk möjligt. En 10µF är ingen skada heller men de 100nF keramisk är nära nog ett måste.

Och om det knasar sig och glapper är det något allvarligt fel i monteringen, gör om, gör rätt.
Jag trodde jag förstod hur du menade, men inte.

Vad menar du med "spänningspumparna"?
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

1. Hur vet du att AVR:en kör i 4915200 Hz? Har du gjort några fuseinställningar?


2. Som flera redan har påpekat så kan du inte göra som du gör i "recive()".
"unsigned char *value_recive;" innebär att du skapar en pekare som pekar på en minnesadress som innehåller en "unsigned char". Du kan då inte direkt börja använda "value_recive[0]" eftersom du inte vet _vad_ "value_recive" pekar på. Att det kanske fungerar ändå är bara (o)tur. Ett bättre förslag är att lösa det på typ det här sättet istället:

Kod: Markera allt

#define MAX_ANTAL_ELEMENT 15   // 15 är hur många element
du vill kunna ha i arrayen

uint8_t recive(uint8_t *recive)
{
	...
	return ANTALET_INLÄSTA_BYTES;
}

...

int main(void) 
{	
	uint8_t rec[MAX_ANTAL_ELEMENT];
	uint8_t n;

	init();

	while (1)
	{
		n = recive(rec);
		send(rec, n);
	}

	return 0;
}
3. Har du provat att koppla bort in- och utgångarna från MAX232-kretsen och köra ingångarna manuellt medan du mäter med en multimeter på utgångarna? Då ser du ju i fall du får rätt spänningar. Har du någon typ av fyrkantsgenerator och oscilloskop så kan du ju prova med dom också.
Senast redigerad av cykze 3 november 2008, 18:03:02, redigerad totalt 1 gång.
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Snouser: kondensatorerna används för att skapa +10V och -10V, detta görs med switchade "spänningspumpar", du behöver inte förstå HUR men bara acceptera ATT det är så ;-)

Ett exempel på en krets som har liknande funktion: ICL7660 och en förklaring finns HÄR
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Flera har nämnt det , men jag vill trycka lite extra på det...

*Avkopplingen* (över matningsspänningen) när man använder en MAX232
är *mycket viktig* !

Spänningspumparna i MAX232 skräpar ner matningsspänningen oerhört,
och en elektrolyt på 1uF direkt vid MAX232 är minimum. Utan den kan
man få alla möjliga konstiga problem. Vanliga logikkretsar skapar också
mycket störningar, men i ett högre frekvensband. Dessa avkopplar man
enkelt och normalt med en 100 nF keramisk konding. Men en MAX232
skapar helt andra störningar i ett frekvensband som naturligtsvis
överenstämmer med de interna spänningspumparna.

Notera att det i databladet står (du har ju läst det, eller hur?) :
In applications that are sensitive
to power-supply noise, VCC should be decoupled to
ground with a capacitor of the same value as C1 and
C2 connected as close as possible to the device.
Alltså, om du använder 10 uF (vilket sannolikt är helt fel, men men...) för
spänningspumparna, så ska du även ha en 10 uF elektrolyt över
matningsspännigen så nära MAX232 som möjligt. Om du byter till 1 uF
så kan du även avkoppla med 1 uF.

När det sedan gäller kondingarna som sitter i själva spänningspumparna
så gäller naturligtsvis det som databladet anger för den modell av MAX232
som man har. Du länkade till Maxim's datablad och det är väl OK om det
är en Maxim du har. Annars bör du dubbelkolla mot rätt fabrikat, om det
inte är en Maxim du har.

Notera att databladet specar 0.1 uF för spänningspumparna till en MAX232*A*
(det var väl "A" versionen du hade?), så varför du kör med 10 uF är lite konstigt...

> Vad menar du med "spänningspumparna"?

Det är det som i databladet kallas "Dual Charge-Pump Voltage Converter".

> Jag tror att det är inkopplingen av max232 kretsen är konstig.
> Någon som möjlighen har en bra, fungerande guide?

Ja, Maxim har något som kallas "datablad". Och det fungerar utmärkt,
om man bara läser det och gör som det står. MAX232 är en av de mest
beprövade och välanvända kretsarna och det är normalt inga problem
att få en fungerande koppling. Det behövs ingen ytterligare guide utöver
databladet.
Snouser
Inlägg: 107
Blev medlem: 15 november 2006, 22:07:55
Ort: Göteborg

Inlägg av Snouser »

Nu fungerar det bra.

Efter att ha följ denna guide och läst alla tips från tråden så löste det sig.

Problemet var att jag hade "glömt" att lägga spänning på MAX232 kontrollen :D
Jag hade alltså glömt att koppla efter den lilla bilden som är på den jag bifogade, pinne 15 och 16.

Tack för hjälpen.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Jahaja... :roll:

Det är lite underligt att det tar över 10 inlägg innan du kollade det.
Alldeles för slarvigt innan man postar på ett forum och tar 100'tals
andras tid i anspråk. Nästan 600 "visningar" av tråden nu, och så
hade MAX232'an ingen matningsspänning...

Aja, du får en extrapoäng för att du i alla fall beskrev "felet"...
Skriv svar