Homepage Wiki Forum Buy

GNUBLIN embedded GNU/Linux

Open source learning and training plattorm for embedded GNU / Linux
A projects from Hochschule Augsburg and embedded projects GmbH

Project homepage: http://www.gnublin.org
Wiki: http://wiki.gnublin.org
Aktuelle Zeit: Mo 25. Sep 2017, 17:01

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 22 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags: Re: Wie schnell ist ein Gnublin?
BeitragVerfasst: Mi 13. Feb 2013, 19:38 
Offline

Registriert: Do 8. Nov 2012, 09:47
Beiträge: 93
Wohnort: Aachen
Meine Frage zielte auf die nötigen Veränderungen auf Kernel-Seite.

Ich nehme an, Deine Schleife war in C geschrieben. Ausgabe über sysfs oder mmap? Meine oben gemessenen 740 kHz sind nicht mit Oszi, sondern über Zählervariable und Zeitmessung berechnet. Das entspräche 1,35µs für einen kompletten Impuls.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Wie schnell ist ein Gnublin?
BeitragVerfasst: Do 14. Feb 2013, 12:06 
Offline

Registriert: So 20. Jan 2013, 10:52
Beiträge: 37
Ich habe nur unter "Kernel Features" die beiden Optionen "Tickless System (Dynamic Ticks)" und "High Resolution Timer Support" ausgewählt. Bei der aktuellen Version des Master Branch aus dem Gnublin Repo sind die glaube ich schon standard mäßig gewählt.

Ich habe das so gemacht wie in dem C++ Beispiel weiter vorne im Thread. Das die Sysfs Zugriff etwas langsamer sind ist zu erwarten. Wobei die reine Schaltgeschwindigkeit für die meisten Steuerungsaufgaben (mechanischer Natur) nicht so ins gewicht fällt. Meist braucht man irgendwelche statische oder dynamische Timings oder die schnelle Reaktion auf Signale auf anderen Ports oder Wandlern. Die sind aber weitgehend Software abhängig.

Wenn ich das richtig verstanden habe benutzt der Kernel ja zwei der Timer dann wären ja noch zwei übrig. Wenn man einen eigenen Timer benutzt könnte man vermutlich auch noch Zeiten deutlich unter 300 us hinbekommen.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Wie schnell ist ein Gnublin?
BeitragVerfasst: Sa 16. Feb 2013, 07:05 
Offline
Administrator

Registriert: Sa 7. Apr 2012, 09:18
Beiträge: 251
Den Kernel kannst du genauso auf dem Elektor Board nutzen.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Wie schnell ist ein Gnublin?
BeitragVerfasst: Fr 22. Feb 2013, 13:53 
Offline

Registriert: Di 16. Okt 2012, 17:20
Beiträge: 51
Hi,

ich konnte die Ergebnisse von Schwabix bzgl. der GPIO-Geschwindigkeit verifizieren.Fuer die angegebenen 2.000.000 Schaltvorgaenge habe ich mit dem Oszi exakt 2.7 Sekunden gemessen:
-> Die errechnete Frequenz: 2.000.000 / 2.7 Sek = 740 kHz
Dateianhang:
2MIO_GPIO_6MHz.png
2MIO_GPIO_6MHz.png [ 6.01 KiB | 3162-mal betrachtet ]
und
Dateianhang:
GPIO_6MHz.png
GPIO_6MHz.png [ 3.95 KiB | 3162-mal betrachtet ]



Fuer mein Displayprojekt war mir die verfuegbare Frequenz aber ohnehin zu gering. Habe deshalb im Apex Bootloader die entsprechenden Clock Sources fuer den GPIO-Takt auf 180 Mhz getaktet. Das Resultat ist ein bisschen schnellerer Zugriff auf die GPIOs.
Fuer die 2.000.000 Schaltvorgaenge habe ich hier nur noch 270ms gebraucht.
-> Die errechnete Frequenz: 2.000.000 / 270 ms = 7.4 Mhz
Dateianhang:
2MIO_GPIO_180MHz.png
2MIO_GPIO_180MHz.png [ 6.44 KiB | 3162-mal betrachtet ]


