基于AM335x SDK6.0去掉EEPROM
PIC清除EEPROM的操作说明
关于LV项目清除融FUSE标志的操作说明
首先要有一个PIC的IDE工具,我们这里以MPLAB IDE v8.84为例(同类型的IDE工具类似),进行介绍:
1.第一步把MPLAB配置成正常烧录代码的样子(确认可以烧录代码),pick3与电池包板的
连接方式和正常烧录代码一样
2.配置IDE工具为对EEPROM的操作。
只把EEPROM前的方框选为√,其他方框为空白。
3.接着PIC16F1936的EEPROM界面打开。
第一次打开的EEPROM如上图所示。
4.最后一步就是读出PIC16F1936中EEPROM中的内容,修改完之后,在写入EEPROM中。
有融FUSE电池包板在上图红色圆圈所示的数字不是0x00或者0xFF,正常的是0x00或者0xFF
用鼠标选中EEPROM中融FUSE标志位,修改其中的数字为00或者FF,然后在点击烧录,完成后就清除了工具板中关于融FUSE的标志位。
AM335x 处理器 SDK RTOS 板库端口和启动说明书
Board Porting\Bring up using Processor SDK RTOS for AM335xProcessor SDK RTOS component known as board library consolidates all the board-specific information so that all the modifications made when moving to a new custom platform using the SOC can be made in the source of this library.There are three different components in PRSDK that help in porting and bring up of a custom board:∙Board library updatesa.PLL Clocking and PRCMb.Pin mux Updatec.DDR Configurationd.Peripheral instances updates∙Diagnostics tests∙Boot loader updatesBoard Library Updates in Processor SDK RTOS:PLL ClockingThere are two places where the device PLL configurations are performed when using Processor SDK RTOS and CCS.Debug environment:Debug environment refers to development setup where code is debugged using JTAG emulator on the SOC. The PRSDK software relies on the GEL file that is part of the target configuration to setup the clocks and the DDR for the device. The CCS GEL file for AM335x platforms is located in the CCS package at the location ccsv7\ccs_base\emulation\boards\<boardName>For example for beagle bone black, the files can be found atccsv7\ccs_base\emulation\boards\beaglebone\gelThe GEL is the first piece of software that should be brought up on a custom board.Production environment:Production environment refers to the setup when the base application is booted from a boot media like a flash memory or host interface. In this environment, the bootloader sets performs all the SOC and board initialization and copies the application from flash memory to the device memory.The clock setup in the bootloader code can be located atpdk_am335x_x_x_x\packages\ti\starterware\bootloader\src\am335xUsers can choose to use the platform clocking similar to one of TI reference platforms or can modify them as per their application requirements. By default the PLL settings are setup for OPP_NOM settings (MPU= 600 MHz.)TI provides Clock Tree tool to allow users to simulate the clocking on the SOC. For quick reference of the multiplier and divider settings to change the PLL setting is provided in the spreadsheetAM335x_DPLL_CALCv3.xlsx.After modifying the clocking in the bootloader, users need to rebuild the bootloader using instructions provided in Processor_SDK_RTOS_BOOT_AM335x/AM437xPRCM Modules Enable:PRCM Module Enable is required to turn on the power domain and the clocking to each of the modules on the SOC. The PRCM Enable calls to enable each module are made from the functionBoard_moduleClockInit which is found in the location.pdk_am335x_1_0_9\packages\ti\board\src\bbbAM335x\bbbAM335x.cCheck every instance and peripheral required in the application platform and enable the module in the board library.For example to use three UARTs 0, 1 and 4, ensure that you have the following code as part of the board library setup:/* UART */status = PRCMModuleEnable(CHIPDB_MOD_ID_UART, 0U, 0U);status = PRCMModuleEnable(CHIPDB_MOD_ID_UART, 1U, 0U);status = PRCMModuleEnable(CHIPDB_MOD_ID_UART, 4U, 0U);Note: PRCMEnable function is defined in pdk_am335x_1_0_9\packages\ti\starterware\soc\am335x Pinmux updates in the Board library:Generating a New PinMux Configuration Using the PinMux Utility: This procedure uses the cloud-based pinmux utilityNavigate to ${PDK_INSTALL_DIR}\packages\ti\starterware\tools\pinmux_config\am335x and Load beaglebone_black_configAdd and remove peripheral instances and select the appropriate use cases required for development based on the application platform requirements and resolve all conflicts.Refer Pin_Mux_Utility_for_ARM_MPU_ProcessorsPost Processing steps:1.Change the Category filter to starterware and download the pinmux files am335x_pimnmux.hand am335x_pinmux_data.c2.At the bottom of am335x_pinmux.h change extern pinmuxBoardCfg_t gAM335xPinmuxData[];to extern pinmuxBoardCfg_t gBbbPinmuxData[];3.Change am335x_pinmux_data.c to am335x_beagleboneblack_pinmux_data.c.4.Change gAM335xPinmuxData to gBbbPinmuxData at the end of the file in file5.am335x_beagleboneblack_pinmux_data.c.Replace the existing files with the new files and rebuild the board library using the instructions in the section Rebuilding board Library in Processor SDK RTOS:Updating DDR settings:Similar to clock and PLL settings, DDR initialization is configured in the Debug environment through GEL files and in production environment using bootloader source files.TI provides AM335x_EMIF_Configuration_tips which contains a spreadsheet to enter the timing from the DDR datasheet to compute the EMIF timing number required to initialize DDR.We strongly recommend changing the value and testing using GEL files before using them in the bootloader software. For Sanity test, you can perform read/write tests using CCS Memory Browser or run the diagnostic memory read/write test that we provide in diagnostics package here:PDK_INSTALL_PATH\packages\ti\board\diag\memOnce the DDR timings have been confirmed, you can use the settings in the file:PDK_INSTALL_PATH \packages\ti\starterware\bootloader\src\am335x\sbl_am335x_platform_ddr.c Peripheral initialization:The board library is responsible for most of the SOC initialization but it also setup some board level components such as ethernet PHY and debug UART and I2C for reading board ID from EEPROM. All of the other peripheral instances and initialization needs to be done from the application level.For example for beagleboneblack, the peripheral initialization are performed from the source filepdk_am335x_1_0_9\packages\ti\board\src\bbbAM335x\bbbAM335x_lld_init.cThe debug UART instance, I2C Addresses are set using the file board_cfg.h found under:pdk_am335x_1_0_9\packages\ti\board\src\bbbAM335x\includeDefault UART instance is set to 0 in the board library. The Board initialization will configure the UART instance 0 to send binary log data to serial console using the Board_UARTInit function. If you wish to use more UART instances then we recommend linking in the UART driver in the application and using UART_open() and UART_stdioInit API calls from the application.Each peripheral driver in the Processor SDK RTOS has a SOC configuration that provides the interrupt numbers, base address, EDMA channels which can be updated using the file <peripheral>_soc.c file. This is used as default setup for initializing the driver instance. It can be overridden from the application using peripheral_getSOCInitCfg() and peripheral_setSOCInitCfg()For Example: All instances of UART for AM335x have been mapped in the filepdk_am335x_1_0_9\packages\ti\drv\uart\soc\am335x\UART_soc.cSystem integrators need to ensure that no interrupt numbers and EDMA resource conflicts exist in the SOC configuration for all drivers used in the system.To exercise three UARTs in the system, users can use the following code://Setup Debug UARTboardCfg = BOARD_INIT_PINMUX_CONFIG |BOARD_INIT_MODULE_CLOCK |BOARD_INIT_UART_STDIO;Board_init(boardCfg);// Open Additional UART Instances:/* UART SoC init configuration */UART_initConfig(false);/* Initialize the default configuration params. */UART_Params_init(&uartParams);// Open UART Instance 1uartTestInstance =1;uart1 = UART_open(uartTestInstance, &uartParams);//Open UART Instance 4uartTestInstance = 4;uart4 = UART_open(uartTestInstance, &uartParams);BoardID Detect:TI supports multiple evaluation and reference platforms for AM335x hence the hardware platforms are populated with an EEPROM which contains information that identifies the hardware and its revision. The board library and software components read the boardID and initialize the platform based on the boardID. The BoardID_detect function can be found in the source in the file bbbAM335x_info.c in the board library and board_am335x.c in the bootloader source at:<PDK_INSTALL_PATH>\packages\ti\starterware\board\am335xRebuilding board Library in Processor SDK RTOS:While Creating a new folder for the custom board is an option users can explore, TI recommends that users make there changes in existing board package using either bbbAM335x, evmAM335x oriceAM335x folder to avoid spending additional effort to modify the build files for including the customBord.Once all the update to the board library are completed, the board library can be updated using the following instructions.Instructions to rebuild board library:Setup Processor SDK build environment before following steps provided below.cd pdk_am335x_1_0_9\packagesgmake board_libFor a specific board users are required to provide the LIMIT_BOARDS argument.LIMIT_BOARDS : evmAM335x icev2AM335x iceAMIC110 bbbAM335x skAM335xFor Example for beagleboneblack, users can use the following build option:gmake board_lib LIMIT_BOARDS=bbbAM335xDiagnostics:After the board library is built, we highly recommend that you create a diagnostics package similar to one provided in board library to test different interfaces functionally during board bring up.The diagnostics package can be located at pdk_am335x_1_0_9\packages\ti\board\diag. These are simple bare-metal tests that use peripheral drivers to help functionally validate the pins and interfaces.Documentation for all available diagnostic tests is provided here:/index.php/Processor_SDK_RTOS_DIAGBootloader in Processor SDK RTOS:As part of the production flow, users are required to develop/port flashing and booting utilities so the application can be launched on the custom board with JTAG. TI provides a bootloader mechanism where the ROM bootloader loads a secondary bootloader on the onchip memory that initializes the SOC and DDR and then copies the application into DDR memory.The boot process and flashing tools have been described in detail in the following article that is part of processor SDK RTOS Software developer`s guide:/index.php/Processor_SDK_RTOS_BOOT_AM335x/AM437x#Building_the_B ootloader。
盈鹏飞嵌入式_AM335XGPMC使用总结
盈鹏飞嵌入式_AM335XGPMC使用总结AM335X GPMC使用比较灵活,可以配置为● 8-bit 同步或者异步并行总线 (非burst)● 16-bit 同步或者异步并行中线● 16-bit 非复用的NOR Flash● 16-bit 数据和地址总线复用的NOR Flash● 8-bit 和 16-bit NAND Flash● 16-bit pSRAM.下面以EVB335X扩展EXAR ST16C554为例,讲解如何配置GPMC。
1. 配置GPMC引脚static struct pinmux_config gpmc_pin_mux[] = {/********* 8-bit data bus **************/{"gpmc_ad0.gpmc_ad0", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},{"gpmc_ad1.gpmc_ad1", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},{"gpmc_ad2.gpmc_ad2", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},{"gpmc_ad3.gpmc_ad3", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},{"gpmc_ad4.gpmc_ad4", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},{"gpmc_ad5.gpmc_ad5", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},{"gpmc_ad6.gpmc_ad6", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},{"gpmc_ad7.gpmc_ad7", OMAP_MUX_MODE0 |AM33XX_PIN_INPUT_PULLUP},/**************** 8-bit address bus ****************/{"gpmc_a0.gpmc_a0", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},{"gpmc_a1.gpmc_a1", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},{"gpmc_a2.gpmc_a2", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},{"gpmc_a3.gpmc_a3", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},{"gpmc_a4.gpmc_a4", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},{"gpmc_a5.gpmc_a5", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},{"gpmc_a6.gpmc_a6", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},{"gpmc_a7.gpmc_a7", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},{"gpmc_csn2.gpmc_csn2", OMAP_MUX_MODE0 | AM33XX_PULL_DISA},{"gpmc_oen_ren.gpmc_oen_ren", OMAP_MUX_MODE0 | AM33XX_PULL_DISA},{"gpmc_wen.gpmc_wen", OMAP_MUX_MODE0 | AM33XX_PULL_DISA},{NULL, 0},};setup_pin_mux(gpmc_pin_mux);2. 申请GPMC内存unsigned long serial_gpmc_mem_base_phys;int cs = 2; /* EVB335X评估板中ST16C554接在CS2上 */gpmc_cs_request(cs, SZ_16M, &serial_gpmc_mem_base_phys)此时serial_gpmc_mem_base_phys存放的是该CS上多对应的物理起始地址。
AM335XGPIO详解
AM335XGPIO详解1、配置GPIO1的时钟CM_PER RegistersCM_PER_GPIO1_CLKCTRL该寄存器管理GPIO1时钟。
OPTFCLKEN_GPIO_1_GDBCLK 可选功能时钟控制0X0 = FCLK_DIS :可选功能的时钟被禁止0x1 = FCLK_EN :可选功能时钟使能IDLEST 模块为空闲状态0X0 =函数功能:模块功能齐全,包括OCP0x1 =反:模块进行转换:唤醒或休眠,或睡眠流产0X2 =空闲:模块处于空闲模式(仅OCP部分)。
它是功能,如果使用独立的时钟功能0x3的=禁止:禁止模块,不能访问CM_PER_L4LS_CLKSTCTRL该寄存器使能域功率状态转换。
它控制着SW监督时钟域状态ON- PER和ON- INPER状态之间的转换。
它也认为每个时钟输入1个状态位域。
CLKACTIVITY_GPIO_1_GDBCLK 该字段表示在该GPIO1_GDBCLK时钟的状态域。
0X0 = INACT :对应的时钟门控0x1 =ACT:通讯时钟有效2、配置GPIO端口功能CONTROL_MODULE Registersconf_gpmc_a0-a11 设置内部上拉和管脚传输速率:快或慢3、重启GPIO模块GPIO_SYSCONFIG 寄存器1 SOFTRESET R/W Software reset.This bit is automatically reset by the hardware. During reads, it always returns 0.0x0 = Normal mode0x1 = The module is rese软件复位。
该位由硬件自动复位。
在读取时,它总是返回0 。
0X0 =普通模式为0x1 =该模块复位4、设置GPIO方向GPIO_OE[0-31] 寄存器输出数据使能0X0 =相应的GPIO端口被配置为输出。
0x1 =相应的GPIO端口配置为输入。
AM335x的网口启动及Flash烧写用户指南
AM335x的网口启动及Flash烧写用户指南概述:鉴于AM335x可以通过网口启动的方式将MLO,u-boot.img,kernel通过TFTP的方式下载至开发板,并可通过NFS的方式完成文件系统的挂载,因此,对最小系统板而言,仅需网口便可完成整个Linux的启动。
本文基于网口的启动方式,对网口启动的操作流程进行描述,并着重介绍了如何使用网口启动方式进行flash的烧写。
由于使用该方式进行flash烧写的操作是在UBoot环境中以脚本的方式实现,因此,用户可自定义具体的操作流程,灵活性较好。
PC环境:主机: Windows 7虚拟机: Virtual Box(version 4.1.12), Ubuntu 10.04.Linux SDK版本: 06.00.00.00AM335x开发板平台:GPEVM.网口启动配置流程:1.在Ubuntu中安装TFTP服务和NFS服务,确保可以正常TFTP download和挂载NFS。
(网上关于如何TFTP kernel以及挂载NFS的资料较多,因此,本文主要针对MLO(SPL)和u-boot阶段的设计进行描述,对kernel和NFS的加载操作将不再赘述)。
本示例中,TFTP目录为”/tftpboot”,NFS目录为”/nfs_share”。
2.在Ubuntu中进行DHCP服务的安装和配置:本示例中,通过以下步骤将本机建成主机IP为192.168.1.1的服务器,地址空间为192.168.1.100至192.168.1.199。
a.使用root账户登录Ubuntu,使用该命令进行DHCP服务的安装:apt-get install dhcp3-server(本文中粗斜体为命令行输入内容,下同)b.增加dhcp服务的网卡端口(本例中使用的网口为eth0)。
安装完成后,进入/etc/default目录,修改dhcp3-server文件:i.vim /etc/default/dhcp3-serverii.在INTERFACES=””的参数中增加eth0iii.保存后退出.c.增加地址空间定义。
AM335x Flash Tool -- UniFlash 烧写工具使用简介及问题解决方案汇总
AM335x Flash Tool -- UniFlash 烧写工具使用简介及问题解决方案汇总大家好,目前很多人都在关注AM335x flash tool(UniFlash)的进展情况,这篇文章会对当前的进展情况进行汇总,并就客户使用过程中遇到的一些问题,给出了相应的解决方案。
目前的UniFlash官方发布的版本中,仅支持NAND FLASH的烧录,近期版本中将会更新对eMMC烧录功能的支持。
UniFlash的下载地址:/index.php/NowFlash%E2%84%A2_Programming_ToolUniFlash的主机端安装用户指南:/index.php/Sitara_Uniflash_Quick_Start_GuideUniFlash的image编译,脚本编译使用指南(Linux环境下):/index.php/Sitara_Linux_AM335x_Flash_Programming_Linux_Developmen t使用注意事项及问答:1.使用该Uniflash进行NAND FLASH烧写时,Uniflash会先将u-boot-spl-restore.bin和u-boot-restore.img下载到开发板中,启动开发板进入到UBOOT阶段,从而调用脚本文件进行FLASH的烧写,所以需要先对SDK6.0开发包进行UBOOT的移植。
移植时,一定要加入UBOOT 的patch:/index.php/Sitara_Linux_AM335x_Flash_Programming_Linux_Dev elopment#Build_SPL_.28MLO.29_and_U-Boot_for_Flashing2.请注意,制作用于NAND flash烧写的启动image时,确认使用的编译选项为:am335x_evm_restore_flash_usbspl3.在Uniflash进行u-boot-spl-restore.bin的下载时,如果出现usb网络反应超时,请确认是否已经安装我们的usb patch:0001-u-boot-Change-default-cdc_connect_timeout-to-15s.patch。
关于AM335系列的板卡和相关模块产品常见问题
关于AM335系列的板卡和相关模块产品常见问题最近有客户在使用OK335x系列开发板中遇到了一些问题,所以在这里简单地总结了几点常见问题和解决方案,在这里分享一下。
如果您手中正好有飞凌的AM335x系列板卡,请仔细阅读,可能目前困扰您的问题答案就在这里!一.关于OK335x系列开发板,启动时,调试串口循环打印CCCCC问题分析以下为打印信息:建议从两方面进行问题排查:(1)OK335x系列开发板启动方式有2种:SD卡、nand. 请检查是否设置的SD卡启动,但是没有插SD卡或者SD卡中无程序。
底板上的拨码开关要拨到相应位置,参考以下说明:1. SD 卡启动设置:直接拨到 On2. NandFlash 启动设置:直接拨到 Off注:On 代表拨到上方,Off 代表拨到下方(2)飞凌OK335x系列开发板DI8-13的引脚,是boot启动项相关引脚。
如果您这几个引脚上接的外设模块电平跟uboot(下拉)启动电平相反,也可能会影响启动。
可以排查下是否是这几个引脚导致。
(3)如果排查以上两点还未解决问题,请联系飞凌技术支持************!二.关于OK335x系列开发板启动时,串口打印信息出现:please contact forlinx问题分析。
以下为打印信息:建议从两方面进行问题排查:(1)FET335x系列核心板上有个加密芯片:DS2406,通过IIC 接的CPU,这个芯片用户不能使用,因为出厂时里面已经写入了飞凌的加密信息,只有飞凌系统可以使用。
uboot在启动过程中会取读取保存在DS2460里的密码。
验证不通过的时候,会在串口打印信息里提示“Contact Forlinx….”,这种情况一般是加密芯片里的密码丢了,也可能是出厂没有烧写加密芯片。
(2)除了加密芯片用了一路IIC接口,核心板还支持2路,有些用户需要接自己的IIC外设模块。
如果您把设备挂载到加密芯片的这路IIC上,地址出现冲突,这样也可能会有影响,出现“please contact forlinx”信息。
AM335x SD卡制作
AM335X SD卡制作step1:清空分区fdisk /dev/sdx (x为分配序号)命令(输入m 获取帮助):ostep2:设置H S C命令(输入m 获取帮助):x专家命令(输入m 显示帮助):h磁头数(1-256,默认为245):255专家命令(输入m 显示帮助):s扇区数(1-63,默认为62):63专家命令(输入m 显示帮助): c柱面数(1-1048576,默认为1021):480C=SD卡bytes/H/S/512step3:建立分区命令(输入m 获取帮助):nPartition type:p primary (0 primary, 0 extended, 4 free)e extendedSelect (default p): p分区号(1-4,默认为1):1起始sector (2048-15523839,默认为2048):2048Last sector, +扇区or +size{K,M,G} (2048-15523839,默认为15523839):+1G (大小自己定义)命令(输入m 获取帮助):nPartition type:p primary (1 primary, 0 extended, 3 free)e extendedSelect (default p): p分区号(1-4,默认为2): 2起始sector (12584960-15523839,默认为12584960):将使用默认值12584960Last sector, +扇区or +size{K,M,G} (12584960-15523839,默认为15523839):将使用默认值15523839step4:改变boot分区的系统id和设置boot分区为活动主分区命令(输入m 获取帮助):t分区号(1-4): 1Hex code (type L to list codes): cChanged system type of partition 1 to c (W95 FAT32 (LBA))命令(输入m 获取帮助): a分区号(1-4): 1命令(输入m 获取帮助):pDisk /dev/sdd: 7948 MB, 7948206080 bytes255 heads, 63 sectors/track, 966 cylinders, total 15523840 sectorsUnits = 扇区of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000设备启动起点终点块数Id 系统/dev/sdd1 * 2048 12584959 6291456 c W95 FAT32 (LBA) /dev/sdd2 12584960 15523839 1469440 83 Linux命令(输入m 获取帮助):wThe partition table has been altered!step5:分区格式化mkfs.vfat -F 32 -n boot /dev/sdx1mkfs.ext3 -L rootfs /dev/sdx2step6:拷贝MLO、u-boot.img、rootfilesystem。
飞凌嵌入式-AM335x Wince软件手册
第 CE软件手册
注意事项与维护
产品使用环境
供电电压: DC5V ± 10% 运行温度: 商用级 0 – 80 ℃ 工业级 -40 – 85 ℃ 10 – 90%(不结露) 湿度:
注意事项
·请勿带电插拔核心板及外围模块!
·请遵循所有标注在产品上的警示和指引信息。 ·请保持本产品干燥。如果不慎被任何液体泼溅或浸润,请立刻断电并充分晾干。 ·使用中注意本产品的通风散热,避免温度过高造成元器件损坏。 ·请勿在多尘、脏乱的环境中使用或存放本产品。 ·请勿将本产品应用在冷热交替环境中,避免结露损坏元器件。 ·请勿粗暴对待本产品,跌落、敲打或剧烈晃动都可能损坏线路及元器件。 ·请勿使用有机溶剂或腐蚀性液体清洗本产品。 ·请勿自行修理、拆卸本公司产品,如产品出现故障请及时联系本公司进行维修。 ·擅自修改或使用未经授权的配件可能损坏本产品,由此造成的损坏将不予以保修。 如果产品出现故障,请联系飞凌技术服务部。
2技术讨论范围(非必解决问题)
2.1 源码的修改以及理解; 2.2 操作系统如何移植; 2.3 用户在自行修改以及开发中遇到的软硬件问题;
3技术支持方式
3.1 电话(即时):0312-3119192 3.2 邮箱(非即时): 3. Linux 技术支持:linux@ 4. WinCE 技术支持:wince@ 5. Android 技术支持:android@ 3.3 论坛(非即时):
4
OK335xD Win CE软件手册
目 录
注意事项与维护................................................................................................................
MYD-AM335X 快速使用手册
图 1-1
1.3 产品特性
以下简单列出 MYD-AM335X 开发板的一些基本特性。 第3页
MYD-AM335X 快速使用手册
电气参数: 工作温度: 工业级:-40℃ ~+85℃ 商业级:0℃ ~+ 70℃ 工作相对湿度:20%~90%,非冷凝 电气指标: 底板:+5V/2A 电源供电 核心板:3.3V/0.8A 电源供电 PCB 板层: 底板,4 层,喷锡工艺生产,独立的接地信号层,无铅 核心板,6 层,沉金工艺生产,独立的接地信号层,无铅 机械尺寸: 底板:【130*100】mm,厚 1.6mm 核心板:【70*50】mm,厚 1.6mm
音频接口: 一个音频 3.5mm 输入接口 一个双声道音频 3.5mm 输出接口
液晶触摸屏接口: 16 位真彩色 默认 480 x 272 分辨率(4.3 寸屏),支持 7 寸屏(800 x 480),芯片支持最大分辨 率 1366 x 768
2.2.1 CPU......................................................................................................................... 8 2.2.2 DDR3 SDRAM....................................................................................................... 9 2.2.3 NANDFLASH 模块................................................................................................ 9 2.2.4 ETHERNET 模块................................................................................................. 10 2.3 底板介绍 ..................................................................................................................... 10 2.3.1 系统供电模块与按键模块 .................................................................................. 12 2.3.2 CAN 收发器.......................................................................................................... 13 2.3.3 RS485 收发器...................................................................................................... 14 2.3.4 排针接口 ............................................................................................................... 15 2.3.5 音频模块 ............................................................................................................... 16 2.3.6 USB 模块.............................................................................................................. 17 2.3.7 SP3232 串口........................................................................................................ 19 2.4 跳线设置 ..................................................................................................................... 19 2.5 硬件勘误 ..................................................................................................................... 20 第 3 章 软件资源介绍 ........................................................................................................21 3.1 Linux 软件资源............................................................................................................ 21 3.2 Android 软件资源........................................................................................................ 22 3.3 Windows Embedded Compact 7 ............................................................................. 22 第 4 章 启动开发板 ............................................................................................................24
eeprom使用方法
eeprom使用方法EEPROM(电可擦可编程只读存储器)使用起来还挺有趣的呢!EEPROM就像是一个小仓库,用来存放数据。
它的好处是数据不会因为断电就消失哦。
那怎么往这个小仓库里放东西呢?这得看你用的是什么设备或者开发板啦。
一般来说,你得先在你的编程环境里找到对应的库或者函数。
比如说,在Arduino里使用EEPROM就超级简单。
你只要包含EEPROM库,然后就可以像给小盒子贴标签放东西一样,用函数来指定地址,再把你想要存的数据放进去。
就好像你把小宝贝放进一个个小格子里,每个格子都有自己的编号,这个编号就是地址啦。
从EEPROM里取数据也不难。
还是按照那个地址,用对应的函数把数据拿出来就好啦。
不过要小心哦,如果你取数据的时候地址弄错了,那就可能拿到错误的东西,就像你本来想拿糖果,结果拿到了小石子一样。
在使用EEPROM的时候,还有个要注意的点就是它的寿命。
它虽然能擦写很多次,但也不是无限的。
所以不要没事就一直擦了写、写了擦,要像爱护小宠物一样爱护它呢。
如果你是在做一些小项目,比如自制一个小的温度记录器。
你就可以把每次测量到的温度数据存到EEPROM里。
这样,就算突然断电了,之前的数据也还在,等来电了还能接着记录或者查看历史数据呢。
还有哦,不同的EEPROM芯片可能会有一些细微的差别。
有的可能存储容量大一点,有的可能读写速度快一点。
你在选择的时候,就像挑选小鞋子一样,要根据自己的“脚”(也就是项目需求)来选合适的。
要是你只是简单存几个小参数,那就不需要特别大存储容量的EEPROM啦。
总之呢,EEPROM就像是一个贴心的小助手,只要你按照它的规则来使用,就能很好地在你的小发明、小制作里发挥大作用啦。
Am335xSD卡刷eMMC二
Am335xSD卡刷eMMC⼆犹豫前段时间⼀直在搞另⼀个项⽬,Am335x这个BBlack板就放置⼀边了。
前⼏天把BBlack板重新拿到⼿,之前搞得给全忘了。
SD卡烧写emmC时突然出现了错误,⼀直找不到原因,今天终于算是有点眉⽬了,就录下来省得下次⼜忘记了。
之前不能分区出现的错误:log:********************************************Sitara Flash Fetcher is complete. Executing /home/root/debrick.sh.********************************************************************************************************Sitara Example Flashing Script - 02/11/20141+0 records in1+0 records out(standard_in) 1: parse errorNo partition found. Continuing.Partitioning the eMMC...Usage:sfdisk [options] <device> [...]Options:-s, --show-size list size of a partition-c, --id change or print partition Id--change-id change Id--print-id print Id-l, --list list partitions of each device-d, --dump idem, but in a format suitable for later input-i, --increment number cylinders etc. from1 instead of from0-u, --unit <letter> units to be used; <letter> can be one ofS (sectors), C (cylinders), B (blocks), or M (MB)-1, --one-only reserved option that does nothing currently-T, --list-types list the known partition types-D, --DOS for DOS-compatibility: waste a little space-E, --DOS-extended DOS extended partition compatibility-R, --re-read make the kernel reread the partition table-N <number> change only the partition with this <number>-n do not actually write to disk-O <file> save the sectors that will be overwritten to <file>-I <file> restore sectors from <file>-V, --verify check that the listed partitions are reasonable-v, --version display version information and exit-h, --help display this help text and exitDangerous options:-f, --force disable all consistency checking--no-reread do not check whether the partition is in use-q, --quiet suppress warning messages-L, --Linux do not complain about things irrelevant for Linux-g, --show-geometry print the kernel's idea of the geometry-G, --show-pt-geometry print geometry guessed from the partition table-A, --activate[=<device>] activate bootable flag-U, --unhide[=<dev>] set partition unhidden-x, --show-extended also list extended partitions in the output,or expect descriptors for them in the input--leave-last do not allocate the last cylinder--IBM same as --leave-last--in-order partitions are in order--not-in-order partitions are not in order--inside-outer all logicals inside outermost extended--not-inside-outer not all logicals inside outermost extended--nested every partition is disjoint from all others--chained like nested, but extended partitions may lie outside--onesector partitions are mutually disjointOverride the detected geometry using:-C, --cylinders <number> set the number of cylinders to use-H, --heads <number> set the number of heads to use-S, --sectors <number> set the number of sectors to useNo partition found. Continuing.1+0 records in1+0 records outFormatting the eMMC into 2 partitions...mkfs.vfat 2.11 (12 Mar 2005)mkfs.vfat: Too few blocks for viable file systemmke2fs 1.42.1 (17-Feb-2012)Could not stat /dev/mmcblk1p2 --- No such file or directoryThe device apparently does not exist; did you specify it correctly?Formatting done.[ 13.826364] FAT-fs (loop0): bogus number of reserved sectors[ 13.832343] FAT-fs (loop0): Can't find a valid FAT filesystemmount: wrong fs type, bad option, bad superblock on /dev/loop0,missing codepage or helper program, or other errorIn some cases useful info is found in syslog - trydmesg | tail or somount: special device /dev/mmcblk1p2 does not existCopying Files...tar: can't open 'boot_partition.tar.gz': No such file or directoryCommand exited with non-zero status 1real 0m 0.00suser 0m 0.00ssys 0m 0.00sumount: /dev/mmcblk1p1: not mountedrm: can't remove 'boot_partition.tar.gz': No such file or directoryBoot partition done.tar: can't open 'rootfs_partition.tar.gz': No such file or directoryCommand exited with non-zero status 1real 0m 0.00suser 0m 0.00ssys 0m 0.00sumount: /dev/mmcblk1p2: not foundrm: can't remove 'rootfs_partition.tar.gz': No such file or directoryRootFS partition done.It took 2 seconds to complete this task...********************************************Sitara Example Flash Script is complete.经过多次试验依然是上⾯的log,最后不得已重现编译了内核⽤的是3.14.65,重新烧写对应的uImage。
Linux下AM335X的GPIO控制
Linux下AM335X的GPIO控制作者:chenzhufly QQ:36886052 ( 转载请注明出处)一路走来,熟悉硬件系统,搭建软件开发环境,编译Linux系统等等,现在也该到对硬件做一些事情了,这是我这几天的研究心得,与君共享。
1. GPIO的char型驱动,这里主要就是点个灯,感受一下驱动的设计和硬件的控制驱动程序:static int major =251;//定义主设备号/*******************************************/void led_on(void){gpio_set_value(GPIO_TO_PIN(1,22), 1);}void led_off(void){gpio_set_value(GPIO_TO_PIN(1,22), 0);}void led_init(void){int result;/* Allocating GPIOs and setting direction */result = gpio_request(GPIO_TO_PIN(1,22), \"Leds\");//usr1if (result != 0)printk(\"gpio_request(1_22) failed!\n\");result = gpio_direction_output(GPIO_TO_PIN(1,22), 1);if (result != 0)printk(\"gpio_direction(1_22) failed!\n\");}struct light_dev{struct cdev cdev;unsigned char value;};struct light_dev *light_devp;MODULE_AUTHOR(\"chenzhufly\");MODULE_LICENSE(\"Dual BSD/GPL\");// 打开和关闭函数int light_open(struct inode *inode,struct file *filp){struct light_dev *dev;// 获得设备结构体指针dev = container_of(inode->i_cdev,struct light_dev,cdev);// 让设备结构体作为设备的私有信息filp->private_data = dev;return 0;}int light_release(struct inode *inode,struct file *filp) {return 0;}// ioctlint light_ioctl(struct file *filp,unsigned int cmd, unsigned long arg){struct light_dev *dev = filp->private_data;switch(cmd){case 0:dev->value = 0;led_off();break;case 1:dev->value = 1;led_on();break;default:return -ENOTTY;// break;}return 0;}struct file_operations light_fops ={.owner = THIS_MODULE,.unlocked_ioctl = light_ioctl,应用程序:Makefile文件:leds.sh脚本2. 使用echo命令,这个我在前面也说过3. 做个应用程序实现流水灯功能吧复制内容到剪贴板代码:#include <stdio.h> #include <unistd.h>#include <sys/types.h>#include <sys/ipc.h>#include <sys/ioctl.h>#include <fcntl.h>#define LED1 \"/sys/class/leds/beaglebone::usr1/brightness\" // usr1 led #define LED2 \"/sys/class/leds/beaglebone::usr2/brightness\" // usr2 led #define LED3 \"/sys/class/leds/beaglebone::usr3/brightness\" // usr3 ledint main(void){int f_led1 = open(LED1, O_RDWR);int f_led2 = open(LED2, O_RDWR);int f_led3 = open(LED3, O_RDWR);unsigned char dat1, dat2, dat3;unsigned char i = 0;if (f_led1 < 0){printf(\"error in open %s\",LED1);return -1;}if (f_led2 < 0){printf(\"error in open %s\",LED2);return -1;}if (f_led3 < 0){printf(\"error in open %s\",LED3);return -1;}//add 10 timesfor(i=1; i<30; i++){dat1 = ((i%3) == 1) ? '1' : '0';dat2 = ((i%3) == 2) ? '1' : '0';dat3 = ((i%3) == 0) ? '1' : '0'; write(f_led1, &dat1, sizeof(dat1)); write(f_led2, &dat2, sizeof(dat2)); write(f_led3, &dat3, sizeof(dat3)); usleep(300000);}// all the bright{dat1 = '1';dat2 = '1';dat3 = '1';write(f_led1, &dat1, sizeof(dat1)); write(f_led2, &dat2, sizeof(dat2)); write(f_led3, &dat3, sizeof(dat3)); }}。
基于AM335x的U-Boot-SPL 的CCS 调试
基于AM335x的U-Boot/SPL 的CCS 调试在基于Linux的AM335x软件开发流程中,第一步就是U-Boot/SPL(SecondProgram Loader)的移植。
在移植中遇到问题比较常见,而U-Boot/SPL的调试手段比较简陋,不便于迅速找到问题。
利用仿真器可以单步调试的特点,就可以迅速定位到出问题的代码所在位置,加速移植的调试过程。
本文主要介绍如何用CCS+emulator调试基于AM335x的U-Boot/SPL。
1. AM335x Linux启动过程以及U-Boot/SPL调试代码的准备1.1 [url=]AM335x Linux[/url]的启动过程AM335x Linux的启动主要包括ROM,SPL,U-Boot 和kernel四个启动步骤:A. ROM codeROM code是固化在芯片内部的代码,当上电时序正确,而且晶振等芯片启动所需的条件都具备时,AM335x 会从ROM code开始运行。
ROM code首先会读取sys_boot引脚上的配置,以确定存放SPL的存储器,或者可以获取SPL的外设。
具体可以参考AM335x technical reference manual中的第26章Initialization。
ROM code会从相应的地方读取/获取SPL,并运行SPL。
B. SPLSPL和U-Boot 是bootloader的两个阶段。
这里分为两个阶段的原因是,ROM code中不会配置DDR,时钟等最小系统,所以ROM code只能把bootloader加载到片上SRAM中,而片上SRAM对成本影响很大,所以通常很小,例如在AM335x上只有64K,不足够放下整个U-Boot,所以将U-Boot分成两部分,SPL 和U-Boot。
SPL主要的职责就是初始化DDR,时钟等最小系统,以读取U-Boot,并加载到DDR中。
具体来看,SPL 由ROM code加载到片上SRAM的起始位置,也就是0x402F0400。
[教材]AM335X 内存配置
[教材]AM335X 内存配置我用的是镁光的芯片,通过在官网查找丝印第二行的序列号D9LHR,查得芯片型号MT47H64M16HR-3:H 接下来我们通过Ti的文档来配置这个芯片,点击链接我们可以看到芯片的参数信息。
depth 64MB width x16 clock 333MHZ cycleTime3ns CL=5EMIF一般配置寄存器, SDRAM_CONFIG(0x4C000008 @) -在这个寄存器的值,将取决于很多内存配置,用于配置初始化时内存不足。
它们最终被写入到存储装置的模式寄存器。
这里有一些提示来配置每个值:, REG_SDRAM_TYPE - LPDDR1(mDDR的)= 1,DDR2=2,DDR3= 3, REG_IBANK_POS -该寄存器设置bank内部的位置。
请参阅“地址映射”部分TRM更多信息。
这通常是留在bank允许的最大数量是开放的,允许它们之间的交错。
, REG_DDR_TERM - DDR2和DDR3终止电阻值。
请参见TRM正确的价值观。
设置终止内存方面期间为ODT(在模具Termaination上)。
参考ODT节以获取更多信息。
, REG_DDR2_DDQS - DDR2差分DQS启用。
设置为0时,使用单端DQS LPDDR(mDDR的)。
差分DQS使用DDR2/DDR3时设置为1。
, REG_DYN_ODT -这些位仅在DDR3模式。
, REG_DDR_DISABLE_DLL -设置为0正常运行, REG_SDRAM_DRIVE - SDRAM驱动强度。
LPDDR1,你通常会设置为1半驱动强度。
与LPDDR有些主板可能需要全驱动强度取决于电路板尺寸和跟踪阻抗。
在DDR2方面,完整的驱动强度设置为0。
, REG_CWL - CAS写入延迟。
这些位仅在DDR3模式下使用(对于其他类型的设备,这可以被设置为0)。
此字段的值定义访问连接的DDR3器件时要使用CAS写入延迟。
AM335x通用EVM硬件用户指南_中文
AM335x通用EVM硬件用户指南本文档介绍了AM335x评估模块(EVM)(TMDXEVM3358)这是基于德州仪器AM335x处理器的硬件体系结构。
该EVM通常也被称为AM335x通用(GP)EVM。
AM335x通用EVM是一个独立的测试,开发和评估模块系统,它使开发人员能够编写周围的AM335x处理器子系统的软件和硬件开发。
已经可用的EVM板的基础上,为开发人员提供了所需的基本资源最通用的类型的项目,包括作为主处理器的AM335x AM335x子系统的主要内容。
此外,额外的,“典型的”外围设备内置的的EVM如存储器,传感器,LCD,以太网PHY等,使未来的系统可以模拟快速显着的额外的硬件资源。
以下各节提供有关EVM的更多细节。
AM335x通用EVM的系统视图是由底板,子板,液晶显示板叠放在一起,通过标准的通孔连接器连接。
请参阅下面的图片的EVM。
图1:AM335x通用EVM 图2:的AM335x底板底查看AM335x完整的通用EVM被划分在三个不同的电路板的模块化。
GP EVM包括基板(处理器和主电源),子板(外围设备)和液晶显示板(LCD和触摸屏)。
图3:AM335x的EVM系统板图处理器TMXAM3359ZCZ处理器是此EVM的中央处理器。
在黑板上的所有资源环绕TMXAM3359处理器提供的硬件和软件开发能力。
请参阅的TMXAM3359数据表和TRM的处理器的详细信息。
有系统的配置信号,SYSBOOT,也可以设置在EVM上AM335x处理器定义一些启动参数。
有关详细信息,请参阅“配置/设置”一节。
EVM有几个时钟,支持AM3359处理器。
为处理器的主时钟是来自从24MHz晶体。
片上振荡器的AM3359产生基准时钟,后续的模块需要在AM3359处理器的时钟。
一个32kHz的时钟RTC的AM3359是来自一个32kHz的晶体在黑板上。
SYS_RESETn是运行多个外设和的AM335x其中执行这些外围设备的复位信号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于AM335x SDK6.0去掉EEPROM验证ID功能
以startkit为例,默认执行startkit配置。
I.Uboot
Board.c文件
•S_init函数,
屏蔽EEPROM读写部分以及header校验部分
修改enable_board_pin_mux函数。
因为执行完上面步骤后,函数输入的行参为null或者默认值。
函数定义在board/ti/am335x/mux.c中
只保留以下starterkit相关部分,其他全部删除或者屏蔽掉。
接下来去掉判断部分,只保留对VTT电源操作的代码(如果客户板子没有用GPIO控制VTT电源,这部分代码也可以相应删除)
接下来对DDR初始化的代码只保留对starterkit 上DDR3的初始化代码,其他全部屏蔽或者删除(如果客户板子采用的DDR3型号与Starterkit上不一致,请更改DDR3参数)
II.Kernel
board-am335xevm.c
•am335x_evm_setup函数
需要做以下修改,
如果不需要CPSW,也可以将am33xx_cpsw_macidfillup删掉。
去掉以下EEPROM检验代码
仅保留对starterkit初始化代码,
至此,EEPROM相关效验代码已经去掉,程序将默认执行starterkit EVM的初始化。
III.增加d_can驱动
这里再多提一点,在kernel里如何在starterkit基础上增加CAN的初始化,因为starterkit本身不支持CAN接口。
在board-am335xevm.c下
首先在结构体evm_sk_dev_cfg增加,
其次在d_can_init函数中增加“case EVM_SK:”并且去掉if(profile == PROFILE_1),如下,。