Projektet består av två delar:
1) Designa ett "universellt" PIC baserat kort med relativt "ruggade" I/O.
2) Utveckla firmware för kommunikation över MODBUS.
Efter ett antal timmar av design och layout började arbetet ge resultat och i mitten på Februari gick ordern på prototypkort iväg till PCBWing:

3-D rendering av .brd fil från EAGLE framställd med Eagle3D och POV-Ray.
Efter ungefär 3 veckor anlände korten, 4st för $49 inklusive frakt - inte så tokigt ifall man orkar vänta.

Några timmars jobb med lödpennan resulterade i en första, och än så länge enda, prototyp:

- Hjärtat/hjärnan består av en PIC18F25K22 och kommunikationen körs genom en MAX232 eller en ADM1485 beroende på om man kör RS232 eller RS485.
- 16 digitala ingångar, i grupper om 4, med lysdiodsindikering. Ingångarna "triggar" på allt från 5V till 24V förutsatt att det som driver dom klarar att ge 2mA eller mer.
- 16 digitala utgångar med lysdiodindikering. Open drain, max 50V / 150mA med inbyggd skyddsdiod för direkt drivning av t.ex reläer etc.
- 4 analoga (0-5V) ingångar, 10bitars upplösning.
- 3 digitala I/O (i princip direkt anslutna till CPU'n) vars funktion ännu inte fastslagits. PWM ut, snabbräknare, kvadratur ingång...(?)
- Strömförjningen sköts av en MIC4680 switchregulator, inspänningsområdet är 8-28V.
- Samtliga anslutningar sker genom 3.5mm jackningbara plintar.

Beträffande firmware så har jag kodat en MODBUS RTU stack som för närvarande stödjer de "vanligaste" funktionerna (01,02,03,04,05,06,15,16,17 samt 11st 08-subfunktioner). För testning har jag använt Mach3 samt MODBUS Poll och jag har även testat att ansluta kortet till en Beijer E100 terminal vilket verkar fungera perfekt. Nästa steg blir att testa RS485 point-to-point och sedan sätta ihop en andra prototyp för att säkerställa funktionen med flera slavar i multidrop-konfiguration.
Till sist en bild från en session av firmware-utveckling/avlusning. LOGIC är väl inte den mest avancerade logik-analysatorn men helt underbar, och ovärderlig till den här typen av jobb.
