I've just received my Ameba RTL8195 and was trying to set it up (Win 10). I followed all steps on installing MBED serial port, arduino software and set the additional board manager URLs according to instructions.
One thing I noticed after these steps was that the board started disconnecting from USB. Pressing the bottom left reset button seemed to fix the issue (the SD folder reappeared) but every 20 seconds or so it was disconnecting again. I reset the board, restarted the pc, reinstalled MBED serial port, used different USB cable, different USB port etc. etc. but nothing seemed to work as it was still disconnecting.
In order to try and test the board itself, in the 20 second window I had between disconnections I uploaded the sweep() function for a Servo motor (MG90) with the AmebaServo library. The program was successfully uploaded but the servo performed only a small move when I attached the +5V cable (which is what usually happens when no program runs on the board). I double-checked with another board (DUE) and their respective libraries and the servo movement worked as expected. It's just seems that the program doesn't get executed at all in the RTL8195.
I think that these two problems are connected and that is why I included them in the same post. Any help on these issues would be highly appreciated.
Thank you for your feedback. Does the AmebaServo run well on Ameba now?
Apologies for the late answer. No unfortunately the board behavior is still erratic. It started to disconnect again after some normal operations. I repeated all steps and seemed to be fixed, but yet again the problem re-occurs after some time.
Now I was trying to control a breakout servo board via I2C. When I'm trying to upload Adafruit's servo example program (as noted in https://learn.adafruit.com/16-channel-pwm-servo-driver), I'm seeing for a brief moment a ram_all.bin file appearing in the Ameba's explorer window and when the upload is completed, the board restarts and the .bin is no longer there. The program doesn't seem to run correctly after that.
To be sure I run the same program in Arduino DUE with the motor shield and everything works OK.
Is this standard behavior?
p.s. I'm using the I2C channels in pin 12 and 13.
p.s.2. If it helps that's what I get in the serial monitor at the moment that I run the program in Ameba. The error at the end is generated when the pwm.setPWMFreq(60) command is executed to set the PWM frequency.
ROM Version: 0.3
Build ToolChain Version: gcc version 4.8.3 (Realtek ASDK-4.8.3p1 Build 2003)
Check boot type form eFuse
Image1 length: 0x36cc, Image Addr: 0x10000bc8
Image1 Validate OK, Going jump to Image1
Find the avaiable window
Baud:2; auto_length:0; Delay start:0; Delay end:63
===== Enter Image 1 ====
Find the avaiable window
Baud:1; auto_length:12; Delay start:0; Delay end:63
SDR Controller Init
Test 0: No match addr 0xc9d38 => 0xf != 0xc
Test 0: No match addr 0x1f7c10 => 0x5 != 0xa
load NEW fw 0
Flash Image2:Addr 0xb000, Len 34316, Load to SRAM 0x10006000
Image3 length: 0x2f48, Image3 Addr: 0x30000000
Img2 Sign: RTKWin, InfaStart @ 0x10006019
===== Enter Image 2 ====
16 channel Servo test!
requestFrom: readed=0, quantity=1 : ERROR
Uploading the program after disabling antivirus and restarting the board after the upload seemed to do the trick!
So the disconnection issue seems to be solved by updating the DAP firmware according to instructions found in (http://www.amebaiot.com/en/ameba-arduino-faq/#).
The non-executing program unfortunately persists. I tried to disable the antivirus (since I read in another post that some antivirus programs try to write code on the Ameba thus corrupting the uploaded program), the servo sweep program gets uploaded successfully via the Arduino IDE but still it doesn't seem to execute.
Do you might have any ideas on how to fix this?