Sida 2 av 3

Postat: 2 november 2008, 16:30:18
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?

Postat: 2 november 2008, 16:38:31
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.

Postat: 2 november 2008, 16:48:21
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?

Postat: 2 november 2008, 17:01:04
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?

Postat: 2 november 2008, 17:05:45
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

Postat: 2 november 2008, 17:11:58
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.

Postat: 2 november 2008, 17:11:59
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.

Postat: 2 november 2008, 17:37:06
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..

Postat: 2 november 2008, 17:42:14
av vfr
Keramiska är opolariserade.

Postat: 2 november 2008, 17:46:17
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"?

Postat: 2 november 2008, 18:43:33
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å.

Postat: 2 november 2008, 19:21:31
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

Postat: 2 november 2008, 19:36:59
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.

Postat: 4 november 2008, 16:45:23
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.

Postat: 4 november 2008, 17:05:22
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"...