Zu bemerken ist hier allerdings, dass die Flanken keine Flanken mehr sind. Aehnelt mehr einem Sinus. Gemessen wurde das Signal direkt am Pin des Gnublin DIP - sollte also kein Filterproblem durch die Leitung sein...Fuer mein Display sind diese "Flanken" aber scheinbar noch gut genug um damit zu arbeiten, da ich mit der schnelleren Ansteuerung auch ein gutes Ergebnis bekomme.

@sauterbe: ich haette noc hein viertes Bild angehaengt, aber das ist nicht moeglich, da scheinbar nur 3 erlaubt sind. Kann man das nach oben korrigieren?


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Wie schnell ist ein Gnublin?
BeitragVerfasst: Sa 23. Feb 2013, 07:19 
Offline
Administrator

Registriert: Sa 7. Apr 2012, 09:18
Beiträge: 251
jetzt gehts


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Wie schnell ist ein Gnublin?
BeitragVerfasst: Sa 23. Feb 2013, 10:30 
Offline

Registriert: Di 16. Okt 2012, 17:20
Beiträge: 51
Danke,

und hier das versprochene 4. Bild:
Zu sehen sind die Schaltvorgaenge am Gnublin DIP bei einer internen Taktfrequenz von 180 Mhz. Wie schon erwaehnt sind hier die Flanken keine Flanken mehr... aber hey: gut zu wissen, dass der Gnublin auch ein Sinusgenerator sein kann ;P
Dateianhang:
GPIO_180MHz.png
GPIO_180MHz.png [ 4.99 KiB | 3156-mal betrachtet ]


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Wie schnell ist ein Gnublin?
BeitragVerfasst: So 24. Feb 2013, 07:14 
Offline
Administrator

Registriert: Sa 7. Apr 2012, 09:18
Beiträge: 251
cool, dass das so schnell geht wusste ich nicht.

1. Wie schnell ist aktuell der GPIO Takt? Also wenn man es nicht auf 180 MHZ nach oben bringt.

2. Was hast du gemacht, damit man 180 MHz hat?


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Wie schnell ist ein Gnublin?
BeitragVerfasst: Di 26. Feb 2013, 09:51 
Offline

Registriert: Di 16. Okt 2012, 17:20
Beiträge: 51
Hi,

zu 1.: wie Schwabix ja bereits errechnet und ich verifizieren konnte betraegt hier die max. Frequenz 740 kHz ueber den mmapped zugriff auf die Register
zu 2: im Apex bootloader in folgender Datei muessen folgende Aederungen vollzogen werden: apex-1.6.8/src/mach-lpc313x/lpc313x_cgu_default.c
Es kann zwischen standardtakt und Schnellem Takt gewaehlt werden mittels FAST_GPIO_MODE (1: schnell, 0: standard)

Hier das Patchfile:
Code:
*** lpc313x_cgu_default.c.ori   2013-01-27 15:45:23.207484905 +0100
--- lpc313x_cgu_default.c   2013-02-23 12:37:38.201953837 +0100
***************
*** 43,49 ****
   * 4 - CLK_SWITCHBOX_AHB0_APB2_BASE3      MASTER PLL      DIV14         1/2
   *
   * 5 - CLK_SWITCHBOX_IPINT0_BASE5         MASTER PLL      DIV15         1/2
!  *
   * 6 - CLK_SWITCHBOX_UARTCLK_BASE6        MASTER PLL      DIV16         0
   *
   * 7 - CLK_SWITCHBOX_CLK1024FS_BASE7      AUDIO PLL       DIV17         1/1024
--- 43,49 ----
   * 4 - CLK_SWITCHBOX_AHB0_APB2_BASE3      MASTER PLL      DIV14         1/2
   *
   * 5 - CLK_SWITCHBOX_IPINT0_BASE5         MASTER PLL      DIV15         1/2
! 1 *
   * 6 - CLK_SWITCHBOX_UARTCLK_BASE6        MASTER PLL      DIV16         0
   *
   * 7 - CLK_SWITCHBOX_CLK1024FS_BASE7      AUDIO PLL       DIV17         1/1024
