Can I run my C8051F320/1 code on the C8051F34x directly? What differences should I be aware of?
The C8051F34x family will run most code written for the C8051F320/1 devices without any modification. However, there are a number of differences which should be considered when porting code. Consult the datasheet for the device for more details on the following differences:
1) The pin configuration of the 32-pin TQFP versions of the C8051F34x is identical to the C8051F320, but the 48-pin TQFP versions do have some differences. Most special function pins and ADC or Comparator Mux settings pin out to different locations on the 48-pin TQFP C8051F34x devices.
2) Due to the larger code size on the C8051F34x devices, the Security Lock Byte is located in a different part of Flash memory.
3) The USB FIFO RAM on the C8051F34x family is not always accessible through MOVX instructions. If it is necessary to access the USB FIFO RAM using MOVX instructions, the USBFAE bit in register EMI0CF provides MOVX access.
4) The C8051F34x family contains a prefetch engine, which requires one additional clock cycle any time a program branch occurs.
5) UART1 is an additional interrupt source on some versions of the C8051F34x family. If using a version of the USBXpress library targeted at the C8051F320 devices, the UART1 interrupt should not be enabled, as it will interfere with the library. If UART1 interrupts are required in the system, it is necessary to upgrade to the latest version of USBXpress for the C8051F34x.
6) When writing to Flash on the C8051F34x family, the VDD monitor must be enabled. If the VDD monitor is not enabled before writing to Flash, a Flash Error Reset will occur on the C8051F34x family.