Ustawienia początkowe Xmega32E5

Rodzina procesorów bogatszych w wiele nowych rozwiązań i dlatego warto po nie sięgnąć.
ODPOWIEDZ
Awatar użytkownika
Karlos128@nos
Posty: 53
Rejestracja: 18 sie 2015, 13:32

Ustawienia początkowe Xmega32E5

Post autor: Karlos128@nos » 01 lut 2019, 15:43

Witajcie, czy mogę liczyć na pomoc w napisaniu początkowego programu z ustawieniami dla procesora Atxmega32E5.
Chodzi mi głównie aby odpalić port komunikacyjny uart na PD2-RX oraz PD3-TX oraz twi na porcie PD0-SDA, PD1-SCL.
Co tu trzeba by było pozmieniać ?
  1. $regfile = "xm32E5def.dat"
  2. $crystal = 32000000                                         '32MHz
  3. $hwstack = 128
  4. $swstack = 128
  5. $framesize = 128
  6.  
  7. Config Osc = Enabled , 32mhzosc = Enabled , 32khzosc = Enabled
  8. Config Sysclock = 32mhz                                     '--> 32MHz
  9. '*******************************************************************************
  10. 'Config Osc = disabled , 32mhzosc = Enabled
  11. Osc_pllctrl = &B10_0_00100
  12. Do
  13.  
  14. Loop Until Osc_status.1 = 1                                 'Check if RC2MRDY is ready                            '
  15.   'enable PLL
  16. Set Osc_ctrl.4                                              'PLL enable
  17.   'configure the systemclock
  18. Config Sysclock = Pll , Prescalea = 1 , Prescalebc = 1_1    'use PLL
  19. 'Config Clock = Soft , Rtc = 1khz_int32khz_rcosc , Gosub = Sectic
  20. Config Priority = Static , Vector = Application , Lo = Enabled , Hi = Enabled
  21. Config Eeprom = Mapped
  22. Rem ****************************************************************************
  23. Rem ********** LONFIGURACJA PORTU COM 2 ****************************************
  24. Config Com2 = 19200 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8       ' Połączenie bezprzewodowe HC-12
  25. Open "COM2:" For Binary As #3
  26. Config Serialin2 = Buffered , Size = 127
  27.  
  28. Enable Usartd0_rxc , Lo
  29. Config Input2 = Cr , Echo = Crlf
Awatar użytkownika
niveasoft
Posty: 1207
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Ustawienia początkowe Xmega32E5

Post autor: niveasoft » 01 lut 2019, 15:56

Ta 32E5 potrafi czasem czymś zaskoczyć bo jest trochę inna, ale...
Na PD2 i PD3 to jest raczej COM3.
Poniżej przykład z jakiegoś mojego kodu.
  1. '************ CONFIGURATION FOR COM5 ON PORTD ********************   USARTD0
  2. '                   RS485 FOR PC
  3. Config Com3 = 115200 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8       'Tx-PD3  Rx-PD2
  4.  Open "COM3:" For Binary As #3
  5.  'COM3, ale Serialin 2!
  6.   Config Serialin2 = Buffered , Size = 50
Dla TWI sprawa jest łatwa bo nazywa się tak jak port czyli PORTD to TWID, jak PORTC to TWIC...
  1.  'TWI  SDA-PD0, SCL-PD1
  2.  
  3.  Dim Twi_start As Byte
  4.  Open "twid" For Binary As #8
  5.   I2cinit #8
  6.    Config Twid = 100000
Potem musisz tego kanału #8 (lub inną wartośc jaka przypiszesz) używać w komendach TWI.
Poniżej przykładowy odczyt RTC Xmegą ;)
  1. Getdatetime:
  2.  
  3. I2cstart #8                                                 ' Generate start code
  4.  I2cwbyte Ds3231w , #8                                      ' send address
  5.  If Err = 1 Then
  6.   I2c_err = 1
  7.    I2cstop #8 : Return
  8.  Else
  9.   I2c_err = 0
  10.  End If
  11.  I2cwbyte 0 , #8                                            ' start address in 1307
  12.  
  13. I2crepstart #8                                              ' Generate start code
  14.  I2cwbyte Ds3231r , #8                                      ' send address
  15.  If Err = 0 Then
  16.     I2crbyte _sec , Ack , #8
  17.     I2crbyte _min , Ack , #8                                ' MINUTES
  18.     I2crbyte _hour , Ack , #8                               ' Hours
  19.     I2crbyte Weekday , Ack , #8                             ' Day of Week
  20.     I2crbyte _day , Ack , #8                                ' Day of Month
  21.     I2crbyte _month , Ack , #8                              ' Month of Year
  22.     I2crbyte _year , Nack , #8                              ' Year
  23.  
  24.     _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
  25.     _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
  26.  End If
  27.  
  28.  I2cstop #8
  29.  
  30. Return
Awatar użytkownika
Karlos128@nos
Posty: 53
Rejestracja: 18 sie 2015, 13:32

Re: Ustawienia początkowe Xmega32E5

Post autor: Karlos128@nos » 01 lut 2019, 16:08

Dzięki za pomoc, na razie tematu nie zamykam. Póki co to program się kompiluje, ale jak tam trochę podopisuje to się zobaczy w praktyce. :shock:
Awatar użytkownika
Karlos128@nos
Posty: 53
Rejestracja: 18 sie 2015, 13:32

Re: Ustawienia początkowe Xmega32E5

Post autor: Karlos128@nos » 16 lip 2019, 11:36

Ponownie odświeżam temat odnosząc się do tego procka, tyle że chodzi mi o uruchomienie pwm na porcie D4 i D5.
W Data Sheet niby podają że pod tymi pinami są OC5A oraz OC5B.
  1. Config Tcd5 = Pwm , Prescale = 8 , Comparea = Da , Resolution = 16
  2.  Tcd5_per = &HFFFF
  3.  Tcd5_cca = 10000
Pewnie coś ty pokręciłem, mógł by ktoś poprawić mnie w tej sprawie? :?
Awatar użytkownika
niveasoft
Posty: 1207
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Ustawienia początkowe Xmega32E5

Post autor: niveasoft » 16 lip 2019, 12:55

Nagrałem Tobie i innym filmik.
Po pierwsze w Bascom można zawsze najpierw poszukać w samplach i robi się to szybko OPEN->SAMPLE->XMEGA ....
Przykład niestety był na przerwaniach więc na filmie pokazałem jak najszybciej skonfigurować Timer i dowolne inne peryferium przy pomocy wbudowanych podpowiedzi Bascom (o których już zresztą pisałem). Klikasz CTRL + SPACE co każde słowo lub przecinek i masz gotowe podpowiedzi.
Na filmie widać też jak pomaga włączenie CodeExplorer. Po wklejeniu, Twój kod generuje od razu trzy ostrzeżenia. Mój kod wpisany "z palca" w minute już nie.
Jedynie podczas nagrywania ekranu nie działa mi chyba skrót CTRL+M i musiałem Twój kod zaremować ręcznie.

Ewentualny link do filmu na GoogleDrive : https://drive.google.com/open?id=1gJolB ... G-5KYHQ5RL
Najwyraźniej jest chyba na fullscreen bo inaczej skaluje i słabo widać.
[media]https://drive.google.com/file/d/1gJolBK ... HQ5RL/view[/media]

Miłego dalszego kodowania :P
ODPOWIEDZ