7 Segmet Anzeige mit HT16K33 - Mutterplatine

achim S.

Mitglied
16. Jan. 2010
704
13
18
Berlin Biesdorf
Sprachen
  1. ANSI C
Hallo Freunde
habe wieder was neues für euch mit Dirk seinem Lieblinksschaltkreis - dem HT16K33. Ist auch mein Liebling. Es besteht aus einer Mutterplatine mit 4 Modulen. Es wird mit I2C angesteuert. Dadurch kann ich 8 Module mit unterschiedlicher Adresse verwenden. Habe ihn bereits in verschiedenen Projekten verarbeitet, z.B. in Matrix Schaltungen oder was mit Farbe. Hardware ist fertig, Software leider erst zur Hälfte. So bald es fertig ist kommt es ins Netz. Ein kleinen Vorgeschmack habe ich schon für euch.
(Die Module sind nicht verschraubt
PB023710_(800_x_600).jpg
und liegen dadurch ein bisschen schräg drauf)
achim
 
Zuletzt bearbeitet:
  • Like
Reaktionen: maik und Dirk
Hallo Dirk
habe deine Software mit der Platine in Betrieb genommen. Nach einigen Zicken läuft es sehr gut. Eine Sache verstehe ich allerdings nicht so richtig. Es ist keine CPU frequenz angegeben. Gibt es dafür einen Grund?
Möchte jemand das Tut für die Hardware haben?
achim
 
Eine Sache verstehe ich allerdings nicht so richtig. Es ist keine CPU frequenz angegeben.
Hallo Achim,
du meinst dein SAMD21 Board?
Fall ja, nach PowerOn Reset kommt der Systemtakt vom internen 8MHz Oszillator (OSC8M) mit Prescaler 8, also 1MHz. Falls du eine andere Taktquelle verwenden möchtest, schau dir mal im ASF das Modul "System - Clock Management" an.

Dirk :ciao:
 
Hallo Dirk
das Teil habe ich erst mal mit dem Atm 1284p betrieben. Möchte aber langsam alles auf den SAM21 umstellen.
Den "System - Clock Management" werde ich mir auf jeden Fall ansehen. Du wolltest doch auch ein Beispiel zu dem Thema bringen. Ansonsten kämpfe ich immer noch mit den TFT Farbdisplays. Einmal die Umsetzung der (schweren) Befehle für das 5 Zoll Display und beim 3,2 Zoll Display hängt sich das Display zu unterschiedlichen Zeiten auf. Arbeite mit einem zweiten Display und lasse mir Punkte anzeigen. Ist scheinbar ein Laufzeitfehler in der Berechnung der String Länge, leider zeitweise (Mist)
achim
 
Hallo Achim,
Eine Sache verstehe ich allerdings nicht so richtig. Es ist keine CPU frequenz angegeben. Gibt es dafür einen Grund?
dies beziehst du jetzt auf den Atmega1284P? Wo erwartest du denn eine Frequenzangabe, im Datenblatt, in deiner Software? :hmmmm:


Den "System - Clock Management" werde ich mir auf jeden Fall ansehen. Du wolltest doch auch ein Beispiel zu dem Thema bringen.
Dies ist jetzt offtopic.
Eine mögliche Konfiguration für Main Clock von 48MHz
(config/conf_clocks.h)

(wenn ich mehr Zeit habe, kann ich ja noch näher drauf eingehen)

Von den Standardeinstellungen folgende Bereiche anpassen ...

NanoSAMD21 Mikrocontrollermodul
Main Clock = 48MHz


CodeBox C
/* System clock bus configuration */
#  define CONF_CLOCK_FLASH_WAIT_STATES            2


/* SYSTEM_CLOCK_SOURCE_XOSC configuration - External clock/oscillator */
#  define CONF_CLOCK_XOSC_ENABLE                  true
#  define CONF_CLOCK_XOSC_EXTERNAL_CRYSTAL        SYSTEM_CLOCK_EXTERNAL_CRYSTAL
#  define CONF_CLOCK_XOSC_EXTERNAL_FREQUENCY      12000000UL
#  define CONF_CLOCK_XOSC_STARTUP_TIME            SYSTEM_XOSC_STARTUP_32768
#  define CONF_CLOCK_XOSC_AUTO_GAIN_CONTROL       true
#  define CONF_CLOCK_XOSC_ON_DEMAND               true
#  define CONF_CLOCK_XOSC_RUN_IN_STANDBY          false

/* SYSTEM_CLOCK_SOURCE_DFLL configuration - Digital Frequency Locked Loop */
#  define CONF_CLOCK_DFLL_ENABLE                   true
#  define CONF_CLOCK_DFLL_LOOP_MODE               SYSTEM_CLOCK_DFLL_LOOP_MODE_CLOSED
#  define CONF_CLOCK_DFLL_ON_DEMAND               false

/* DFLL open loop mode configuration */
#  define CONF_CLOCK_DFLL_FINE_VALUE              (512)

/* DFLL closed loop mode configuration */
#  define CONF_CLOCK_DFLL_SOURCE_GCLK_GENERATOR   GCLK_GENERATOR_1
#  define CONF_CLOCK_DFLL_MULTIPLY_FACTOR         24
#  define CONF_CLOCK_DFLL_QUICK_LOCK              true
#  define CONF_CLOCK_DFLL_TRACK_AFTER_FINE_LOCK   true
#  define CONF_CLOCK_DFLL_KEEP_LOCK_ON_WAKEUP     true
#  define CONF_CLOCK_DFLL_ENABLE_CHILL_CYCLE      true
#  define CONF_CLOCK_DFLL_MAX_COARSE_STEP_SIZE    (0x1f / 4)
#  define CONF_CLOCK_DFLL_MAX_FINE_STEP_SIZE      (0xff / 4)

/* Configure GCLK generator 0 (Main Clock) */
#  define CONF_CLOCK_GCLK_0_ENABLE                true
#  define CONF_CLOCK_GCLK_0_RUN_IN_STANDBY        false
#  define CONF_CLOCK_GCLK_0_CLOCK_SOURCE     SYSTEM_CLOCK_SOURCE_DFLL
#  define CONF_CLOCK_GCLK_0_PRESCALER             1
#  define CONF_CLOCK_GCLK_0_OUTPUT_ENABLE         false

/* Configure GCLK generator 1 */
#  define CONF_CLOCK_GCLK_1_ENABLE                true
#  define CONF_CLOCK_GCLK_1_RUN_IN_STANDBY        false
#  define CONF_CLOCK_GCLK_1_CLOCK_SOURCE          SYSTEM_CLOCK_SOURCE_XOSC
#  define CONF_CLOCK_GCLK_1_PRESCALER             6
#  define CONF_CLOCK_GCLK_1_OUTPUT_ENABLE         false


 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)