Pyttedator med RS232 och Ethernet?

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
arvidb
Inlägg: 4537
Blev medlem: 8 maj 2004, 12:56:24
Ort: Stockholm

Inlägg av arvidb »

Nja... enligt Designer's Reference finns det fyra sätt att bestämma baud rate:

1) Använd någon fördefinierad baud rate (300, 600, 1,200 osv upp till 1,843,200, och 6,250,000) - den som är närmast 250 k av dem är 230,400.

2) Använd "Scalable Baud Rate". Baud raten blir då 3,125,000 delat med valfritt heltal. Tyvärr måste du dela med 12,5 för att få 250 kBaud.

3) Extern klocka. Baud rate = extern klocka / 8.

4) Använd timer0 som baud rate clock. Baud rate = timer0 / 8. Edit: Max timerklockfrekvens är 12.5 MHz delat med potenser av två. 12.5 MHz/8/250000 = 6,25. Du måste alltså ändra timerns värde: 6, 6, 6, 7, 6, 6, 6, 7 osv.

Med hjälp av lite interrupt så går det antagligen att använda nr 4 för att få nästan valfri baud rate. Problemet är att du kör linux, vilket betyder att drivrutinen måste stödja det hela. Serieportsdrivrutinen för Etraxen heter crisv10.c och är på typ 5000 rader. :roll: Den verkar ha åtminstone påbörjat stöd för extern klocka, men jag har inte hittat något stöd för mer precis kontroll av baud rate med timer0. Vilket inte behöver betyda att det inte finns, det är som sagt 5000 rader att kolla igenom och förstå...

Arvid
B1n4ry
EF Sponsor
Inlägg: 1327
Blev medlem: 30 november 2005, 20:02:50
Ort: Borås
Kontakt:

Inlägg av B1n4ry »

Aha... Då är jag med. Men kör jag med en skalning på 12 eller 13 så får jag ju typ 4% fel och det borde nog funka för mig iaf... DMX brukar vara rätt förlåtande. Skall testa. Annars får det bli en extern UART.

//B1N4RY
Användarvisningsbild
arvidb
Inlägg: 4537
Blev medlem: 8 maj 2004, 12:56:24
Ort: Stockholm

Inlägg av arvidb »

Jag har kommit en bit på väg mot att få extern klocka att funka. Rapporterar mer här sen om/när jag får det att funka.

Att bara löda dit en oscillator känns ju enklare än en att använda en extern UART. Vore trevligt om det gick att få det att fungera.

Arvid
diman
EF Sponsor
Inlägg: 192
Blev medlem: 14 februari 2007, 09:58:06
Ort: Löddeköpinge

Inlägg av diman »

fortsätter på ämnet och undrar om det finns flera små boards med ethernet och RS232 och linux att hitta i riket.
har ett projekt på gång där jag ska bygga en fjärrstyrd (via lan) eluttag med status för varje relä (och eventuell strömförbrukning - men inte krav)
jag tänkte köra med en sådanhär board, antingen FOX board eller liknande, linux, webbserver, cgi eller c kod som styr ett 8-reläers kort från kjell & co via rs232 interface. enklast möjligt.
finns det flera kort liknande FOX board lättillgängliga i sverige ?
Användarvisningsbild
arvidb
Inlägg: 4537
Blev medlem: 8 maj 2004, 12:56:24
Ort: Stockholm

Inlägg av arvidb »

Ok, nu verkar det funka med kommunikation i 500 kBaud (även om jag bara har kunnat testa *att* det funkar, inte att farten är den rätta, men allt talar för det).

Det var lite meck: det krävs ändringar i seriedrivrutinen "crisv10.c" och i kernel-config-filen "devboard-R2_01/os/linux-2.6/drivers/serial/Kconfig". För att sedan ställa in rätt hastighet behövs ett ioctl-anrop (TIOCSSERIAL), det går inte med de vanliga rutinerna för baudrateinställning. Säg till om filerna behövs så lägger jag upp länkar till dem.

Elektriskt var det inga problem: en oscillator för 27:30+moms (ELFA 74-560-07) (med en avkopplingskondensator på matningen) var allt som behövdes.

Arvid
Stridis
Inlägg: 5
Blev medlem: 3 mars 2007, 10:54:43
Ort: Nordvästra Skåne

Inlägg av Stridis »

Får man lov att fråga vad det är för sorts scanner?

Magnus
Användarvisningsbild
arvidb
Inlägg: 4537
Blev medlem: 8 maj 2004, 12:56:24
Ort: Stockholm

Inlägg av arvidb »

Jomenvisst. Det är en time-of-flight-scanner som skickar ut strålar i en solfjädersform och returnerar avstånd till (och ev. reflektionsstyrka för) det varje stråle träffar.

Tillverkaren är SICK, modellen jag jobbar med just nu heter LMS200.

Förresten så funkar kommunikation i 500 kBaud fint nu.

Arvid
Skriv svar