View previous topic :: View next topic |
Author |
Message |
Duesentrieb72
Joined: 17 Feb 2006 Posts: 44
|
Posted: Fri Feb 27, 2015 10:19 am Post subject: DMA on ATXmega384C3 at 2.0.7.8.001 |
|
|
Hello
I use DMA to receive 6Byte over USARTD0 on ATXmega384C3
With compiler version 2.0.7.7 this works well:
Config Dmach0 = Enabled , Burstlen = 1 , Chanrpt = Disabled , Tci = Hi , Eil = Lo , Singleshot = Enabled , _
Sar = Burst , Sam = Fixed , Dar = Transaction , Dam = Inc , Trigger = &H6B , Btc = 6 , Repeat = 0 , Sadr = Varptr(usartd0_data) , Dadr = Varptr(fmcu_rx_buffer(1))
With new version 2.0.7.8 it doesn't work proper.
I receive 6Byte, first 2Byte are ok, but the last 4Byte are allways Zero
After long try and error I changed Trigger = &H6B to Trigger = Usartd0 and everything works like before.
Does anyone has an idear for this?
Thanks a lot,
Duesentrieb72
[b][color=red](BASCOM-AVR version : 2.0.7.8 )[/b][/color] |
|
Back to top |
|
|
albertsm
Joined: 09 Apr 2004 Posts: 5913 Location: Holland
|
Posted: Fri Feb 27, 2015 4:11 pm Post subject: |
|
|
that is really odd. because : when you use usartd0, &H6B will be used. And when you use a numeric value, the numeric value will be used. &H6B in this case.
I will check it to see if it really differs. _________________ Mark |
|
Back to top |
|
|
albertsm
Joined: 09 Apr 2004 Posts: 5913 Location: Holland
|
Posted: Fri Feb 27, 2015 4:40 pm Post subject: |
|
|
I checked. Maybe you changed more? Because in both cases, i get the same binary file. _________________ Mark |
|
Back to top |
|
|
Duesentrieb72
Joined: 17 Feb 2006 Posts: 44
|
Posted: Fri Feb 27, 2015 4:50 pm Post subject: |
|
|
Hi Mark
Configuration für Bascom Compiler 2.0.7.7
Config Dmach0 = Enabled , Burstlen = 1 , Chanrpt = Disabled , Tci = Hi , Eil = Lo , Singleshot = Enabled , _
Sar = Burst , Sam = Fixed , Dar = Transaction , Dam = Inc , Trigger = &H6B , Btc = 6 , Repeat = 0 , Sadr = Varptr(usartd0_data) , Dadr = Varptr(fmcu_rx_buffer(1))
Configuration für Bascom Compiler 2.0.7.8
Config Dmach0 = Enabled , Burstlen = 1 , Chanrpt = Disabled , Ctr = Enabled , Singleshot = Enabled , Tci = Hi , Eil = Off , _
Sar = Burst , Sam = Fixed , Dar = Transaction , Dam = Inc , Trigger = Usartd0 , Btc = 6 , Repeat = 0 , Sadr = Varptr(usartd0_data) , Dadr = Varptr(fmcu_rx_buffer(1))
The rest of code is exact the same... |
|
Back to top |
|
|
albertsm
Joined: 09 Apr 2004 Posts: 5913 Location: Holland
|
Posted: Fri Feb 27, 2015 9:57 pm Post subject: |
|
|
I had a look at 2077 vs 2078 but it creates the same code. Please make a small but complete sample that can be tested for 2077 that works, but does not work in 2078.
The dat file has changed in 2078 but it fixed the last entry of the interrupt table. It is not related to DMA.
In your sample i see that EIL=Lo but also OFF. _________________ Mark |
|
Back to top |
|
|
Duesentrieb72
Joined: 17 Feb 2006 Posts: 44
|
Posted: Mon Mar 02, 2015 10:15 am Post subject: |
|
|
>In your sample i see that EIL=Lo but also OFF
Yes, I tried a lot and I left this. I changed to "Lo" and it runs too.
Now, there comes a miracle...
I even changed just for fun back to complete old configuration and it runs too
I'm sorry. I can't tell you, what happend.
I really changed to new compiler version only and it doesn't run.
I only changed in DAM configation, because I could see on scope correct UART signals.
I changed from "Trigger = &H6B" to "Trigger = Usartd0" and it run.
Now, I changed back and it runs too
So thanks for your kindly support,
Duesentrieb72 |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You cannot download files in this forum
|
|