Go Down

Topic: Arduino Due Parallel Data Sending Out on Port D (Read 87 times) previous topic - next topic

Lolenlol

I'm working on a project that involves 8 Inch Floppys. I am making a 8 Inch Floppy emulator. Therefor I need to make a FM signal. I want to use a shift register and send the bytes parallel to the shift register. This would be fine, but.... The Arduino Due works differently than others like the Uno and Nano that I worked with. If I wanted to send data parallel out, I could use "PortD = temp". in this case, this isn't an option. Because its a ARM processor, it uses special command lines and registers that I don't know how to use properly. I tried to make it work, but Arduino didn't reconise any register I wanted to use.

Code: [Select]
for (int ii = 0; ii <= 7; ii++) {
      if (c[y] & (B10000000 >> ii)) {
         digitalWrite(myPins[ii],HIGH);
      }else{
        digitalWrite(myPins[ii],LOW);
      }


I know that there are other ways of sending data parallel, but it's too slow. for example: I got the code below from someone (don't remember who) and it works. the problem is that this methode is way to slow to send data. The fastest I can get with this methode is 11,25 kBps I need to send data serial at 250 kbps

I know that there are two ways. the first is to change the digitalwrite code and make it faster, but I don't know how and the second is to use Assembly code. This way the proces is as fast as possibly. I prefere to use Assembly.

http://www.atmel.com/Images/Atmel-11057-32-bit-Cortex-M3-Microcontroller-SAM3X-SAM3A_Datasheet.pdf

This is the datasheet of the SAM3x8E. on page 621 is the  I/O Line Control Logic.
On page 631 is the Register Mapping.
You will need both if you are willing to help me.
I found some information that i MIGHT need.
- Peripheral A output enable
- peripheral A output
- Pio_ABSR

I hope someone is able to help me with this problem.

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy