PIC

From HoerupWiki
Revision as of 15:07, 21 May 2007 by 195.181.54.128 (talk) (PICDEM.net)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

PICDEM.net

For at få picdem.net op og køre har vi brugt

  • PIC18F452
  • RTL8019AS
  • HiTech C 9.50
  • MPLAB IDE 7.43
  • Microchip TCP/IP Stack v. 2.20

Læg mærke til at stack'en skal være v2.20 da dette er den eneste version der understøtter RTL8019AS chippen.

For at få det til at køre har vi gjort følgende:

  • Brugt projektfilen fra demo-programmet, da denne allerede har de forskellige settings på plads. Vi prøvede at lave vores egen projektfiler men uden større held.
  • Modificeret ARPtsk.C. For at få arp til at køre på fornuftig vis bør linie 202 ændres fra
if(Cache.IPAddr.Val == IPAddr->Val || Cache.IPAddr.Val == AppConfig.MyGateway.Val)

Til

if(Cache.IPAddr.Val == IPAddr->Val)
  • For at få TCP koden til at køre ordentligt har vi også lavet en compiler #define for STACK_USE_TCP via project->build options->project->compiler. Det gælder for flere af USE_* sætningerne i stacktsk.h at for at være sikker på at de tager effekt så skal man lave en sådan compiler makro.

Pic 18F452: I2C Programming W/O interrupts

(Remember to set direction SCK/SDA ports)

Initialization

  1. Enable Serial Bit = 1 (SSPEN=SSPCON<5>)
  2. Synchronous Serial Port Mode Select Bits = 1011 (SSPM3-SSPM0=SSPCON<3:0>

Common Start

  1. Start Enable Bit = 1 ( SEN=SSPCON2<0>)
  2. DelayMs(1)
  3. Load Address into SSPBUF
  4. Test Buffer Full status bit (BF=SSPSTAT<0>)
    1. loop until buffer bit is cleared
  5. Test acknowledge bit (ACK=SSPCON2<6>)
    1. if not acknowleded, abort

Write:

  1. Load data byte into SSPBUF
  2. Test Buffer Full status bif (BD=SSPSTAT<0>)
    1. Loop until bit is cleared
  3. Test acknowledge bit (ACKSTAT=SSPCON<6>)
    1. if not acknowledged, abort

Read

  1. Recieve Control Enable bit = 1 (RCEN=SSPCON<3>)
  2. Test Buffer Full status bit (BF=SSPSTAT<0>)
  3. Set acknowledge data=1 if data is recieved (ACKDT=SSPCON2<5>)
  4. Enable Acknowlede bit=1 (ACKEN=SSPCON<4>)
  5. Read data from SSPBUF

Common termination

  1. Stop Enable bit=1 (PEN=SSPCON2<2>)

Repeated start

  1. Repeated start enable bit =1 (RSEN=SSPCON2<1>)