intern:dev

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
intern:dev [2012/03/03 08:13] – [Pinconstraints] sveschintern:dev [2025/06/11 20:35] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== Neueste Entwicklung an Netzer 2:0 ======
 +
 +===== Features =====
 +
 +  * Steuercontroller (PIC18, PIC24, dsPIC oder PIC32)
 +  * Ethernetcontroller ENC424J600
 +  * Pin- und formfaktorkompatibles Interface zu Netzer 1
 +  * MicroSD-Kartenslot (per SPI angebunden)
 +  * Externer RAM-Speicher (Parallel oder per SPI angebunden)
 +  * Optional: Externes EEPROM (Per SPI angebunden)
 +  * Versorgung mit 3.3V oder 5V (?)
 +
 +===== Überlegungen zu den Controllertypen =====
 +
 +Aus Platz- und Preisgründen wird ein 64-Pin-Gehäuse in der Bauform QFN bevorzugt.
 +Soweit bekannt, gibt es von jeder der angestrebten PIC-Familien ein passendes Derivat.
 +
 +
 +==== PIC24 ====
 +
 +{{:intern:pic24_overview.gif?nolink&|}}
 +
 +Hier ist der Typ **PIC24FJ256GA106** der Passende.
 +
 +Für das 64-Pin Gehäuse hier noch die passende Pinmap:
 +
 +{{:intern:pic24_pinmap.gif?nolink&|}}
 +
 +
 +=== Stromversorgung ===
 +
 +{{:intern:pic24_vcc.gif?nolink&|}}
 +
 +{{:intern:pic24_envreg.gif?nolink& |}}
 +Der Controller verfügt über einen internen Spannungswandler, der durch externe Beschaltung konfiguriert wird. Für Netzer **muss** der Spannungswandler verwendet werden, um eine Stromversorgung mit 3,3V zu machen.
 +
 +Die Operation bei maximalen Takt von 32 MHz ist gewährleistet, da der Spannungswandler ausreichend Spannung für VDDcore erzeugt.
 +**Brown-Out-Detektor** ist vorhanden (Spezifikation siehe Tabelle).
 +
 +=== Reset (MCLR) ===
 +
 +{{:intern:pic24_mclr.gif?nolink& |Empfohlene Beschaltung}}
 +Empfohlener Schaltkreis laut Datenblatt (entspricht der aktuellen Netzer-Schaltung).
 +
 +
 +=== OSC Beschaltung ===
 +
 +{{:intern:pic24_osc.gif?nolink& |Empfohlene OSC Beschaltung}}
 +
 +Es gibt folgende Möglichkeiten:
 +  - EC (Externer Takt mit 0-32 MHz)
 +  - ECPLL (Externer Takt mit 4-8MHz, mit PLL)
 +  - HS (10MHz-32MHz Quarz)
 +  - HSPLL (10MHz-32MHz Quarz, mit PLL)
 +  - Intern (mit und ohne PLL)
 +
 +Die PLL arbeitet mit einem fixen Faktor von 4. 32MHz ist der höchste interne Takt.
 +
 +
 +=== Programmierung ===
 +
 +Es gibt drei ICD-Pinpaare, die per Fuse konfiguriert werden können. Default sind PGEC1 (Pin 15) und PGED1 (Pin 16) ausgewählt, ggf. kann das aber durch einen vorinstallierten Bootloader geändert werden. Die beiden Pins können auch als analoge Eingänge verwendet werden.
 +
 +
 +==== PIC18 ====
 +
 +{{:intern:pic18_overview.gif?nolink&|}}
 +
 +Hier ist der Typ **PIC18F67K22** der Passende.
 +
 +Für das 64-Pin Gehäuse hier noch die passende Pinmap:
 +
 +{{:intern:pic18_pinmap.gif?nolink&|}}
 +
 +
 +=== Stromversorgung ===
 +
 +{{:intern:pic18_vcc.gif?nolink&|}}
 +
 +{{:intern:pic18_envreg.gif?nolink& |}}
 +Der Controller verfügt über einen internen Spannungswandler, der durch externe Beschaltung konfiguriert wird. 
 +
 +Für maximalen Takt muss **mindestens mit 3V** versorgt werden.
 +**Brown-Out-Detektor** ist vorhanden und konfigurierbar (1,8V, 2,0V, 2,7V und 3,0V).
 +
 +**Übersicht**
 +
 +^ Signal ^ Pinliste ^
 +| GND | 9, 18 (ENVREG disabled), 20 (AD), 25, 41 und 56 angeschlossen werden. |
 +| VDD | Pins 19 (AD), 26, 38 und 57 angeschlossen werden. |
 +| VDDCore | Pin 10 (wie links in der Grafik zu sehen.) Cf ist ein low ESR Typ (< 5 Ohm) mit Wert 10uF. |
 +
 +
 +=== Reset (MCLR) ===
 +
 +{{:intern:pic18_mclr.gif?nolink& |Empfohlene Beschaltung}}
 +Empfohlener Schaltkreis laut Datenblatt (entspricht der aktuellen Netzer-Schaltung). 
 +
 +=== OSC Beschaltung ===
 +
 +{{:intern:pic18_osc.gif?nolink& |Empfohlene OSC Beschaltung}}
 +
 +Der maximale durch PLL generierte Takt ist 64 MHz. Die PLL läuft mit einem fixen Faktor von 4, d.h. ein Quarz mit **16 MHz** ist die ideale Taktquelle. Für serielle Anwendungen ist ein Quarz mit 14,7456 MHz ideal. 
 +Möglicherweise kann auch alles über den internen Takt gemacht werden, sollte das RTCC-Modul genaue Zeitstempel für das Task-Switching generieren können.
 +
 +
 +
 +==== Programmierinterface ====
 +
 +Wie gewohnt werden PGD (RB7, Pin 37) und PGC (RB6, Pin 42) rausgeführt, ggf. auf Pinleisten. Falls sie auf Pinleisten geführt werden, sollten Serienwiderstände bis 100 Ohm eingefügt werden.
 +
 +
 +==== Parallelport ====
 +
 +Der Ethernetcontroller und ggf. ein SRAM-Baustein werden über ein paralleles Interface angeschlossen. Dieser Controller weißt keine dedizierte parallele Schnittstelle auf, so dass beliebige Portpins verwendet werden können.
 +
 +===== Pinconstraints =====
 +
 +==== Reset ====
 +
 +Der RESET-Pin ist für alle hier betrachteten Controller **Pin 7**. Die externe Beschaltung ist ähnlich. Der Serienwiderstand variiert im Wert (Bestückungsoption?!). Ggf wird der Stützkondensator für Debugging und Programmierung entfernt. In der Serie wird ein Bootloader verwendet, so dass der Kondensator bestückt wird.
 +Der Pin wird wie bei Netzer 1.X auf den Netzer-Pinheader geführt.
 +
 +{{:intern:netzer1_reset.gif?nolink&|Alte Netzer-Beschaltung}}
 +
 +
 +==== Stromversorgung ====
 +
 +=== Pin 18 ===
 +
 +ENVREG des PIC18 kollidiert mit RB7 der anderen Controller. Für die weitere Diskussion wird angenommen, dass RB7 immer als Eingang konfiguriert ist.
 +  - ENVREG wird hart auf Masse gelegt, dann operiert der PIC18 immer mit 3,3V.
 +  - ENVREG wird per Widerstand auf Masse oder VCC gelegt. Dann wäre theoretisch auch VCC=5V möglich, jedoch müssen dann alle ICs auf dem Netzer das können, was mit dem EthernetController schonmal nicht geht.
 +
 +Entscheidung: **Möglichkeit 1)**
 +
 +
 +=== Pin 10 ===
 +
 +VDDcore des PIC18 kollidiert mit VDD der anderen Controller. In jeden Fall wird ein 100nF nach Masse gesetzt. Ein optionaler 0R-Widerstand für PIC24 und PIC32 nach VDD stellt die Verbindung her. Im Falle des PIC18 bleibt dieser Widerstand unbestückt.
 +
 +
 +=== Pin 56 ===
 +
 +Hier kollidiert VSS des PIC18 mit VDDCORE der anderen Controller. Im Falle der anderen Controller wird ein 10uF an der Stelle benötigt, der im PIC18-Fall einfach durch einen 0R-Widerstand ersetzt wird.
 +
 +
 +Keine weiteren Konflikte.
 +
 +
 +==== Quarz ====
 +
 +Der PIC18 kann mit maximal 16 MHz versorgt werden, die er intern auf 64 MHz hochtaktet. Der PIC24 kann von 8 MHz bis 32 MHz versorgt werden (ideal sind **8 MHz**). PIC32 muss noch näher evaluiert werden.
 +Es sollte außerdem die Option vorgesehen werden, den Ausgangangstakt des Ethernet-Controllers als Taktquelle zu nutzen, dieser wird dann an OSCIn angeschlossen. Taktoptionen des ENC424J600:  
 +
 +{{:intern:enc_oscout.gif?nolink&|ENC Taktausgang}}
 +
 +
 +==== Parallel angebundener Ethernet-Controller ====
 +
 +Der Ethernet-Controller ENC424J600 wird parallel angebunden (Mode 5 oder 6), um einen höheren Durchsatz als bei SPI-Anbindung zu erreichen. Der erweiterte Adressbus wird ebenfalls angebunden, um vollen Zugriff auf den Speicher des Controllers zu erlangen.
 +Einige Controller verfügen über ein Parallel Master Port (PMP), damit geht der Zugriff dann noch schneller. Für das PMP wurde das Pinning optimiert.
 +
 +^ Pinname ^ ENC424 ^ Netzer-uC ^ PIC18F6XK22 ^ PIC24FJ256GA106 ^ dsPIC ^ PIC32 ^
 +| AD0     | 38     | 60        | RE6/P1B/CCP6 | CN58/PMD0/RE0 |
 +| AD1     | 39     | 61        | RE5/P1C/CCP7 | CN59/PMD1/RE1 |
 +| AD2     | 40     | 62        | RE4/P3B/CCP8 | CN60/PMD2/RE2 |
 +| AD3     | 41     | 63        | RE3/P3C/CCP9/REF0 | CN61/PMD3/RE3 | 
 +| AD4     | 5      | 64        | RE2/CS/P2B/CCP10 | CN62/PMD4/RE4 |
 +| AD5     | 6      | 1         | RE1/WR/P2C | CN63/PMD5/RE5 | 
 +| AD6     | 7      | 2         | RE0/RD/P2D | SCL3/CN64/PMD6/RE6 |
 +| AD7     | 8      | 3         | RG0/ECCP3/P3A | SDA3/CN65/PMD7/RE7 |
 +| AD8     | 25     | 32        | RC7/RX1/DT1 | SCL2/RP17/CN18/PMA8/RF5 |
 +| AD9     | 26     | 31        | RC6/TX1/CK1 | SDA2/RP10/CN17/PMA9/RF4 |
 +| AD10    | 27     | 28        | RA4/T0CKI | TDI/PMA10/AN13/CTED1/CN31/RB13 |
 +| AD11    | 28     | 27        | RA5/AN4/T1CKI/T3G/HLVDIN | TCK/AN12/CTED2/CN30/PMA11/RB12 |
 +| AD12    | 29     | 24        | RA0/AN0/ULPWU | TDO/AN11/CN29/PMA12/RB11 |
 +| AD13    | 30     | 23        | RA1/AN1 | TMS/AN10/CVREF/CN28/PMA13/RB10 |
 +| AD14    | 31     | 44        | RB4/KBI0 | RP3/CN55/PMCS2/RD10 |
 +| CS      | 34 (VDD)| NC|||||
 +| WR/EN   | 35     | 49 auf PIC18, sonst 52 | RD7/PSP7/SS2 | RP25/CN13/PMWR/RD4 |
 +| RD/RW   | 36     | 53        | RD3/PSP3 | RP20/CN14/PMRD/RD5 |
 +| AL      | 37     | 30        | RC0/SOSCO/SCLKI | AN15/REFO/RP29/CN12/PMA0/RB15 |
 +| INT     | 24     | 43        | RB5/KBI1/T3CKI/T1G | RP4/CN54/RD9 |