***************
*** 63,68 ****
--- 63,70 ----
   *
   * End of configuration table*/
 
+ #define FAST_GPIO_MODE 1
+
  /*------------------------------------------------------------------------------------------
    Group the clocks 0 - 29 belonging to SYS_BASE domain into 7 different sub-domains using
    following macro. Clocks not defined in the macros will be sourced with SYS_BASE_CLK.
***************
*** 100,113 ****
    Group the clocks 30 - 39 belonging to AHB_APB0_BASE domain into 2 different sub-domains using
    following macro. Clocks not defined in the macros will be sourced with AHB_APB0_BASE_CLK.
   ------------------------------------------------------------------------------------------*/
  /* define clocks belonging to subdomain DOMAIN1_DIV7 */
  #define CGU_DEF_DOMAIN1_DIV7   (D1_BIT(CGU_SB_ADC_CLK_ID))
  /* define clocks belonging to subdomain DOMAIN1_DIV8 */
! #define CGU_DEF_DOMAIN1_DIV8   ( D1_BIT(CGU_SB_AHB2APB0_ASYNC_PCLK_ID) | \
                                 D1_BIT(CGU_SB_EVENT_ROUTER_PCLK_ID) | D1_BIT(CGU_SB_ADC_PCLK_ID) | \
                                 D1_BIT(CGU_SB_WDOG_PCLK_ID) | D1_BIT(CGU_SB_IOCONF_PCLK_ID) | \
                                 D1_BIT(CGU_SB_CGU_PCLK_ID) | D1_BIT(CGU_SB_SYSCREG_PCLK_ID) | \
                                 D1_BIT(CGU_SB_OTP_PCLK_ID) | D1_BIT(CGU_SB_RNG_PCLK_ID) )
 
  /*------------------------------------------------------------------------------------------
    Group the clocks 40 - 49 belonging to AHB_APB1_BASE domain into 2 different sub-domains using
--- 102,126 ----
    Group the clocks 30 - 39 belonging to AHB_APB0_BASE domain into 2 different sub-domains using
    following macro. Clocks not defined in the macros will be sourced with AHB_APB0_BASE_CLK.
   ------------------------------------------------------------------------------------------*/
+ #if FAST_GPIO_MODE == 1
+
  /* define clocks belonging to subdomain DOMAIN1_DIV7 */
  #define CGU_DEF_DOMAIN1_DIV7   (D1_BIT(CGU_SB_ADC_CLK_ID))
  /* define clocks belonging to subdomain DOMAIN1_DIV8 */
! #define CGU_DEF_DOMAIN1_DIV8   (D1_BIT(CGU_SB_ADC_PCLK_ID) | \
!                                  D1_BIT(CGU_SB_WDOG_PCLK_ID)| \
!                                  D1_BIT(CGU_SB_OTP_PCLK_ID) | D1_BIT(CGU_SB_RNG_PCLK_ID) )
! #else
! /* define clocks belonging to subdomain DOMAIN1_DIV7 */
! #define CGU_DEF_DOMAIN1_DIV7  (D1_BIT(CGU_SB_ADC_CLK_ID))
! /* define clocks belonging to subdomain DOMAIN1_DIV8 */
! #define CGU_DEF_DOMAIN1_DIV8  ( D1_BIT(CGU_SB_AHB2APB0_ASYNC_PCLK_ID) | \
                                 D1_BIT(CGU_SB_EVENT_ROUTER_PCLK_ID) | D1_BIT(CGU_SB_ADC_PCLK_ID) | \
                                 D1_BIT(CGU_SB_WDOG_PCLK_ID) | D1_BIT(CGU_SB_IOCONF_PCLK_ID) | \
                                 D1_BIT(CGU_SB_CGU_PCLK_ID) | D1_BIT(CGU_SB_SYSCREG_PCLK_ID) | \
                                 D1_BIT(CGU_SB_OTP_PCLK_ID) | D1_BIT(CGU_SB_RNG_PCLK_ID) )
