XMEGA PIN REMAP

Rodzina procesorów bogatszych w wiele nowych rozwiązań i dlatego warto po nie sięgnąć.
ODPOWIEDZ
Awatar użytkownika
niveasoft
Posty: 1213
Rejestracja: 17 sie 2015, 12:13
Kontakt:

XMEGA PIN REMAP

Post autor: niveasoft » 27 lut 2018, 10:17

Nie każdy wie, że w Xmegach możliwe jest przeniesienie niektórych funkcjonalności pinów na inne.

Dla bliższego zobrazowania w zwykłej Atmedze możemy mieć wyjście PWM na określonych pinach OCxA OCxB itd.
W Xmedze, jeśli na PCB pasuje nam inaczej możemy ten PWM przenieść na inny pin.
Można zamienić miejscami piny w interfejsie SPI i ....można przenieść USARTx0 na miejsce USARTx1
Ostatnia możliwość mi się ostatnio przydała bo PORTF nie ma USART na pinach PF6 i PF7

Konfigurujemy USART6 , ustawiamy REMAP , ustawiamy pin TX jako wyjściowy i od tego momentu każde użycie "PRINT #7" działa na PF7 :D
  1. $regfile = "xm128a3udef.dat"                                'FLASH-128KB,SRAM-8KB,EEP-2KB,7xTIMER,4xDMA,7xUSART,3xSPI,2xTWI,USB
  2. $crystal = 32000000                                         '32MHz
  3. $hwstack = 128                                              'FLASH 10K TIMES
  4. $swstack = 128                                              'EEPROM 100K TIMES
  5. $framesize = 512
  6.  
  7. Debug On
  8.  
  9.  Config Submode = New
  10.  Config Eeprom = Quick
  11.  
  12.  Const _valcheck = 1
  13.  $lib "hexval.lbx"
  14.  
  15.  ' ***************** SYSTEM CLOCK CONFIG **************************
  16. '                INTERNAL 32MHz NO PRESCALE
  17. '
  18. Config Osc = Disabled , 32mhzosc = Enabled , 32khzosc = Enabled
  19. Config Sysclock = 32mhz , Prescalea = 1 , Prescalebc = 1_1
  20. '
  21. ' ENABLING AUTOMATIC OSCILLATOR CALIBRATION
  22.     Osc_dfllctrl.0 = 1
  23.      Dfllrc32m_ctrl.0 = 1
  24.  
  25.  
  26. 'added by BARTek
  27. Dim Old_sec As Byte
  28.  
  29. '************ CONFIGURATION FOR COM7 ON PORTF ********************     USARTF0
  30. '
  31.    Config Com7 = 115200 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8       'Tx-PF3  Rx-PF2
  32.     Open "COM7:" For Binary As #7
  33.      Const Rs = 7
  34.      Config Serialin6 = Buffered , Size = 50                'komendy z terminala
  35.  
  36.      Config Print6 = Portf.0 , Mode = Set
  37.      Config Portf.0 = Output
  38.  
  39.      Set Portf_remap.4                                      'przełącz USART z F3 i F2 na F7 i F6
  40.      Config Portf.7 = Output                                'TX pin must be in OUTPUT mode
  41.  
  42. '*****************************************************************
  43.  
  44.  
  45.  
  46. '#################################################################
  47. '#                         TIMER`s                               #
  48.  
  49.  Config Tcc0 = Normal , Prescale = 8
  50.   Tcc0_per = 39999                                          '10ms @32MHz/8
  51.  
  52.  Dim Miliseconds As Byte , 500ms As Byte , Mig As Byte
  53.  
  54.  Do
  55.  
  56.   If Tcc0_intflags.0 = 1 Then
  57.    Tcc0_intflags.0 = 1
  58.  
  59.    If Miliseconds < 100 Then
  60.     Incr Miliseconds
  61.    Else
  62.     Miliseconds = 0
  63.      Print #rs , "Test"
  64.    End If
  65.  
  66.   End If
  67.  
  68.  Loop
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Awatar użytkownika
kaktus
Posty: 32
Rejestracja: 19 sie 2015, 15:13
Lokalizacja: opolskie
Kontakt:

Re: XMEGA PIN REMAP

Post autor: kaktus » 02 cze 2018, 21:23

Nie tylko rodzina XMega ma tą funkcjonalność.
teraz życie można rozdzielić między NOP i SLEEP
ODPOWIEDZ