i pressed the button "connect", but did not press the "transmit", i always detected waves on D+ and D- using my logic analyzer, after a few minuts, i think the usb bus should be idle and there should not always have the signal been detected, is this normal ? can anyone explain this for me ?, thanks. (ps: when i pressed the "disconnect", no waves were detected anymore )
I ported an old SiLabs IDE project over to Simplicity Studio but got lots of warning messages when I tried to write interrupt routines. I've tried both the old format
void name( void ) interrupt vector
and the new format
INTERRUPT( name, vector )
but get yellow underline warnings. Each time I get 'unused declaration', 'syntax error' and 'missing semicolon'. The code compiles with zero warnings and zero errors, and even downloads, but doesn't run properly.
Can anyone tell me how to get rid of the warnings? What am I doing wrong?
Hello my friends,
I need help to confirm the logical level of the GPIOs during the reset delay from POR time.
It seems to me that the pins remain as output and logic level 1.
I would like it to be 0 or Hiz, because the time from 1 to initialization is too long (according typically 10ms).
Where can I find the carrier tape information & specifications for Silicon Labs?
I need a lot information of different package to set up at my feeder machine. Could you pls provide me a general PDF file for all the types of packages?
MPN which need carrier tape full information.
I'm currently developing for the 8051F970. I'm looking to use/create a UART Bootloader to allow firmware updates.
I have found references to a UART bootloader:-
and a previous question
I modified the code and have come across a number of issues.
I find I am able to downloads the data using the UART to the chip, however when writing the memory to XDATA, the write fails. XDATA must be used since the amount of data is 512 bytes which exceeds the available IDATA space,. Using the debugger, I can see the received data is correct, however it fails to update the buffer which uses XDATA. The buffer is declared as a SEGMENT_VARIABLE(***,SIZE, SEG_XDATA).
At the moment I am investigating the cause:-
Possibilities that come to mind:-
1 The movx instruction (This allow data to be written to XDATA and Flash, perhaps I need to configure this?)
2 The memory model :- I am currently using the small memory model, however changing the model does not seem to fix the problem.
i am confused about how the uart is interrupted, i mean, how the data in the UART_OUTPUT array get into the SBUF0 if there is no cable connection between Rx and usb physically. there should be some data in the SBUF0 before the MCU gets into interrupt handler , right ? i want to know why the code SBUF0 = UART_OUTPUT[UART_OUTPUT_LAST] in the interrupt handler exists, can anyone explain this for me ?
I'm writing a test python scripts to test my code working with zm5101. I already successed writing flash with excluding bytes with magic value 0xFF. But to be sure, that this code is programmed succesfully, I have to generate CRC and run Check CRC on zwave MCU.
In documentation nr. INS11681-11.pdf chapter 7.14 there is an python example how to calculate CRC and write it to hex file. Unfortunatelly simple copy/paste won't work with python3 and new lib IntelHex. The most reason is that 'h.tobinstr' is no longer with 4 parameters and I don't know why, but in line:
b = b+reverseBit(struct.pack("<I",crc));
the python is telling that value will not fit with format 'I' (Intiger).
Could you tell me what to change in code and also update the document to be compatybile with newest libs versions?
Also, what is the meaning of setting file length like that: 128*1024-4
What those individual numbers are?
Digikey shows the C8051F80x family as obsolete but I did not see anything about on the Silabs web site.
I have been using this chip for a while, being the only 16 pin SOIC package available (with 16k of flash), it is very convenient for some things.
Is the chip going to be available, or is it going away?
I am just starting to use SiLabs chips. My target MCU are the EFM8BB series chips.
Please point to some comprehensive tutorials and manuals so I can get a complete picture on all aspects of hardware, programming and debugging for the EFM8BB series chips.
Also, can I use the TOOLSTICKDA tool stick to program and debug EFM8BB1/2/3 chips on my custom board and/or the older SiLabs 8051 series? Or I have to use the UDA?
I haven't purchased the UDA or any toolstick yet.
I had my USB debug adapter working fine with a Laser Bee using Keil U4 and SSv3, but I am trying to use a EFM8UB3 and that part isn't listed on the older versions. Long story short, I uninstalled everything to do with SiLabs and Keil, deleted their directories, then installed freshly downloaded copies of each including a new Keil license because the previous one had expired.
Now with the new SSv4, the EFM8UB3 part comes up and I can compile and run the Blinky sample program on my custom hardware using the SiLabs USB Debug adapter.
HOWEVER, when I try to do the same using Keil, it says "ERROR Flash Erase Failed".
I downloaded and installed the SiLabs Keil debug driver and selected it the same way I did with the older versions. I made sure it put the USBHID.DLL file in the Keil_v5/UV4 directory and also created a UV5/bin and copied in there as well.
On keil, the SiLabs custom part database is required or I get "Invalid License" errors. However, there are no EFM8UB3 parts listed. I had to select a UB1 part and change the name and add it to the database myself.
I prefer to use Keil for development because SSv3 and SSv4 both have too many Windows 7 Blue Screen of Death episodes.
Does anybody know how to get the debug adapter to work in the latest Keil using EFM8UB3 parts?
I just baught the UDA to program my card, so it worked fine at first, then now it is not.
The power light is turned ON, but the Rev/Stop light is turned of.
In control panel i can see it, but in SS, it is not detected.
I read all threds here, there are many threds say: must use USB_Reset8utility.exe so i tried to connect my UDA, but it does not detect it.
How can i resolve this problem ? it's been three days since i baught the UDA.
i want to do a transfer device(ps/2 to usb) using c8051f320, but i do not know how the app like notepad++ in the computer can recognize the value i send through the usb. can anyone send me a sample ? thank you.
Hello all, and happy Independence Day to those in the USA.
I'm implementing a project with the BB1/BB2 families at present, using the C51 compiler.
Part of this project involves code compression so we can work with the cheaper BB1 family.
To help with the compression, I'm using the compiler option to generate assembler code in the listing files. However, the generated assembler is listed AFTER the annotated source code. Normally, this assembler is annotated with line numbers to provide some reference. Unfortunately, one of my bigger source files uses #includes to optionally bring in other chunks of code for specific variants. When I do that, the generated assembler is not annotated in a particularly user-friendly way. Correction: It does put in the line references, but they're less meaningful in this case because of the #included code.
I see lines similar to the following:
; FUNCTION Com0116 (BEGIN) 0000 L?0279: 0000 E500 R MOV A,sWorkflowData+02FH 0002 L?0280: 0002 25E0 ADD A,ACC 0004 25E0 ADD A,ACC 0006 2400 E ADD A,#LOW g_Sensors 0008 F582 MOV DPL,A 000A E4 CLR A 000B 3400 E ADDC A,#HIGH g_Sensors 000D F583 MOV DPH,A 000F E4 CLR A 0010 93 MOVC A,@A+DPTR 0011 75F006 MOV B,#06H 0014 A4 MUL AB 0015 2400 E ADD A,#LOW g_MuxLedAssignments+05H 0017 F582 MOV DPL,A 0019 E4 CLR A 001A 3400 E ADDC A,#HIGH g_MuxLedAssignments+05H 001C F583 MOV DPH,A 001E E4 CLR A 001F 93 MOVC A,@A+DPTR 0020 22 RET 0021 L?0281: 0021 ED MOV A,R5 0022 75F00C MOV B,#0CH 0025 A4 MUL AB 0026 2400 R ADD A,#LOW g_dataCollection+03EH 0028 F582 MOV DPL,A 002A E4 CLR A 002B 3400 R ADDC A,#HIGH g_dataCollection+03EH 002D L?0282: 002D F583 MOV DPH,A 002F E500 R MOV A,sWorkflowData+02FH 0031 L?0283: 0031 75F002 MOV B,#02H 0034 020000 E LJMP ?C?OFFXADD
Note that I don't have a function with the "helpful" name of Com0116. I can't find any function that performs that operation alone, either. My guess is that this is a common code fragment generated by the optimiser.
Ideally, I'd love to see the assembler interleaved with the code. I've found the Keil page that talks about the --interleave option for its compilers, but this only seems to apply to the ARM compiler: It gives an error on C51. Is there a similar option available for the C51 compiler?
I have an issue:
I connect the Reed Sensor to Input Pin of EFMSB1 MCU. To reduce the Weak Pull Up current in Sleep Mode, I disabled the Weak Pull Up resistor, connect all of Input Pin to 1M external Pull up resistor, set unconnected Pin as Output. But the total current is increased ~100uA when Reed Sensor is triggered and Input Pin goes to ground. I read the Datasheet, and found that have the Input Leakage when weak pullup disabled.
My question: how to setup Input Pin to reduce the Input leakage? Or how to modify hardware schematic?