+ #endif
+
 
  /*------------------------------------------------------------------------------------------
    Group the clocks 40 - 49 belonging to AHB_APB1_BASE domain into 2 different sub-domains using
***************
*** 223,229 ****
    {
      CGU_FIN_SELECT_FFAST,
      {
!       {{1, 1, 2}, CGU_DEF_DOMAIN1_DIV7}, /*FracDiv7 */
        {{1, 1, 2}, CGU_DEF_DOMAIN1_DIV8}   /*FracDiv8 */
      }
    },
--- 236,242 ----
    {
      CGU_FIN_SELECT_FFAST,
      {
!       {{1, 1, 38}, CGU_DEF_DOMAIN1_DIV7}, /*FracDiv7 */
        {{1, 1, 2}, CGU_DEF_DOMAIN1_DIV8}   /*FracDiv8 */
      }
    },
***************
*** 358,375 ****
        {{1, 1, 2}, CGU_DEF_DOMAIN0_DIV2},  /*FracDiv2 */
        {{1, 1, 4}, CGU_DEF_DOMAIN0_DIV3},  /*FracDiv3 */
        {{1, 1, 4}, CGU_DEF_DOMAIN0_DIV4},  /*FracDiv4 */
!       {{1, 1, 2}, CGU_DEF_DOMAIN0_DIV5}, /*FracDiv5*/
        {{1, 1, 2}, CGU_DEF_DOMAIN0_DIV6}   /*FracDiv6 */
      }
    },
    /* domain1 [2] - AHB0_APB0 ClockDomain*/
    {
!     CGU_FIN_SELECT_FFAST,
!     {
!       {{1, 1, 38}, CGU_DEF_DOMAIN1_DIV7}, /*FracDiv7 */
!       {{1, 1, 2}, CGU_DEF_DOMAIN1_DIV8}   /*FracDiv8 */
!     }
    },
    /* domain2 [2] - AHB0_APB1 ClockDomain*/
    {
      CGU_FIN_SELECT_FFAST,
--- 371,402 ----
        {{1, 1, 2}, CGU_DEF_DOMAIN0_DIV2},  /*FracDiv2 */
        {{1, 1, 4}, CGU_DEF_DOMAIN0_DIV3},  /*FracDiv3 */
        {{1, 1, 4}, CGU_DEF_DOMAIN0_DIV4},  /*FracDiv4 */
!       {{1, 1, 2}, CGU_DEF_DOMAIN0_DIV5},  /*FracDiv5*/
        {{1, 1, 2}, CGU_DEF_DOMAIN0_DIV6}   /*FracDiv6 */
      }
    },
+ #if FAST_GPIO_MODE == 1
+
    /* domain1 [2] - AHB0_APB0 ClockDomain*/
    {
!         CGU_FIN_SELECT_HPPLL1,//CGU_FIN_SELECT_FFAST,
!       {
!         {{1, 1, 30}, CGU_DEF_DOMAIN1_DIV7}, /*FracDiv7 */
!         {{1, 1, 30}, CGU_DEF_DOMAIN1_DIV8}   /*FracDiv8 */
!       }
    },
+ #else
+
+   /* domain1 [2] - AHB0_APB0 ClockDomain*/
+   {
+         CGU_FIN_SELECT_FFAST,
+       {
+         {{1, 1, 28}, CGU_DEF_DOMAIN1_DIV7}, /*FracDiv7 */
+         {{1, 1, 2}, CGU_DEF_DOMAIN1_DIV8}   /*FracDiv8 */
+       }
+   },
+
+ #endif
    /* domain2 [2] - AHB0_APB1 ClockDomain*/
    {
      CGU_FIN_SELECT_FFAST,


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Wie schnell ist ein Gnublin?
BeitragVerfasst: Fr 1. Mär 2013, 08:48 
Offline
Administrator

Registriert: Sa 7. Apr 2012, 09:18
Beiträge: 251
danke


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Wie schnell ist ein Gnublin?
BeitragVerfasst: Mi 6. Mär 2013, 10:34 
Offline

Registriert: So 20. Jan 2013, 10:52
Beiträge: 37
Wie war den bei der Messung der Ausgang des Gnublins beschalten?

Bei ca. 7Mhz wird man die HF Typischen Probleme für Messung und Beschaltung beachten müssen.

Alexander


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 22 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
cron
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de