-
Notifications
You must be signed in to change notification settings - Fork 145
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AVR32 support #1882
Comments
Previously the idea is to forget about AVR32 support as it is not popular. |
That makes sense. The If the concern is about testing hardware, we have plenty that is using the If the official plan is to completely remove AVR32 support, then I would suggest to rip out as many mentions as possible (i.e. the Regardless. How do I add a new MCU when I can't run the |
avrdude has a distinct focus on 8-bit AVR. The one 32-bit I don't think the current maintainers have
We probably can get away not assigning an If it turns out there is no easy way to resurrect |
We have a handful of products (for the curious, this is one of them) that is using I have talked to my boss about this, and we (sadly) don't have the resources available to lift additional maintenance tasks on this. The plan is to continue to use the official (outdated, and frankly quite buggy) If any future historians are reading this conversation, you can download the
You may close this issue and mark as Regardless, I think it would be a good idea for avrdude to remove the avrdude -c dragon_jtag -p uc3a0512 -t -vvvl error.log
# then just ctrl+d to exit terminal mode It seems that it produces the same error. So it looks like it would make a lot of sense to just remove the config entry. As an aside, I have used avrdude on 8-bit AVR on other unrelated projects, and it has been an absolute joy to use. |
Thanks for the error.log @sillydan1 Although it shows an error it doesn't look like the error is fatal. The bleeding edge avrdude built from git main might show a warning (probably not even that) but certainly not an error. Can you try reading/writing to that part, say by writing a simple .hex file to flash memory ( |
Any updates on the suggestion from Stefan? Thanks. |
Thanks for the ping! We decided to write our own specialized tool instead and I kinda forgot about this thread, sorry. This also means I can only do this in my free-time. It seems that I unplugged my device on my desk, so I can't do the test today. I will set a reminder to do it tomorrow. |
Using the latest commit on avrdude -c dragon_jtag -p uc3c0512c -U flash:r:file.hex:I -vvvl error.log Only changes is my chip config. $ git diff
diff --git a/src/avrdude.conf.in b/src/avrdude.conf.in
index b9688c35..ca674b68 100644
--- a/src/avrdude.conf.in
+++ b/src/avrdude.conf.in
@@ -20968,6 +20968,28 @@ part parent ".avr8x_mega" # m4809
;
;
+#------------------------------------------------------------
+# AVR32UC3C0512C
+#------------------------------------------------------------
+
+part # uc3c0512c
+ desc = "AT32UC3C0512C";
+ id = "uc3c0512c";
+ variants =
+ "AT32UC3C0512C-ALUR: LQFP144, Fmax=66 MHz, T=[-40 C, 85 C], Vcc=[1.65 V, 3.6 V]",
+ "AT32UC3C0512C-ALUT: LQFP144, Fmax=66 MHz, T=[-40 C, 85 C], Vcc=[1.65 V, 3.6 V]";
+ prog_modes = PM_AVR32JTAG | PM_aWire;
+ signature = 0x00 0x00 0x3f;
+
+ memory "flash"
+ paged = yes;
+ offset = 0x80000000;
+ size = 0x00080000;
+ page_size = 128;
+ num_pages = 1024;
+ ;
+;
+
#------------------------------------------------------------
# AVR-Dx family common values
#------------------------------------------------------------ I just built the project using I havent tried writing, as it I don't want to risk bricking my device. |
Then rename the application in avr8dude, so as not to deceive users. The AVR family is not limited to 8-bit controllers |
Thanks for testing @sillydan1! I am pretty sure the flash page size is wrong: it must be 512 bytes not 128 bytes. See data sheet: A word here means 4 bytes, of course. I also recommend adding Please could you try again with a corrected avrdude.conf entry? This will decide whether to change the unconfirmed label to bug. |
Nicely spotted! It still seems to not work though. diff --git a/src/avrdude.conf.in b/src/avrdude.conf.in
index b9688c35..7615c7bf 100644
--- a/src/avrdude.conf.in
+++ b/src/avrdude.conf.in
@@ -20968,6 +20968,28 @@ part parent ".avr8x_mega" # m4809
;
;
+#------------------------------------------------------------
+# AVR32UC3C0512C
+#------------------------------------------------------------
+
+part # uc3c0512c
+ desc = "AT32UC3C0512C";
+ id = "uc3c0512c";
+ variants =
+ "AT32UC3C0512C-ALUR: LQFP144, Fmax=66 MHz, T=[-40 C, 85 C], Vcc=[1.65 V, 3.6 V]",
+ "AT32UC3C0512C-ALUT: LQFP144, Fmax=66 MHz, T=[-40 C, 85 C], Vcc=[1.65 V, 3.6 V]";
+ prog_modes = PM_AVR32JTAG | PM_aWire;
+ signature = 0x00 0x00 0x3f;
+
+ memory "flash"
+ paged = yes;
+ offset = 0x80000000;
+ size = 0x00080000;
+ page_size = 512;
+ num_pages = 1024;
+ ;
+;
+
#------------------------------------------------------------
# AVR-Dx family common values
#------------------------------------------------------------ |
@sillydan1 OK, the avrdude messages are |
These are things that I would expect the Dragon programmer to worry about (though that wouldn't have the agency to unsolder stabilizing caps from the reset line :). avrdude claims there are other programmers that can deal with UC3 parts
Maybe more luck with some of these? |
Or try enabling the JTAGEN fuse first using another system? |
We sadly only have the AVRDragon programmer available (plenty of Digilent HS3's, but they dont seem to be AVR32JTAG compatible according to your list) I thought I saw an atmelice some weeks ago, but I can't find it currently. The JTAGEN fuse is very likely to be enabled, as the internal tool that we built can drive the jtag no problem. Could it be that the magic initialization sequence (the screenshot from before) is not being performed? |
Would that not be done by the Dragon programmer as opposed to AVRDUDE? |
I dont think so, but on the other hand, I also dont know so either. The official |
I am trying to add a new MCU to the list of supported parts. Specifically, I am trying to add the
AT32UC3C0512C
MCU, which is (sorta) similar to theAT32UC3A0512
which is already in the default config, so I (perhaps naively) assume that it should be somewhat straight forward to add. However, when I try to use my initial config, I get an error:Doing some digging, it seems that the culprit is a lookup in an autogenerated table in
avrintel.c
. However, it seems that the autogeneratedavrintel.c
file is not being updated on compilation. According to the comment, these files are autogenerated by the perl script calledmkavrintel.pl
, but during my research, I found this and this comment which indicate that the script is simply not available, and doesn't seem to ever will be.If this is the case, I am left to wonder:
How do I even add a new MCU, when the script that is required to use is not available?
Personally, I don't mind unreadable code, so publishing a required, but messy perl script is astronomically better than leaving it as "an exercise for the reader", so to speak.
P.S.
I noticed that the
AT32UC3A0512
MCU is not in the autogenerated table either. Is this on purpose?P.P.S.
For the curious, my initial config is (obviously not working yet):
I am using an AVRDragon as my programmer, and yes, I have a good, solid connection.
The text was updated successfully, but these errors were encountered: